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
Würfelspiel mit c++
-
-
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 -
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?
-
da kann ich dir leider nicht helfen, C++ hab ich noch nie programmiert
hab dir aber was in java geschrieben, vielleicht hilft dir das auch
Code
Alles anzeigenpublic 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!"); } } }
siehe auch attachment -
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? -
-
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
-
hier ist meine ausgabe:
Code
Alles anzeigen$ ./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
schaut ok für mich aus???
-
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 -
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.
-
hm... anscheinend ist deine API von random anders... musst ein bisschen anpassen. Ich hab das ganze für die normale UNIX-API programmiert.
-
was ist eine API ??? Bin in Sachen programmieren noch zieml. neu unterwegs
-
-
Zitat von hal
Ich hab das ganze für die normale UNIX-API programmiert.
Ganz sicher? Ein Versuch unter Gentoo (Auszug):
Code
Alles anzeigen$ 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(). (...)
-
ok, diese Version sollte normalerweise überall funktionieren:
C
Alles anzeigen#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; }
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 der Code ist in Ordnung. -
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. -
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... -
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).
-
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!