1 van 1

[java] guessing game

Geplaatst: do 29 dec 2011, 13:47
door Winnie
Hallo, ik ben voor een opdracht voor school bezig met het schrijven van een spel in java.

Bij dit spel kan de speler kiezen uit drie mogelijkheden, zelf raden , de computer of stoppen.

Bij de tweede mogelijkheid waarbij de speler een getal bedenkt en in de output aangeeft hoger of lager loop ik vast,

Iemand een idee?

het script ziet er zo uit:

Code: Selecteer alles

/*

 */import java.util.*;

public class Guessinggamereverse {

Scanner sc = new Scanner(System.in);

int guess;

int doze = 0;

int secretnumber =  (int) (Math.random () *1001);

void guessinggamereverse (String choise) {

  System.out.print (" Do you want to guess (y),let the machine guess (m) or stop (s)");

   

int choice = sc.nextInt();

switch (choice){

case 1: choise = "y";

  

   System.out.println("Guess a number");

   

   while (guess != secretnumber){

   

   guess = sc.nextInt();  

   doze ++;

   

   

   if (guess > secretnumber){

   System.out.println("lower");}

   

   else 

   System.out.println("higher");} 

   

   System.out.println("Congratulations, you used  " + doze + " guesses");

case 2: choise = "m";

 

case 3: choise = "s";

}

}

  

   

   

public static void main (String[] args){

new Guessinggame (). guessinggame();

}

}
Edit Xenion: ik heb codetags toegevoegd en de titel aangepast om het wat duidelijker te maken

Re: [java] guessing game

Geplaatst: do 29 dec 2011, 14:00
door Xenion
Eerst moet de computer een getal gokken tussen een ondergrens en bovengrens. Die staan in het begin standaard op 0 en 1000 zeker?

De speler moet daarop antwoorden of het getal hoger of lager is.

Als het hoger is: de ondergrens wordt nu het geraden getal.

Als het lager is: de bovengrens wordt nu het geraden getal.

De computer gokt nu een getal tussen de nieuwe grenzen.

Wanneer de computer het getal geraden heeft (of na x aantal pogingen) moet het spel weer stoppen, zoals in het normale getal.

Re: [java] guessing game

Geplaatst: zo 01 jan 2012, 21:09
door EvilBro
Mijn eerste tip zou zijn dat je functies moet gebruiken om je code leesbaarder te maken. Zo zou je alle code bij case 1 in een functie kunnen plaatsen.

Ik weet niet wat het niveau is van je cursus, maar ik denk dat het nog beter zou zijn als je klassen zou gebruiken. Je spelklasse zou dan er dan bijvoorbeeld zo uit kunnen zien:

Code: Selecteer alles

public class HighLowGame {

private Player knower;

private Player guesser;

public HighLowGame(Player knower, Player guesser) {

this.knower = knower;

this.guesser = guesser;

}

void playGame() {

boolean guessed = false;

while (!guessed) {

int guess = guesser.makeGuess();

Status diff = knower.checkGuess(guess);

guesser.giveFeedback(diff);

if (diff == Status.EQUAL) {

guessed = true;

}

}

}

}
Deze klasse bevat in de methode 'playGame' de algemene structuur van hoe een spel gespeeld wordt. Aan deze klasse kan je dan spelers meegeven (menselijke of computerspelers).

Re: [java] guessing game

Geplaatst: zo 01 jan 2012, 21:36
door Winnie
@ Xenion,

Het getal in het begin in dit geval "secret number" is indd gedefinieerd tussen 1 en 1000.

Deze kan worden toegepast wanneer de speler kiest om het zelf op te lossen.

Wanneer de computer moet raden weet ik niet of dit getal ook kan worden toegepast.

Van de onder en boven grens heb ik wel eens gehoord alleen heb ik geen idee hoe het commando hiervoor luidt.

mischien een suggestie?

Groet winnie

Re: [java] guessing game

Geplaatst: zo 01 jan 2012, 22:25
door Xenion
Hoe x bepaald wordt kan je kiezen, je kan een random getal genereren en dat aan de gebruiker tonen of je kan aan de gebruiker vragen om zelf een getal in te geven.

Ik zie je probleem met de grenzen niet. Dat zijn gewoon integer getallen. Ze worden aangepast naargelang de antwoorden (hoger/lager) van de gebruiker op een gok van de computer.

De computer moet een getal gokken dat binnen die grenzen ligt, dus daar moet je dan een functie voor schrijven. (Kan je vast wel vinden op google.)