Gå til innhold

Noen tips til hvordan jeg kan løse denne?


Anbefalte innlegg

Hei!

 

 

Jeg prøver å løse en oppgave i Java. Oppgaven går ut på å kaste en terning, og legge sammen det man får. Det er om å komme først til 100.

Jeg skal deretter lage et program som lar deg spille mot maskinen. Dere "kaster" annen hver gang, og programmet må summere opp poengene for begge to.

 

Et terningkast gjøres ved

(int) (Math.random() * 6 + 1)

 

Programmet "gjør" terningkastet og du vurderer om du skal fortsette omgangen eller stoppe opp og ta vare på poengene.

 

Det er dette jeg skal få til utskrift:

 

Skriv navnet ditt: Spiller

Vil du spille hundre mot maskinen? j

Spiller sin tur

Spiller fikk 2 og har 2 poeng i denne runden.

Fortsetter du? j

Spiller fikk 6 og har 8 poeng i denne runden.

Fortsetter du? j

Spiler fikk 6 og har 14 poeng i denne runden.

Fortsetter du? n

Spiller har nå 14 poeng!

Maskinen sin tur

Maskinen fikk 4 og har 4 poeng i denne runden.

Maskinen fikk 4 og har8 poeng i denne runden.

Maskinen fikk 5 og har 13 poeng i denne runden.

Maskinen fikk 3 og har 16 poeng i denne runden.

Maskinen fikk 4 og har 20 poeng i denne runden.

Maskinen har nå 20 poeng!

...

Spiller har nå 88 poeng!

Maskinen sin tur

Maskinen fikk 5 og har 5 poeng i denne runden.

Maskinen fikk 4 og har 9 poeng i denne runden.

Maskinen fikk 6 og har 15 poeng i denne runden.

Maskinen fikk 6 og har 21 poeng i denne runden.

Maskinen har nå 91 poeng!

Spiller sin tur

Det ble 1'er!

Spiller har nå 88 poeng!

Maskinen sin tur

Maskinen fikk 3 og har 3 poeng i denne runden.

Maskinen fikk 5 og har 8 poeng i denne runden.

Maskinen fikk 3 og har 11 poeng i denne runden.

Maskinen fikk 5 og har 16 poeng i denne runden.

Maskinen fikk 5 og har 19 poeng i denne runden.

Maskinen fikk 5 og har 24 poeng i denne runden.

Maskinen har nå 115 poeng!

Maskinen vant med 115 poeng!

Vil du spille en gang til?

 

 

Jeg har prøvd meg fram til løsningen, men får det ikke helt til.. Noen her som kan gi meg tips evt. hvordan jeg kan løse den på en enklere måte?

 

Kan legge ut koden hvis ønskelig.

Lenke til kommentar
Videoannonse
Annonse

Det der så ganske surrete ut, dette bør jo være et lekende lett program å lage. Du genererer et kast og skriver utskriften, legger sammen potten. Spiller du mot maskinen genererer du 2 kast hver gang du trykker på en knapp, legger det sammen i hver sin pott.

 

Jeg skjønner nesten ikke hvorfor du får utskriftene du får, du må jo ha surret noe innmari, tenk enkelt, for det er faktisk nettopp det :)

 

EDIT:

 

Et tips dog: Ikke ha så mye tekst!

 

 

Lag det f.eks sånn med faste posisjoner:

 

Du: 0 score //oppdateres for hver kast

Maskin: 5 score //oppdateres for hver kast

 

(Tekst:) "Du fikk 5!" (2 sekunder delay, puttes ut med hva maskinen fikk.)

 

Knapp[Kast terning!]

Endret av MrLG
Lenke til kommentar

Det der så ganske surrete ut, dette bør jo være et lekende lett program å lage. Du genererer en kast og skriver utskriften, legger sammen potten. Spiller du mot maskinen genererer du 2 kast hver gang du trykker på en knapp, legger det sammen i hver sin pott.

 

Jeg skjønner nesten ikke hvorfor du får utskriftene du får, du må jo ha surret noe innmari, tenk enkelt, for det er faktisk nettopp det :)

 

Takk for svar! Men jeg får det ikke til å stemme helt med denne delen her "Spiller har nå 88 poeng!

Maskinen sin tur

Maskinen fikk 3 og har 3 poeng i denne runden.

Maskinen fikk 5 og har 8 poeng i denne runden.

Maskinen fikk 3 og har 11 poeng i denne runden.

Maskinen fikk 5 og har 16 poeng i denne runden.

Maskinen fikk 5 og har 19 poeng i denne runden.

Maskinen fikk 5 og har 24 poeng i denne runden.

Maskinen har nå 115 poeng!

Maskinen vant med 115 poeng!

Vil du spille en gang til?"

 

Den bare fortsetter fra spiller, og ikke maskinen..

 

Skal prøve å poste koden min her snart :)

Endret av DJ-Stigma
Lenke til kommentar

Jeg kunne ikke dy meg. Skrevet før kl 9 om morgenen uten kaffe, så jeg tar forbehold om dårlig kode...

 

For å kjøre dette må du ha en klasse med main hvor du oppretter et game objekt.

main() {
Game game = new Game();
}

 

import java.util.Scanner;
public class Game {
Scanner scan;
boolean win;
int spiller;
int rull;
int antMaskiner;
int OnsketPoeng;
String gameOn;
public Game() {
 scan = new Scanner(System.in);
 win=false;
 System.out.println("Hvor mange poeng vil du gå til?");
 OnsketPoeng = scan.nextInt();
 newGame() ;
}
private  int rullTerning() {
 return (int) (Math.random()*6+1);
}
private boolean checkwin(int[] maskiner) {
 if(spiller>=OnsketPoeng) {
  System.out.println("Spiller vant!!");
  return true;
 }
 for(int i=0; i<maskiner.length; i++) {
  if(maskiner[i]>=OnsketPoeng) {
System.out.println("Maskin "+i+" vant!!");
win=true;
  }
 }
 return false;
}
private void newGame( ) {
 System.out.println("Hvor mange maskiner ønsker du å spille mot?");
 antMaskiner = scan.nextInt();
 int[] maskiner = new int[antMaskiner];
 System.out.println("Rull med r og enter, avbryt med x");
 while(!win) {
  if(scan.nextLine().equalsIgnoreCase("r")) {
rull=rullTerning();
spiller+=rull;
System.out.println("Spiller rullet "+rull+", spiller har nå "+spiller+" poeng.");
for(int i=0; i<maskiner.length; i++) {
 rull=rullTerning();
 maskiner[i]+=rull;
 System.out.println("Maskin "+i+" rullet "+rull+", maskin "+i+" har nå "+maskiner[i]+" poeng.");
}
win = checkwin(maskiner);
  }
 }
 System.out.println("Spille igjen?");
 if(scan.nextLine().equalsIgnoreCase("j")) {
  System.out.println("Hvor mange poeng vil du gå til?");
  OnsketPoeng = scan.nextInt();
  win=false;
  spiller=0;
  newGame();
 }
}
}

Endret av Aleksander-
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...