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
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.
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??
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.
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/ | | | /\ /\
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
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.
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..
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden