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.
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.
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?
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
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;
}
}
}
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:)