Objective-C | Räkna antalet lyckade försök?

Permalänk
Medlem

Objective-C | Räkna antalet lyckade försök?

Hej!

Jag försöker lära mig Objective-C och har stött på ett problem som jag behöver hjälp med.

Jag har klistrat in min kod under SPOILER taggar så ni medvetet kan läsa dem.

Jag skulle vilja lägga till en beräkning av något slag, jag vill få det till en "count" men hittar ingen lämplig.
Som skall räkna hur många lyckade försök användaren har och hur många försök det tog innan användaren gissade rätt.

Stort tack på förhand.

int main (int argc, const char * argv[]) { @autoreleasepool { int randomNumber = 1; int userGuess = 1; BOOL continueGuessing = YES; BOOL keepPlaying = YES; char yesNo = ' '; while (keepPlaying) { randomNumber = (arc4random() % 101); NSLog(@The random number to guess is: %i, randomNumber); while (continueGuessing) { NSLog(@Pick a number between 0 and 100. ); scanf ("%i", &userGuess); fgetc(stdin); // remove CR/LF i.e extra characters if (userGuess == randomNumber) { continueGuessing = NO; NSLog(@Correct number!); } else if (userGuess > randomNumber) // User guessed to high { NSLog(@Your guess is too high); } else if (userGuess < randomNumber) // User guessed to low { NSLog(@Your guess is too low); } NSLog(@The user guessed %i, userGuess); } NSLog(@Play again? Y or N); yesNo = fgetc(stdin); if (yesNo == 'N' || yesNo == 'n') { keepPlaying = NO; } if (yesNo == 'Y' || yesNo == 'y') { continueGuessing = YES; } } } return 0; }

Dold text
Permalänk
Medlem
Skrivet av Kajmaj:

Hej!

Jag försöker lära mig Objective-C och har stött på ett problem som jag behöver hjälp med.

Jag har klistrat in min kod under SPOILER taggar så ni medvetet kan läsa dem.

Jag skulle vilja lägga till en beräkning av något slag, jag vill få det till en "count" men hittar ingen lämplig.
Som skall räkna hur många lyckade försök användaren har och hur många försök det tog innan användaren gissade rätt.

Stort tack på förhand.

Öka en variabel med 1 för varje gång en användare har gissat rätt.

1. Lägg in en variabel bland dina övriga variabler (så du får rätt scope)

int correctGuesses = 0;

2. Gör så att den räknas upp när användaren gissar rätt

correctGuesses += 1; // Samma resultat som: correctGuesses = correctGuesses + 1;

3. Gör likadant för antal felaktiga gissningar
4. Win!

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Skrivet av Leedow:

Öka en variabel med 1 för varje gång en användare har gissat rätt.

1. Lägg in en variabel bland dina övriga variabler (så du får rätt scope)

int correctGuesses = 0;

2. Gör så att den räknas upp när användaren gissar rätt

correctGuesses += 1; // Samma resultat som: correctGuesses = correctGuesses + 1;

3. Gör likadant för antal felaktiga gissningar
4. Win!

correctGuesses kan ju t.om förkortas ännu mer, länge leve kodbantning.

correctGuesses++;

Permalänk
Medlem
Skrivet av Leedow:

Öka en variabel med 1 för varje gång en användare har gissat rätt.

1. Lägg in en variabel bland dina övriga variabler (så du får rätt scope)

int correctGuesses = 0;

2. Gör så att den räknas upp när användaren gissar rätt

correctGuesses += 1; // Samma resultat som: correctGuesses = correctGuesses + 1;

3. Gör likadant för antal felaktiga gissningar
4. Win!

Skrivet av metalgubben:

correctGuesses kan ju t.om förkortas ännu mer, länge leve kodbantning.

correctGuesses++;

Tack för er hjälp! Jag löste det nu.

Slutkod:

int main (int argc, const char * argv[]) { @autoreleasepool { int randomNumber = 1; int userGuess = 1; int sumGuess = 0; int correctGuess = 0; BOOL continueGuessing = YES; BOOL keepPlaying = YES; char yesNo = ' '; while (keepPlaying) { randomNumber = (arc4random() % 101); NSLog(@The random number to guess is: %i, randomNumber); while (continueGuessing) { NSLog(@Pick a number between 0 and 100. ); scanf ("%i", &userGuess); fgetc(stdin); // remove CR/LF i.e extra characters if (userGuess == randomNumber) { continueGuessing = NO; correctGuess++; sumGuess++; NSLog(@Correct number! You completed this task %i times., correctGuess); NSLog(@Overall tries %i, sumGuess); } else if (userGuess > randomNumber) // User guessed to high { sumGuess++; NSLog(@Your guess is too high); NSLog(@Overall tries %i, sumGuess); } else if (userGuess < randomNumber) // User guessed to low { sumGuess++; NSLog(@Your guess is too low); NSLog(@Overall tries %i, sumGuess); } NSLog(@The user guessed %i, userGuess); } NSLog(@Play again? Y or N); yesNo = fgetc(stdin); if (yesNo == 'N' || yesNo == 'n') { keepPlaying = NO; } if (yesNo == 'Y' || yesNo == 'y') { continueGuessing = YES; } } } return 0; }

Dold text
Permalänk
Medlem
Skrivet av metalgubben:

correctGuesses kan ju t.om förkortas ännu mer, länge leve kodbantning.

correctGuesses++;

Haha, ja. Jag tänkte skriva det först men på något vis blev det += 1 istället.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?