zekee Geschrieben 28. Februar 2010 Geschrieben 28. Februar 2010 Quelltext: #include "stdafx.h" #include <iostream> #include <ctype.h> using namespace std; void main() { char EingabeWort[50], Eingabe; int Versuche = 0, i = 0; printf("--------------Buchstaben-Galgen--------\n"); printf("Spieler 1\n"); printf("Bitte ein Wort eingeben, das von Spieler 2 erraten werden soll:\n"); fflush(stdin); gets(EingabeWort);// Eingabe des zu erratenen Wortes system("CLS");// löschen des Bildschirms Versuche = strlen(EingabeWort);// Einlesen der Wortlänge printf("Du hast %d Versuche um das Wort zu erraten\n",Versuche);// Ausgabe der Versuche gerichtet an der Wortlänge for(i=0;i<Versuche;i++)// Wiederholung zur Eingabe von den Buchstaben { printf("Spieler 2\n"); printf("Bitte einen Buchstaben eingeben:\n"); cin >>Eingabe; if(Eingabe == EingabeWort) { printf("Gut gemacht!!! Der eingegebene Buchstabe ist richtig!!!\n"); } else { printf("Schlecht!! Der Buchstabe ist nicht richtig!!!!XD\n"); } } } Hier soll spieler eins ein wort eingeben. Danach soll Spieler zwei so viele Buchstaben raten können wieviel Stellen das zu erratende Wort hat. Das Problem ist das die Buchstaben nach der Reihe geprüft werden und nicht komplett. Bitte um schnelle Antwort Zitieren
Klotzkopp Geschrieben 28. Februar 2010 Geschrieben 28. Februar 2010 Du musst jeden eingegebenen Buchstaben mit jedem Buchstaben des Worts vergleichen. Außerdem musst du dir merken, welche Buchstaben bereits erraten wurden. Zitieren
zekee Geschrieben 28. Februar 2010 Autor Geschrieben 28. Februar 2010 ja das ist mir schon klar bloß wie ich dass dann umsetze... (Eingabe == EingabeWort) mit dieser Prüfung schau ich ob der Buchstabe mit dem Wort übereinstimmt. bloß wie schreibe ich die Prüfung damit alle Buchstaben geprüft werden?? Zitieren
Klotzkopp Geschrieben 28. Februar 2010 Geschrieben 28. Februar 2010 mit dieser Prüfung schau ich ob der Buchstabe mit dem Wort übereinstimmt.Nein, du prüfst, ob der Buchstabe mit einem ganz bestimmten Buchstaben des Worts übereinstimmt. bloß wie schreibe ich die Prüfung damit alle Buchstaben geprüft werden??Du musst diese Prüfung für jeden Buchstaben machen, nicht nur für einen. Die Prüfung muss also für jeden Buchstaben des Worts wiederholt werden. Wiederholungen setzt man üblicherweise mit einer Schleife um. Zitieren
chooter696 Geschrieben 28. Februar 2010 Geschrieben 28. Februar 2010 Edit kann man net mal 10min afk sein ohne das einer vor einem schreibt ^^ 1. es seht nirgents um welche programmiersprache es geht. aber ich nehme Stark an C++ 2. falscher Bereich bitte Moven 3. Den Code Tag verwenden. und 4. hab kein 4.ens ^^ zu deinem Problem erstens du kannst die Corkompilierte Header datei aus deinem Projekt raus schmeißen die brauchst du jetzt noch net erst bei größeren Projekten mit mehreren Dateien zu deinem Problem. Überlege doch einmal bitte was du genau machst ? Du überprüfst ob ein Buchstabe dem anderen Gleicht und gibst sofort aus ob der richtig ist oder nicht. Ohne vorher die anderen mit diesem Buchstaben zu vergleichen. Tipp: Hast du schon mit While Schleifen Gearbeitet? Desweiteren habe ich einen Logikfehler bei dir entdeckt. Der Jenige hat nur so viele Chancen wie das Wort lang ist? ist das nicht ein bischen Wenig? Galgenman geht bei mir normalerweise so ^^ ___ | | | \O/ | | | /\ /\ Zitieren
zekee Geschrieben 28. Februar 2010 Autor Geschrieben 28. Februar 2010 (bearbeitet) Quelltext: #include "stdafx.h" #include <iostream> #include <ctype.h> using namespace std; void main() { char EingabeWort[50], Eingabe; int Versuche = 0, i = 0, j = 0; printf("--------------Buchstaben-Galgen--------\n"); printf("Spieler 1\n"); printf("Bitte ein Wort eingeben, das von Spieler 2 erraten werden soll:\n"); fflush(stdin); gets(EingabeWort);// Eingabe des zu erratenen Wortes system("CLS");// löschen des Bildschirms Versuche = strlen(EingabeWort);// Einlesen der Wortlänge printf("Du hast %d Versuche um das Wort zu erraten\n",Versuche);// Ausgabe der Versuche gerichtet an der Wortlänge for(i=0;i<Versuche;i++)// Wiederholung zur Eingabe von den Buchstaben { printf("Spieler 2\n"); printf("Bitte einen Buchstaben eingeben:\n"); cin >>Eingabe; for(j=0;j<Versuche;j++) { if(Eingabe == EingabeWort[j]) { printf("Gut gemacht!!! Der eingegebene Buchstabe ist richtig!!!\n"); } else { printf("Schlecht!! Der Buchstabe ist nicht richtig!!!!XD\n"); } } } so? @chooter696: das mit den Versuchen passt schon. } Bearbeitet 28. Februar 2010 von zekee Zitieren
Klotzkopp Geschrieben 28. Februar 2010 Geschrieben 28. Februar 2010 1. es seht nirgents um welche programmiersprache es geht. aber ich nehme Stark an C++Ja, cin und cout sind in anderen Sprachen selten. Der wilde Mischmasch von printf und C++-Streams ist aber zugegebenermaßen ziemlich merkwürdig. Quelltext:Benutz bitte Code-Tags. Zum Code: Jetzt hast du zwar eine Wiederholung, aber du machst bei jedem Durchlauf dasselbe: Du vergleichst immer mit dem i-ten Buchstaben. Außerdem musst du dir überlegen, was du aus dem Vergleichsergebnis folgern kannst. Dass beispielsweise die Eingabe nicht mit dem ersten Buchstaben übereinstimmt, heißt nicht, dass nicht weiter hinten doch noch eine Übereinstimmung besteht. Und wie bereits gesagt, du musst irgendwo speichern, welche Buchstaben bereits gefunden wurden. Vielleicht machst du dir den Algorithmus erst mal auf dem Papier klar, der ist nämlich nicht ganz trivial. Zitieren
zekee Geschrieben 28. Februar 2010 Autor Geschrieben 28. Februar 2010 da ich nur it-systemelektronier im ersten lehrjahr bin blicke ich da noch nicht so durch, leider.. Zitieren
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.