Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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??

Geschrieben
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.
Geschrieben

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/

| |

| /\

/\

Geschrieben (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 von zekee
Geschrieben
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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...