1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Würfelspiel mit c++

  • Knuelchi
  • 21. Oktober 2005 um 18:31
  • Unerledigt
  • Knuelchi
    2
    Knuelchi
    Mitglied
    Punkte
    40
    Beiträge
    7
    • 21. Oktober 2005 um 18:31
    • #1

    Hallo Leute!

    Wie erstellt man am einfachsten ein Würfelspiel mit c++.
    Aufgabe: 2 Würfel sollen sozusagen würfeln und ihre zahl der Würfel ausgeben. Würfelt der 2 Würfel die gleiche Zahl wie der andere Würfel soll er zusätzlich noch die Meldung basch ausgeben.


    Wer kann mir weiterhelfen.
    danke

  • rul0r
    10
    rul0r
    Mitglied
    Punkte
    975
    Beiträge
    182
    • 21. Oktober 2005 um 21:20
    • #2

    willst du das grafisch oder in textform machen?
    wennst das nur in text machen willst hat C++ sicher irgendeine random() methode mit der das ganz leicht möglich sein wird :winking_face:

    {WcM} http://www.wcm-clan.com
    ClanManagerPro CMPro http://www.cmpro.org

    Der genetische Code des Menschen und der des Schimpansen unterscheiden sich zu 1,6%.
    Bei machen Menschen merkt man das mehr, bei anderen weniger *g*

  • Knuelchi
    2
    Knuelchi
    Mitglied
    Punkte
    40
    Beiträge
    7
    • 22. Oktober 2005 um 09:09
    • #3

    HI!

    Danke für die rasche Antwort und zu Hilfe. Ich möchte es nicht graphisch dargestellt haben. Ja die Aufgabe soll mit der Funktion random durchgeführt werden. Wie könnte das Programm aussehen?

  • rul0r
    10
    rul0r
    Mitglied
    Punkte
    975
    Beiträge
    182
    • 22. Oktober 2005 um 10:25
    • #4

    da kann ich dir leider nicht helfen, C++ hab ich noch nie programmiert :thinking_face:

    hab dir aber was in java geschrieben, vielleicht hilft dir das auch

    Code
    public class wuerfel {
    
    
        public static void main(String [] args) {
            double r1=1,r2=1;
            while (r1 >=0.65||<0.5){
                r1=Math.random();
            }
            while (r2 >=0.65||<0.5){
                r2=Math.random();
            }
            int w1=(int)Math.round(r1*10);
            int w2=(int)Math.round(r2*10);
            System.out.println("Wuerfel 1: " +w1+"\nWuerfel 2: " +w2);
            if(w1==w2) { System.out.println("BASCH!"); }
        }
    
    }
    Alles anzeigen


    siehe auch attachment

    {WcM} http://www.wcm-clan.com
    ClanManagerPro CMPro http://www.cmpro.org

    Der genetische Code des Menschen und der des Schimpansen unterscheiden sich zu 1,6%.
    Bei machen Menschen merkt man das mehr, bei anderen weniger *g*

  • Knuelchi
    2
    Knuelchi
    Mitglied
    Punkte
    40
    Beiträge
    7
    • 22. Oktober 2005 um 11:04
    • #5

    Vielen Dank für deine Hilfestellung, jedoch mit Java hab ich leider überhaupt nichts zu tun. Mich würde interessieren wie es mit c++ funktionieren würde.

    Vielleicht ist noch jemand da, der mir dabei weiterhelfen könnte?

  • hal
    32
    hal
    Mitglied
    Reaktionen
    52
    Punkte
    11.122
    Beiträge
    2.208
    • 22. Oktober 2005 um 11:14
    • #6
    C
    #include <stdlib.h>
    #include <stdio.h>
    
    
    int main(int argc, char**argv) {
      int w1,w2;
      srandomdev();
      w1 = random()%6+1; w2 = random()%6+1;
      printf("Wuerfel 1: %d\nWuerfel 2: %d\n%s",w1,w2,(w1==w2)?"basch\n":"");
      return 0;
    }
    Alles anzeigen

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • Knuelchi
    2
    Knuelchi
    Mitglied
    Punkte
    40
    Beiträge
    7
    • 22. Oktober 2005 um 17:46
    • #7

    Vielen Dank für die Hilfestellung. Das Programm funktioniert bei mir aber leider nicht. Was könnte da falsch sein. Fehlt vielleicht irgendeine if Anweisung. Das Programm sollte nämlich bei der Ausgabe von 2 gleichen Zahlen, die Zahlen und das Wort bash ausgeben. Also if (wenn des erfüllt ist ) dann bash. Könnt ihr mir nochmals helfen. Danke

  • hal
    32
    hal
    Mitglied
    Reaktionen
    52
    Punkte
    11.122
    Beiträge
    2.208
    • 22. Oktober 2005 um 17:49
    • #8

    hier ist meine ausgabe:

    Code
    $ ./wuerfel 
    Wuerfel 1: 6
    Wuerfel 2: 4
    $ ./wuerfel 
    Wuerfel 1: 1
    Wuerfel 2: 1
    basch
    $ ./wuerfel 
    Wuerfel 1: 1
    Wuerfel 2: 2
    $ ./wuerfel 
    Wuerfel 1: 5
    Wuerfel 2: 6
    $ ./wuerfel 
    Wuerfel 1: 1
    Wuerfel 2: 6
    $ ./wuerfel 
    Wuerfel 1: 2
    Wuerfel 2: 2
    basch
    Alles anzeigen

    schaut ok für mich aus???

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • Knuelchi
    2
    Knuelchi
    Mitglied
    Punkte
    40
    Beiträge
    7
    • 22. Oktober 2005 um 18:19
    • #9

    sobald ich auf compile gehe, bringt es mir folgende meldungen. bin zuerst auf file new project gegangen, dann auf easy win, und bei advanced habe ich cnode angeclickt und habe noch als projektnamen bash vergeben. also eh so wie ichs gelernt habe. dann habe ich dein programm reinkopiert und bin auf compile gegangen.

    Info :Compiling C:\bc5\bin\bash1.c
    Warn :bash1.c(6,15):Call to function 'srandomdev' with no prototype
    Error:bash1.c(7,16):Wrong number of arguments in call of macro 'random'
    Error:bash1.c(7,17):Expression syntax
    Error:bash1.c(7,35):Wrong number of arguments in call of macro 'random'
    Error:bash1.c(7,36):Expression syntax
    Warn :bash1.c(8,74):Possible use of 'w1' before definition
    Warn :bash1.c(8,74):Possible use of 'w2' before definition
    Warn :bash1.c(10,2):Parameter 'argc' is never used
    Warn :bash1.c(10,2):Parameter 'argv' is never used

  • Plantschkuh!
    24
    Plantschkuh!
    Mitglied
    Reaktionen
    163
    Punkte
    6.173
    Beiträge
    1.181
    • 22. Oktober 2005 um 18:41
    • #10

    hal hat in seinem Code Funktionen verwendet, die nicht auf allen Systemen vorhanden sind. Lies dir die Hilfe für die Funktionen srand und rand durch und verwende sie stattdessen.

    *plantsch*

  • hal
    32
    hal
    Mitglied
    Reaktionen
    52
    Punkte
    11.122
    Beiträge
    2.208
    • 22. Oktober 2005 um 18:41
    • #11

    hm... anscheinend ist deine API von random anders... musst ein bisschen anpassen. Ich hab das ganze für die normale UNIX-API programmiert.

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • Knuelchi
    2
    Knuelchi
    Mitglied
    Punkte
    40
    Beiträge
    7
    • 22. Oktober 2005 um 18:53
    • #12

    was ist eine API ??? Bin in Sachen programmieren noch zieml. neu unterwegs

  • hal
    32
    hal
    Mitglied
    Reaktionen
    52
    Punkte
    11.122
    Beiträge
    2.208
    • 23. Oktober 2005 um 15:02
    • #13

    http://en.wikipedia.org/wiki/API

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • J.Petso
    15
    J.Petso
    Mitglied
    Reaktionen
    14
    Punkte
    2.384
    Beiträge
    457
    • 23. Oktober 2005 um 17:01
    • #14
    Zitat von hal

    Ich hab das ganze für die normale UNIX-API programmiert.

    Ganz sicher? Ein Versuch unter Gentoo (Auszug):

    Code
    $ gcc wuerfel.cpp
    wuerfel.cpp: In function `int main(int, char**)':
    wuerfel.cpp:6: error: `srandomdev' undeclared (first use this function)
    wuerfel.cpp:6: error: (Each undeclared identifier is reported only
    once for each function it appears in.)
    
    
    $ man srandomdev
    No manual entry for srandomdev
    
    
    $ man srandom
    (...)
    void srandom(unsigned int seed);
    (...)
    The srandom() function sets its argument as the seed for a new
    sequence of pseudo-random integers to be returned by random().
    (...)
    Alles anzeigen

    "Egbert B. Gebstadter is the Egbert B. Gebstadter of indirect self-reference." - Egbert B. Gebstadter

  • J.Petso
    15
    J.Petso
    Mitglied
    Reaktionen
    14
    Punkte
    2.384
    Beiträge
    457
    • 23. Oktober 2005 um 17:16
    • #15

    ok, diese Version sollte normalerweise überall funktionieren:

    C
    #include <stdlib.h>
    #include <stdio.h>
    #include <time.h>
    
    
    int main(int argc, char** argv) {
      srand( time(NULL) );
      int w1 = rand() % 6 + 1;
      int w2 = rand() % 6 + 1;
      printf("Wuerfel 1: %d\nWuerfel 2: %d\n%s", w1, w2, (w1==w2) ? "basch\n" : "");
      return 0;
    }
    Alles anzeigen


    Komischerweise will mir der gcc das Ganze nicht linken, wenn die Datei wuerfel.cpp statt wuerfel.c heißt, mit der Erklärung:

    Code
    /tmp/ccczCTPo.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
    collect2: ld returned 1 exit status


    Aber das sind Spitzfindigkeiten, wahrscheinlich nur auf meinem System :winking_face: der Code ist in Ordnung.

    "Egbert B. Gebstadter is the Egbert B. Gebstadter of indirect self-reference." - Egbert B. Gebstadter

  • djmaecki
    8
    djmaecki
    Mitglied
    Reaktionen
    1
    Punkte
    616
    Beiträge
    119
    • 23. Oktober 2005 um 17:25
    • #16

    gcc(1):
    [...]
    For any given input file, the file name suffix determines what kind of compilation is done:
    [...]
    file.cc
    file.cp
    file.cxx
    file.cpp
    file.CPP
    file.c++
    file.C
    C++ source code which must be preprocessed. Note that in .cxx, the
    last two letters must both be literally x. Likewise, .C refers to
    a literal capital C.

  • J.Petso
    15
    J.Petso
    Mitglied
    Reaktionen
    14
    Punkte
    2.384
    Beiträge
    457
    • 23. Oktober 2005 um 18:03
    • #17
    Zitat von djmaecki

    gcc(1):
    [...]
    For any given input file, the file name suffix determines what kind of compilation is done:
    [...]


    Schon klar, dass er das als C++-Datei ansieht; wenn ich das nicht erwartet hätte, hätte ich die Datei gar nicht in .c umbenannt. Mir ist aber trotzdem nicht klar, warum der gcc das eigentlich ursaubere C++ nicht linken will. Hrmpf. Aber solang ichs nicht selber und für den echten Produktiveinsatz brauch: was solls...

    "Egbert B. Gebstadter is the Egbert B. Gebstadter of indirect self-reference." - Egbert B. Gebstadter

  • hal
    32
    hal
    Mitglied
    Reaktionen
    52
    Punkte
    11.122
    Beiträge
    2.208
    • 23. Oktober 2005 um 19:18
    • #18

    das liegt vermutlich daran, dass du die stdc++ lib net dazulinkst. Wenn du g++ statt gcc verwendest, sollte er alles richtig machen.

    Zu srandomdev: der aufruf holt sich den seed automatisch von /dev/random, könnte man notfalls nachprogrammieren (is aber net so einfach).

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • J.Petso
    15
    J.Petso
    Mitglied
    Reaktionen
    14
    Punkte
    2.384
    Beiträge
    457
    • 24. Oktober 2005 um 01:19
    • #19
    Zitat von hal

    das liegt vermutlich daran, dass du die stdc++ lib net dazulinkst. Wenn du g++ statt gcc verwendest, sollte er alles richtig machen.

    ...tatsächlich. warum das Offensichtlichste aber auch immer das ist, an das ich als letztes denke.

    "Egbert B. Gebstadter is the Egbert B. Gebstadter of indirect self-reference." - Egbert B. Gebstadter

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung