Veröffentlicht 28. Februar 201015 j 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
28. Februar 201015 j Du musst jeden eingegebenen Buchstaben mit jedem Buchstaben des Worts vergleichen. Außerdem musst du dir merken, welche Buchstaben bereits erraten wurden.
28. Februar 201015 j 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??
28. Februar 201015 j 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.
28. Februar 201015 j 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/ | | | /\ /\
28. Februar 201015 j 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 201015 j von zekee
28. Februar 201015 j 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.
28. Februar 201015 j da ich nur it-systemelektronier im ersten lehrjahr bin blicke ich da noch nicht so durch, leider..
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.