Creazy231 Geschrieben 6. August 2009 Teilen Geschrieben 6. August 2009 Hey Leute... Also zu meiner Frage: Wie bekomme ich da nen Zufall rein?? #include <stdio.h> #include <string.h> #include <conio.h> #include <windows.h> typedef unsigned short int usint; int main() { system ("title Hangman"); printf("Hangman!!! \n\n"); const usint max_breite = 20, max_err = 10; char ergebnis[max_breite]; const char wort[max_breite] = "Tobias"; usint i,laenge=strlen(wort),error=0; bool solved = false,OK = false; for(i=0; i<laenge; i++) //Das ergebniss wird mit "_" gefüllt ergebnis[i] = '-'; ergebnis[i] = '\0'; printf("%s Du hasst: %d Fehler von %d\n",ergebnis,error,max_err); while (error != max_err && !solved) { OK = false; //Eingeben char eingabe[max_breite]; scanf("\n%s",eingabe); if (strlen(eingabe) == 1) { for(i = 0; i < laenge; i++) { if (wort[i] == eingabe[0]) { ergebnis[i] = eingabe[0]; OK = true; // Buchstabe Richtig } } if (!OK) error++; else if (strncmp(wort,ergebnis,max_breite) == 0) solved = true; } else { if (strncmp(wort,eingabe,max_breite) == 0) solved = true; else error++; } //Die Ausgabe if (solved) printf("Richtig !\n\n"); else printf("%s - Du hasst: %d Fehler von %d\n",ergebnis,error,max_err); } printf("The Game is Over!"); getch(); } Ich habe schon nen bisschen mit "rand();" rummprobiert aber nichts gescheites hinbekommen... könnt ihr mir Helfen? Dnake Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hAmst0r Geschrieben 6. August 2009 Teilen Geschrieben 6. August 2009 Hallo, der Code hat erstaunliche Ähnlichkeiten mit einem den ich schonmal gesehen habe :confused: http://www.tutorials.de/forum/c-c/202581-hangman-wort-auf-buchstabe-ueberpruefen.html#14 Dich wird hier auch niemand ernst nehmen, wenn du Codes klaust. Geh dein Buch lesen und Grundlagen lernen und frage uns wenn du ein RICHTIGES Problem hast mit Code, den DU geschrieben hast. Grüße Hamster Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Creazy231 Geschrieben 6. August 2009 Autor Teilen Geschrieben 6. August 2009 Hallo, der Code hat erstaunliche Ähnlichkeiten mit einem den ich schonmal gesehen habe :confused: Hangman --- Wort auf Buchstabe überprüfen - C/C++ @ tutorials.de: Forum, Tutorial, Anleitung, Schulung & Hilfe Dich wird hier auch niemand ernst nehmen, wenn du Codes klaust. Geh dein Buch lesen und Grundlagen lernen und frage uns wenn du ein RICHTIGES Problem hast mit Code, den DU geschrieben hast. Grüße Hamster Ich hab ja nciht gesagt das der code von mir ist... ich hab den code ja nur verwendet um erstmal zu sehen wie das spiel aufgebaut ist... der code hat mir geholfen zu verstehen wie das programmieren eines solchen spieles funktioniert... um einen eigenden code zu programmieren möchte ich nur gerne wissen wie ich einen zufallswert einbauen kann, um , wenn ich meinen eigenden schreibe, den zufallswert gleich ein zu bauen... Mfg Tobi Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hAmst0r Geschrieben 6. August 2009 Teilen Geschrieben 6. August 2009 (bearbeitet) Ich hab ja nciht gesagt das der code von mir ist... ich hab den code ja nur verwendet um erstmal zu sehen wie das spiel aufgebaut ist... der code hat mir geholfen zu verstehen wie das programmieren eines solchen spieles funktioniert... um einen eigenden code zu programmieren möchte ich nur gerne wissen wie ich einen zufallswert einbauen kann, um , wenn ich meinen eigenden schreibe, den zufallswert gleich ein zu bauen... Mfg Tobi Und eben genau das kannst du dir selbst aneignen in dem du Bücher liest und die Grundlagen lernst (dazu gehört u.A auch radnom). Du hast von so vielen Leuten hier schon Hilfe erhalten und es hat Links gehagelt zu wirklich sehr guten Seiten. Zeig uns halt mal das du was machen willst und tu das was man dir hier schon oft gesagt hat. Hamster PS: Das Wort "Grundlagen" ist in allen deinen Threads min. einmal gefallen. Warum ignorierst du das? Bearbeitet 6. August 2009 von hAmst0r Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Creazy231 Geschrieben 6. August 2009 Autor Teilen Geschrieben 6. August 2009 PS: Das Wort "Grundlagen" ist in allen deinen Threads min. einmal gefallen. Warum ignorierst du das? Ich ignoriere das ganz und garnicht... ich hab den Kurs hier schon gemacht: C - Kurs Interaktiv C und C++ sind zwar unterschiedliche sachen soch die Grundlagen sind in etwar gleich so wie ich das gesehen und ausprobiert habe... sobald ich morgen zuhause bin werde ich mir ein passendes buch besorgen indem nocheinmal alle Grundlagen beschrieben sind... und wenn ich das buch mit hoffentlich guten beispielen durch habe, werde ich versuchen mein eigendes Hangman zu Programmieren... und dann werde ich dieses spiel in einem neuen Thema vorstellen was dann 100% von mir ist... Danke, Tobi @All... danke für eure hilfe und die Links die ihr mir zukommen lassen habt... ich melde mich wieder...:uli Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 7. August 2009 Teilen Geschrieben 7. August 2009 Wie bekomme ich da nen Zufall rein?? const char wort[max_breite] = "Tobias"; Hier ein zufälliges, definiertes Wort aus Datei laden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Creazy231 Geschrieben 7. August 2009 Autor Teilen Geschrieben 7. August 2009 Ok ich hab es so in etwar... hab das jetzt mit ner zufalszahl hinbekommen... srand( (unsigned)time( NULL ) ); r = rand() % max; // max ist ein Befehl den ich vorher festgelegt hab ( 100 ) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 7. August 2009 Teilen Geschrieben 7. August 2009 r = rand() % max; // max ist ein Befehl den ich vorher festgelegt hab ( 100 ) Du musst aufpassen, dass Du den korrekten Bereich abbildest. Die Modulo-Operation liefert Dir Zahlen aus dem Bereich [0,max-1] und nicht [1,max] bzw [0,max] Phil Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Creazy231 Geschrieben 7. August 2009 Autor Teilen Geschrieben 7. August 2009 Du musst aufpassen, dass Du den korrekten Bereich abbildest. Die Modulo-Operation liefert Dir Zahlen aus dem Bereich [0,max-1] und nicht [1,max] bzw [0,max] Phil Danke für deine antwort aber ich verstehe nicht genau was du mir damit sagen möchtest... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 7. August 2009 Teilen Geschrieben 7. August 2009 Danke für deine antwort aber ich verstehe nicht genau was du mir damit sagen möchtest... Er meinte damit, dass r nur 0 - 99 speichern wird. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Creazy231 Geschrieben 7. August 2009 Autor Teilen Geschrieben 7. August 2009 Er meinte damit, dass r nur 0 - 99 speichern wird. und wenn ich dann "max" auf 101 setze? ist das dann 0-100 ?? oder was muss ich ändern?? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 7. August 2009 Teilen Geschrieben 7. August 2009 und wenn ich dann "max" auf 101 setze? ist das dann 0-100 ?? oder was muss ich ändern?? Genau. r = (rand() % max) +1; Ergibt dann logischerweise einen Zahlenraum von 1 bis max. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Creazy231 Geschrieben 8. August 2009 Autor Teilen Geschrieben 8. August 2009 Danke... ich hab jetzt mal mein eigendes spiel geschrieben... ich würde nur gerne wissen wie ich da noch nen paar farbei reibekomme? Hier der Downloadlink: RapidShare: 1-CLICK Web hosting - Easy Filehosting Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hAmst0r Geschrieben 8. August 2009 Teilen Geschrieben 8. August 2009 Danke... ich hab jetzt mal mein eigendes spiel geschrieben... ich würde nur gerne wissen wie ich da noch nen paar farbei reibekomme? Hier der Downloadlink: RapidShare: 1-CLICK Web hosting - Easy Filehosting Zeig doch den Sourcecode für Ausführbare Dateien interessiert sich hier niemand. Hamster Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Creazy231 Geschrieben 12. August 2009 Autor Teilen Geschrieben 12. August 2009 Ja also ich hab das jetzt noch nen bissel verändert und das ist bei rausgekommen: #include <iostream> #include <stdlib.h> #include <time.h> #include <windows.h> using namespace std; int versuche; int max; int r; int u; void Spiel() { cout<<"\nTippe ein:\n"; cin>>u; if (u>100 || u<1) { cout<<"Die Zahl muss zwischen 1 und 100 sein!"; Spiel(); } if (u == r) { cout<<"\a\aDu hasst es geschafft!\n"; cout<<"Du brauchtest "<<versuche<<" Versuche!"<<endl; cout<<"\n\n\n"; system ("pause"); system ("cls"); cout<<" !Errate die gesuchte Zahl!\n"; cout<<"Schreibe eine Zahl zwischen 1 und 100 in das Eingabefeld.\nBeachte dann die Hinweise!\nAlle deine Versuche werden gez"<<(char)132<<"hlt!\n\n"<<endl; Spiel(); } else if (u<r) { cout<<"Die gesuchte Zahl ist gr"<<(char)148<<"sser!"; versuche++; Spiel(); } else if (u>r) { cout<<"Die gesuchte Zahl ist kleiner!"; versuche++; Spiel(); } } int main() { keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), 0, 0); keybd_event(VK_RETURN, MapVirtualKey(VK_RETURN, 0), 0, 0); keybd_event(VK_RETURN, MapVirtualKey(VK_RETURN, 0), KEYEVENTF_KEYUP, 0); keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), KEYEVENTF_KEYUP, 0); system ("cls"); int max = 100; HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute( hStdout, FOREGROUND_RED | FOREGROUND_RED | FOREGROUND_RED ); cout<<" !Errate die gesuchte Zahl!\n"; cout<<"Schreibe eine Zahl zwischen 1 und 100 in das Eingabefeld.\nBeachte dann die Hinweise!\nAlle deine Versuche werden gez"<<(char)132<<"hlt!\n\n"<<endl; srand( (unsigned)time( NULL ) ); r = rand() % max; versuche = 0; Spiel(); } möchte nur halt gerne wissen wie ich da jetzt noch gescheite Farbe reinbekomme^^ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 12. August 2009 Teilen Geschrieben 12. August 2009 möchte nur halt gerne wissen wie ich da jetzt noch gescheite Farbe reinbekomme^^Vergiss Farben, und vergiss auch solche Spielereien wie das automatische Umschalten in den Vollbild-Modus, bis du die wirklich wichtigen Grundlagen drauf hast. Zum Beispiel sollte sich die Funktion Spiel nicht selbst aufrufen. Das nennt man Rekursion, und es ist hier völlig unangebracht, weil eine einfache Schleife auch ausreichen würde. Dein Programm wird irgendwann abstürzen, wenn du nur lang genug spielst, weil der Stack überläuft. Versuch also, das Programm ohne diese Selbstaufrufe zu schreiben. Das ist viel wichtiger als irgendwelche Farben. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 12. August 2009 Teilen Geschrieben 12. August 2009 Dein Programm wird irgendwann abstürzen, wenn du nur lang genug spielst, weil der Stack überläuft. Ich behaupte mal, dass es schon abstürzt (bzw. nicht mehr richtig funktioniert), wenn man einen String statt Zahlen eingibt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Creazy231 Geschrieben 12. August 2009 Autor Teilen Geschrieben 12. August 2009 Ich behaupte mal, dass es schon abstürzt (bzw. nicht mehr richtig funktioniert), wenn man einen String statt Zahlen eingibt. Es hängt sich net auf und es stürzt net ab aber es bildet eine endlosschleife an fehlern... Danke^^ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Creazy231 Geschrieben 12. August 2009 Autor Teilen Geschrieben 12. August 2009 Versuch also, das Programm ohne diese Selbstaufrufe zu schreiben. Das ist viel wichtiger als irgendwelche Farben. Ok... ich werde es versuchen... allerdings lässt mich die frage wie ich da farben reinbringe nicht in ruhe... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 12. August 2009 Teilen Geschrieben 12. August 2009 Ok... ich werde es versuchen... allerdings lässt mich die frage wie ich da farben reinbringe nicht in ruhe... Schau dir mal diverse Methoden in conio.h an. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Creazy231 Geschrieben 12. August 2009 Autor Teilen Geschrieben 12. August 2009 Schau dir mal diverse Methoden in conio.h an. Ok hab ich und ich hab keine ahnung was das alles ist was da steht Danke^^ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 12. August 2009 Teilen Geschrieben 12. August 2009 Kommando zurück. Windows.h + SetConsoleTextAttribute Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Creazy231 Geschrieben 12. August 2009 Autor Teilen Geschrieben 12. August 2009 SetConsoleTextAttribute Wo finde ich das?? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gateway_man Geschrieben 12. August 2009 Teilen Geschrieben 12. August 2009 desto mehr Beiträge ich von dir (Creazy231) lese, desto heftiger finde ich es. Zeig doch mal ein bisschen eigeninitiative und mach dich doch selbst ein bisschen schlau. Du bekommst hier ja schließlich sehr brauchbare Hinweise, die musst du nur mal googlen und dann hätten sich die weiteren Fragen erübrigt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Creazy231 Geschrieben 12. August 2009 Autor Teilen Geschrieben 12. August 2009 desto mehr Beiträge ich von dir (Creazy231) lese, desto heftiger finde ich es. Zeig doch mal ein bisschen eigeninitiative und mach dich doch selbst ein bisschen schlau. Du bekommst hier ja schließlich sehr brauchbare Hinweise, die musst du nur mal googlen und dann hätten sich die weiteren Fragen erübrigt. Ja... ich weiß die Hilfe auch sehr zu schätzen... ich dachte mir nur das die datei oder das wort i-eine Datei ist, in der ich mich darüber schlau machen könnete... Danke für eure Hilfe^^ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.