|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object demo.AstiaPeli
public class AstiaPeli
John McLane (Bruce Willis) joutui elokuvassa Die Hard 3 ongelman eteen,
jossa piti kahdella vesikanisterilla mitata jonkin muun suuruinen
vesimäärä "tarkasti" ja näin estää pommin räjähtäminen.
Koska aika meni varsin tiukalle, on vastaavien tilanteiden harjoittelemiseksi
nyt tehty uusi menestysohjelma "Astia".
Pelillä demonstroidaan/harjoitellaan miten voidaan kahdella astialla,
5 l ja 8 l, muodostaa kaikki mahdolliset tilavuudet 1-13 l.
Pelissä on kaksi varsinaista astiaa: a5 ja a8, sekä kolmas apuastia
ampari. Nestettä voidaan kerrallaan kaataa yhdestä astiasta toiseen
joko siten, että astian koko sisältö tyhjennetään jos se mahtuu
tai astista kaadetaan sen verran että toinen astia tulee täyteen.
Tee ohjelma jota voitasiin käyttää seuraavasti:
Käytössäsi on 8 ja 5 litran astia ja Ämpäri (100 l) 8 litran astiassa on 0 litraa 5 litran astiassa on 0 litraa Mistä kaadetaan ja mihin >ä 8[ret] 8 litran astiassa on 8 litraa 5 litran astiassa on 0 litraa Mistä kaadetaan ja mihin >8 5[ret] 8 litran astiassa on 3 litraa 5 litran astiassa on 5 litraa Mistä kaadetaan ja mihin >5 ä[ret] 8 litran astiassa on 3 litraa 5 litran astiassa on 0 litraa Mistä kaadetaan ja mihin >8 5[ret] 8 litran astiassa on 0 litraa 5 litran astiassa on 3 litraa Mistä kaadetaan ja mihin >[ret]Toteutettu peli-luokaksi, jossa käytetään hyväksi Astia2-luokkaa.
Field Summary | |
---|---|
protected Astia[] |
astiat
Taulukko astioista |
private int |
lkm
|
private static int |
MAXLKM
|
Constructor Summary | |
---|---|
AstiaPeli()
Astiapelin alustus. |
Method Summary | |
---|---|
int |
etsi(java.lang.String nimi)
Etsii sen astian, jolla on annettu nimi. |
int |
getLkm()
Palautetaan astioiden lukumäärä pelissä |
void |
lisaaAstia(java.lang.String nimi,
double tilavuus)
Lisätään uusi astia peliin. |
static void |
main(java.lang.String[] args)
Astiapelin pääohjelma |
void |
nimiOhje(java.lang.String mista,
java.lang.String mihin)
Tulostetaan ohjeet nimistä. |
void |
pelaa()
Käynistetään peli. |
void |
tulostaMaarat()
Tulostetaan astioissa olevat nestemäärät |
void |
tulostaOhje()
Tulostetaan pelin ohje |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final int MAXLKM
protected Astia[] astiat
private int lkm
Constructor Detail |
---|
public AstiaPeli()
Method Detail |
---|
public int getLkm()
public final void lisaaAstia(java.lang.String nimi, double tilavuus)
nimi
- lisättävän astian nimitilavuus
- lisättävän astian tilavuusAstiaPeli peli = new AstiaPeli(); peli.getLkm() === 1; peli.lisaaAstia("5",5); peli.getLkm() === 2; peli.lisaaAstia("8",8); peli.getLkm() === 3;
public void tulostaOhje()
Suuntaaja.StringOutput so = new Suuntaaja.StringOutput(); AstiaPeli peli = new AstiaPeli(); peli.lisaaAstia("5",5); peli.lisaaAstia("8",8); peli.tulostaOhje(); so.ero("Käytössäsi on 5.0 sekä 8.0 litran astiat ja Ämpari (100.0 l)\n") === null; so.palauta();
public void tulostaMaarat()
public int etsi(java.lang.String nimi)
nimi
- etsittävän astian nimi
AstiaPeli peli = new AstiaPeli(); peli.lisaaAstia("5",5); peli.lisaaAstia("8",8); peli.etsi("ä") === 0; peli.etsi("Ä") === 0; peli.etsi("5") === 1; peli.etsi("8") === 2; peli.etsi("9") === -1;
public void nimiOhje(java.lang.String mista, java.lang.String mihin)
mista
- mistä yritettiinmihin
- mihin yritettiinSuuntaaja.StringOutput so = new Suuntaaja.StringOutput(); AstiaPeli peli = new AstiaPeli(); peli.lisaaAstia("5",5); peli.lisaaAstia("8",8); peli.nimiOhje("4","6"); String tulos = "Nimeä ei tunneta: 4 tai 6\n" + "Tunnetaan nimet: \n" + "ä 5 8 \n"; so.ero(tulos) === null; so.palauta();
public void pelaa()
Suuntaaja.StringInput si = new Suuntaaja.StringInput(); Suuntaaja.StringOutput so = new Suuntaaja.StringOutput(); si.input("ä 8\n8 5\n4 5\n\n"); String tulos = "Käytössäsi on 5.0 sekä 8.0 litran astiat ja Ämpari (100.0 l)\n"+ "5.0 litran astiassa on 0.0 litraa nestettä\n" + "8.0 litran astiassa on 0.0 litraa nestettä\n" + "Mistä kaadetaan ja mihin >" + // NOPMD "5.0 litran astiassa on 0.0 litraa nestettä\n" + "8.0 litran astiassa on 8.0 litraa nestettä\n" + "Mistä kaadetaan ja mihin >" + "5.0 litran astiassa on 5.0 litraa nestettä\n" + "8.0 litran astiassa on 3.0 litraa nestettä\n" + "Mistä kaadetaan ja mihin >" + "Nimeä ei tunneta: 4 tai 5\n" + "Tunnetaan nimet: \n" + "ä 5 8 \n" + "5.0 litran astiassa on 5.0 litraa nestettä\n" + "8.0 litran astiassa on 3.0 litraa nestettä\n" + "Mistä kaadetaan ja mihin >"; AstiaPeli peli = new AstiaPeli(); peli.lisaaAstia("5",5); peli.lisaaAstia("8",8); peli.tulostaOhje(); peli.pelaa(); so.ero(tulos) === null; si.palauta(); so.palauta();
public static void main(java.lang.String[] args)
args
- ei käytössä
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |