naja mit nen bissel verspätung präsentiere ich hiermit eine
Teillösung =)
bitte schlagt mich net für meinen code der is einfach, etc....
(muss daran noch arbeiten)
ich kann nur sagen, dass du mit dem heir vorgestellten zeugs zeichen in einem string :
1. erkennst (auch wenn ein Buchstabe mehrmals verwendet wurde)
2. du an die stelle des Buchstaben eines Strings ein "<" setzt
also heir teile des codes(alles wichtige):
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
#include <iostream>
#include <windows.h>
using namespace std;
//Variablen
string sWort(""); // Hier wird das zu erratende Wort gespeichert
string sWort2("") // Hier wird ein ein entsprechend langer String
// gespeichert (seine Länge wird mit "-" gefüllt)
string sFueller("-"); // wird zur erzeugung von sWort2 benötigt
int Position=0; // stellt eine Position in einem string da
int Position_letter=0; // heir wird diese Position für den Rest des
// Durchlaufs geändert
int groesse=0; // Größe des Wortes von sWort benötigt für sWort2
char geraten; // Eingabe (geratener Buchstabe)
char letter; // Hilfsvariable zumausgeben von "<" an der
// richtigen Stelle
//Funktionsprototypen
void game();
void raten();
int main()
{
game();
return 0;
}
void game()
{
system("cls");
cout<<"Game"<<endl;
cout<<"----"<<endl;
int p=0;
cout<<"Wort eingeben:"<<endl;
cin>>sWort; // Abfrage des zu erratenden
// Wortes
groesse=sWort.length();
while(p<groesse)
{
sWort2=sWort2+sFueller;
p++;
} // Hier wird sWort2 mit "-" gefüllt
// entsprechend der länge des
// wortes von sWort
system ("cls");
raten();
}
void raten()
{
do
{
cout<<"Du hast noch "<<versuche<<" Versuche"<<endl;
cout<<"dein Wort ist"<<sWort2<<endl;
cout<<"rat ma:"<<endl;
cin>>geraten; //Abfrage geratener Buchstabe
Position=sWort.find(geraten,Position_letter); // Hier wird geguckt
// ob die eingabe im
// Wort sWort
// enthalten ist*/
sWort2.replace(Position,1,"<",1); //hier wird das "-"
// ersetzt
if (Position==string::npos)
{
cout<<"Der Buchstabe ist nicht enthalten..."<<endl;
Sleep(2000);
Position_letter=0;
versuche--;
raten();
}
else
{
Position=sWort.find(geraten,Position_letter); //Hier wird geguckt
//ob die eingabe im
//Wort sWort
// enthalten ist*/
sWort2.replace(Position,1,"<",1); //hier wird das
// entsprechende
// "-" durch "<"
// ersetzt*/
Position_letter=Position+1;
if(Position==string::npos)
{
Position_letter=0;
versuche--;
raten();
} /*hier wird geguckt ob der Buchstabe noch
ein weiteres mal enthalten ist. aktuell wird
es 4mal geprüft (4mal der selbe
Codeblock) ich ahbe versucht es über
schleifen zu lösen doch dann hat sich das
programm beendet.... hier musst du also
noch ma gucken*/
Position=sWort.find(geraten,Position_letter);
sWort2.replace(Position,1,"<",1);
Position_letter=Position+1;
if(Position==string::npos)
{
Position_letter=0;
versuche--;
raten();
}
Position=sWort.find(geraten,Position_letter);
sWort2.replace(Position,1,"<",1);
Position_letter=Position+1;
if(Position==string::npos)
{
Position_letter=0;
versuche--;
raten();
}
Position=sWort.find(geraten,Position_letter);
sWort2.replace(Position,1,"<",1);
Position_letter=Position+1;
if(Position==string::npos)
{
Position_letter=0;
versuche--;
raten();
}
}
versuche--;
Position_letter=0;
}while(versuche!=0);
cout<<"Spiel vorbei."<<endl;
Sleep(2000);
}
|
So ich hoffe es hilft dir ein bisschen... und ich hab alles entsprechende so kommentiert, dass man es verstehen kann.... ansonsten frag noch ma
desweiteren kann es sein dass ich durch das nachkommentieren heir was kaputt gemacht hab(müssteste aba finden/beheben können)
also ich habe glaub ich schon was zu
|
C-/C++-Quelltext
|
1
|
string.replace(position,1,"<",1)
|
gesagt... aba noch ma
position = die stelle an der er was ersetzten soll
1 = maxiemal zu überschreibende Zeichen
"<" durch was soll es ersetzt werden
hier habe ich "<" genommen und nicht
|
C-/C++-Quelltext
|
1
2
3
4
|
cout<<"Du hast noch "<<versuche<<" Versuche"<<endl;
cout<<"dein Wort ist"<<sWort2<<endl;
cout<<"rat ma:"<<endl;
cin>>geraten;
|
warum? weil es nders ru zu abstürzen des programs geführt
hat... -> auch hier musst du dir noch was
ausdenken/ergooglen/erlesen/erfragen
1 =Länge des zu schreibendn Textes
hoffe konnte helfen und es verständlich erklären
goldfisch007
P.s wie erwähnt steinigt mich net wegen dem code(ich progge noch net lange-> kaum erfahrung, es ging schnell)