Apua ohjelmaan

Hei!
Olis ISO ongelma ohjelmointi tehtävässä.
Pitäisi saada tehtyä noppapeli.

Pelin säännöt:
1. Ensin panos (aluksi 10 € ja minimipanos 1 €)
2. Kaksi arpakuutiota.
3. Jos hän saa noppien summaksi 7 tai 11, hän voittaa panoksensa kaksinkertaisena.
Jos hän saa 2, 3 tai 12, hän häviää panoksensa.
4. Muilla tuloksilla pelaaja heittää, kunnes saa joko 7:n,
jolloin hän häviää panoksensa tai ensimmäisen kierroksen tuloksensa uudestaan,
jolloin hän voittaa panoksensa kaksinkertaisena.

Kone kysyy käyttäjältä panoksen ja sen jälkeen "heittää" käyttäjän puolesta noppia,
kunnes käyttäjä on joko voittanut tai hävinnyt.
Peli loppuu kun käyttäjä on menettänyt rahansa tai haluaa lopettaa pelaamiseen.

Noppien heiton tulokset, panos ja rahatilanne tulee näyttää selkeästi käyttäjälle.


Jotain olen saanut kyhättyä kasaan, mutta.....
Olis tosi hyvä jos sais vinkkiä tai enemmnkin asiaan.
5768
Äänestä

Muut lukivat myös

Vastaukset 5

Vanhimmat

Tuossa tarvitaan satunnaislukuja, yhteenlaskua, kertolaskua, ehto- ja toistolauseita. Ohjelmointia harrastaneelle ongelma ei ole ISO. Mitä olen saanut kasaan? Oletko jämähtänyt johonkin tiettyyn kohtaan?

Äänestä
  • Seuraavaa olen väsänny:


    import java.io.*;

    public class noppap
    {
    public static void main(String argv[])
    {
    int panos;
        int tulos = 1;
    Noppa ekaNoppa = new Noppa();
        Noppa tokaNoppa = new Noppa();
        int summa;

       
       
       
          
    try
    {
    BufferedReader syote =
    new BufferedReader(new InputStreamReader(System.in));

    System.out.print("Anna pelipanoksesi, panos voi olla alle 10 euroa: ");

    String mj = syote.readLine();

    System.out.flush();

    panos = Integer.parseInt(mj);
    }
    catch (IOException ioe)
    {
    System.out.println(ioe.toString()); return;
    }
          
          ekaNoppa.rollValue(6);
          tokaNoppa.rollValue(6);
          System.out.println("Ensimmäisen nopan tulos on " ekaNoppa.tulos);
          System.out.println("Toisen nopan tulos on " tokaNoppa.tulos);
          summa = ekaNoppa.tulos tokaNoppa.tulos;
          System.out.println("Noppien yhteenlaskettu summa on " summa);
          
          switch(summa)
          {
          case 2: System.out.println("Hävisit panoksesi " panos);
             tulos = 10 - panos;
             System.out.println("Sinulla on nyt rahaa " tulos);
             break;
             
          case 3: System.out.println("Hävisit panoksesi " panos);
             tulos = 10 - panos;
             System.out.println("Sinulla on nyt rahaa " tulos);
             break;
             
          case 12: System.out.println("Hävisit panoksesi " panos);
             tulos = 10 - panos;
             System.out.println("Sinulla on nyt rahaa " tulos);
             break;
             
          case 11: System.out.println("Voitit sijoittamasi panoksen kaksinkertaisena eli " panos*2);
             tulos = 10 panos*2;
             System.out.println("Sinulla on nyt rahaa " tulos);
             break;
             
          case 7: System.out.println("Voitit sijoittamasi panoksen kaksinkertaisena eli " panos*2);
             tulos = 10 panos*2;
             System.out.println("Sinulla on nyt rahaa " tulos);
             break;
          
          default: System.out.println("Heitä uudestaan, kunnes saat tulokseksi 7 ");
             
             break;
          }
       }
    }

    Äänestä

  • inssi69 kirjoitti:

    Seuraavaa olen väsänny:


    import java.io.*;

    public class noppap
    {
    public static void main(String argv[])
    {
    int panos;
        int tulos = 1;
    Noppa ekaNoppa = new Noppa();
        Noppa tokaNoppa = new Noppa();
        int summa;

       
       
       
          
    try
    {
    BufferedReader syote =
    new BufferedReader(new InputStreamReader(System.in));

    System.out.print("Anna pelipanoksesi, panos voi olla alle 10 euroa: ");

    String mj = syote.readLine();

    System.out.flush();

    panos = Integer.parseInt(mj);
    }
    catch (IOException ioe)
    {
    System.out.println(ioe.toString()); return;
    }
          
          ekaNoppa.rollValue(6);
          tokaNoppa.rollValue(6);
          System.out.println("Ensimmäisen nopan tulos on " ekaNoppa.tulos);
          System.out.println("Toisen nopan tulos on " tokaNoppa.tulos);
          summa = ekaNoppa.tulos tokaNoppa.tulos;
          System.out.println("Noppien yhteenlaskettu summa on " summa);
          
          switch(summa)
          {
          case 2: System.out.println("Hävisit panoksesi " panos);
             tulos = 10 - panos;
             System.out.println("Sinulla on nyt rahaa " tulos);
             break;
             
          case 3: System.out.println("Hävisit panoksesi " panos);
             tulos = 10 - panos;
             System.out.println("Sinulla on nyt rahaa " tulos);
             break;
             
          case 12: System.out.println("Hävisit panoksesi " panos);
             tulos = 10 - panos;
             System.out.println("Sinulla on nyt rahaa " tulos);
             break;
             
          case 11: System.out.println("Voitit sijoittamasi panoksen kaksinkertaisena eli " panos*2);
             tulos = 10 panos*2;
             System.out.println("Sinulla on nyt rahaa " tulos);
             break;
             
          case 7: System.out.println("Voitit sijoittamasi panoksen kaksinkertaisena eli " panos*2);
             tulos = 10 panos*2;
             System.out.println("Sinulla on nyt rahaa " tulos);
             break;
          
          default: System.out.println("Heitä uudestaan, kunnes saat tulokseksi 7 ");
             
             break;
          }
       }
    }

    rahaa=10

    :luuppi1
    panos=?

    rahaa=rahaa-panos
    heitto
    noppienSummaEka=noppa1 noppa2

    jos noppienSummaEka on 7 tai 11
    - rahaa=rahaa panos*2, luuppiin1

    jos noppienSummaEka on 2, 3 tai 12
    - luuppiin1

    :luuppi2

    heitto
    noppienSumma=noppa1 noppa2

    jos noppienSumma on 7
    - luuppiin1

    jos noppienSumma on noppienSummaEka
    - rahaa=rahaa panos*2, luuppiin1

    luupin2 alkuun

    Äänestä

  • Jotain vikaa tässäkin on, mutta jos joku vois jatkaa, niin saatas kaikki vähän vinkkiä!!


    import java.io.*;

    public class Noppa
    {
        public static void main(String argv[])
       {
          System.out.println("Tervetuloa Amerikkalaiseen rahapeliin ");
          
          do
          {
             System.out.println("Anna panoksesi ");
             panos();
             noppa1.heita();
    noppa1.repaint();
    noppa2.heita();
    noppa2.repaint();
             tulos();
          }
          while (rahamaara = 0 || vastaus = 'k')
       }
          
       public static int panos(int raha)
       {
          try
       {
       BufferedReader syote =
    new BufferedReader(new InputStreamReader(System.in));

       System.out.print("Anna pelipanoksesi, panos alle 10 euroa: ");

       String mj = syote.readLine();

       System.out.flush();

       raha = Integer.parseInt(mj);
       }
       catch (IOException ioe)
       {
       System.out.println(ioe.toString()); return;
       }
       }
       
       public static noppa extends JPanel
       {
       int silmaluku;

    public Noppa1()
       {
    heita();
    }


    public void heita()
       {
    silmaluku = (int)(Math.random()*6) 1;
    }

    public int palautaSilmaluku()
       {
    return silmaluku;
    }

    }
       
       public static int tulos(int summa)
       {
          switch(summa)
          {
          case 2: System.out.println("Hävisit panoksesi " panos);
             tulos = 10 - panos;
             System.out.println("Sinulla on nyt rahaa " tulos);
             break;
             
          case 3: System.out.println("Hävisit panoksesi " panos);
             tulos = 10 - panos;
             System.out.println("Sinulla on nyt rahaa " tulos);
             break;
             
          case 12: System.out.println("Hävisit panoksesi " panos);
             tulos = 10 - panos;
             System.out.println("Sinulla on nyt rahaa " tulos);
             break;
             
          case 11: System.out.println("Voitit sijoittamasi panoksen kaksinkertaisena eli " panos*2);
             tulos = 10 panos*2;
             System.out.println("Sinulla on nyt rahaa " tulos);
             break;
             
          case 7: System.out.println("Voitit sijoittamasi panoksen kaksinkertaisena eli " panos*2);
             tulos = 10 panos*2;
             System.out.println("Sinulla on nyt rahaa " tulos);
             break;
          
          default: System.out.println("Heitä uudestaan, kunnes saat tulokseksi 7,jolloin häviät \n tai ensimmäisen heittokierroksen tuloksen, jolloin saat panoksesi kaksinkertaisena. ");
             
             break;
          }
       }
       

    }

    Äänestä

hiukan myöhäs tämä tulee mut tälläsen kirjottelin nopeesti:
import java.io.*;
import java.util.Random;
public class NoppaPeli {

private int tulos;
private int panos;
private int raha = 10;
private Random arvaus;
private boolean lopeta =true;

public NoppaPeli(){
try{
valikko();
}
catch(Exception e){ System.out.println("VIRHE");}
}

private void valikko() throws IOException{
System.out.println("--Tervetuloa pelaamaan--");
System.out.print("Sinulla on rahaa " raha ". Anna panoksesi:");
panos = System.in.read();


while(lopeta){
tulos = pyoritajaSummaa();
if(tulos == 11 || tulos == 7){
System.out.println("Noppien summa on " tulos ". Voitit panoksesi tuplana!");
raha = panos*2;
lopeta = false;
}
if(tulos == 2 || tulos == 3 ||tulos == 12){
System.out.println("Noppien summa on " tulos ". Hävisit!");
raha -= panos;
lopeta = false;
}
else{
System.out.println("Noppien summa on " tulos);
}
}
}

private int pyoritajaSummaa(){
arvaus = new Random();
int tulos1 = arvaus.nextInt(6) 1;
int tulos2 = arvaus.nextInt(6) 1;
return tulos1 tulos2;
}
public static void main(String[] args){
new NoppaPeli();
}
}

Tuosta puuttuu pari toisto-lausetta ja iso kasa tarkistuksia mut toi toimii ja tekee periaatteessa sen mitä vaaditaan:)

Äänestä

Kommentoi aloitusta


inssi69 kirjoitti:

Hei!
Olis ISO ongelma ohjelmointi tehtävässä.
Pitäisi saada tehtyä noppapeli.

Pelin säännöt:
1. Ensin panos (aluksi 10 € ja minimipanos 1 €)
2. Kaksi arpakuutiota.
3. Jos hän saa noppien summaksi 7 tai 11, hän voittaa panoksensa kaksinkertaisena.
Jos hän saa 2, 3 tai 12, hän häviää panoksensa.
4. Muilla tuloksilla pelaaja heittää, kunnes saa joko 7:n,
jolloin hän häviää panoksensa tai ensimmäisen kierroksen tuloksensa uudestaan,
jolloin hän voittaa panoksensa kaksinkertaisena.

Kone kysyy käyttäjältä panoksen ja sen jälkeen "heittää" käyttäjän puolesta noppia,
kunnes käyttäjä on joko voittanut tai hävinnyt.
Peli loppuu kun käyttäjä on menettänyt rahansa tai haluaa lopettaa pelaamiseen.

Noppien heiton tulokset, panos ja rahatilanne tulee näyttää selkeästi käyttäjälle.


Jotain olen saanut kyhättyä kasaan, mutta.....
Olis tosi hyvä jos sais vinkkiä tai enemmnkin asiaan.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu