Hejsa!
Jeg er igang med et lille "gæt et nummer"-spil (ja, er stadig nybegynder inden for programmering), og er senest gået igang med et lille hiscore-system til det. Jeg er ikke gået igang med selve systemet, da jeg har nogle problemer allerede når jeg vil vise hiscoren. Ved System("PAUSE") får jeg godt nok beskeden "Tryk på en vilkårlig tast for at fortsætte" men når jeg trykker sker der intet. Jeg har prøvet at fjerne System("PAUSE"), men så looper den bare tilbage til visning af hiscoren. Jeg ved at der sikkert er mange af jer der vil le af mit problem, da det jo bæger lidt præg af hvor ny jeg er, men jeg håber da at i samtidig kan hjælpe mig med at komme videre.
På forhånd tak!
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
hiscore:
ofstream hiscore("topten.txt");
hiscore << "1#: \\n2#: \\n3#: \\n4#: \\n5#: \\n6#: \\n7#: \\n8#: \\n9#: \\n10#: \\n";
hiscore.close();
int point = 0;
int wrongguess = 0;
int trueguess = 0;
int userInput = 0;
start:
int randomNumber = 1 + (rand() %100);
again:
userInput = 0;
cout << "\\n-----------------------" << endl;
cout << "POINTS: " << point << endl;
cout << "TRUE GUESSES: " << trueguess << endl;
cout << "WRONG GUESSES: " << wrongguess << endl;
cout << "-----------------------" << endl;
cout << "Guess a number between 1 and 100." << endl;
cout << "Write your guess here: " << flush;
cin >> userInput;
system("cls");
if (userInput == randomNumber)
{
trueguess = trueguess + 1;
point = +100;
cout << "\\n-----------------------" << endl;
cout << "POINTS: " << point << endl;
cout << "TRUE GUESSES: " << trueguess << endl;
cout << "WRONG GUESSES: " << wrongguess << endl;
cout << "-----------------------" << endl;
cout << "You guessed it!" << endl;
goto start;
}
if (userInput == 'H','h')
{
ifstream hiscoreLoad("topten.txt");
char ch;
while(!hiscoreLoad.eof())
{
hiscoreLoad.get(ch);
cout << ch;
}
hiscoreLoad.close();
system("PAUSE");
system("cls");
goto again;
}
if (userInput != randomNumber)
{
cout << "\\n-----------------------" << endl;
cout << "POINTS: " << trueguess << endl;
cout << "TRUE GUESSES: " << trueguess << endl;
cout << "WRONG GUESSES: " << wrongguess << endl;
cout << "-----------------------" << endl;
cout << "Sorry, the number was not " << userInput << "." << endl;
wrongguess++;
}
goto again;
}
#Bertel: Joh, ved godt at goto er meget fyfy, men syntes nu ellers det er ok til så simpel kode, men jeg giver dig nu ret i at det sandsyngligvis er der det går galt, da den jo netop gentager det, ligemeget hvor jeg sætte goto'en til at gå hen i koden. Mht. at 104 = hiscore'en... så læg mærke til rækkefølgen. Først tjekker den om userInputtet er = h eller H. Hvis den ikke er det går den videre til den næste if som bare er hvis det ikke er i lig med det nummer som rand-funktionen giver. Så tror ikke det er problemet. Men ellers tusind gange for dit svar, og prøver da lige din teori an, og så skal jeg da nok skrive resultatet her.
[Redigeret d. 14/06-05 23:00:01 af Johan Auster]