Commit 1828b689 authored by Roope Malinen's avatar Roope Malinen
Browse files

Update src/logiikka/Peli.java, src/ui/Tekstikayttoliittyma.java files

(cherry picked from commit 33638444)
parent 85753648
......@@ -31,10 +31,10 @@ public class Peli {
public Peli() {
this.pelaajat = new ArrayList<>();
this.pelaajat.add(new Ihmispelaaja("pelaaja")); // pelaaja nro 0
this.pelaajat.add(new Tietokonepelaaja("tietokone 1"));
this.pelaajat.add(new Tietokonepelaaja("tietokone 2"));
this.pelaajat.add(new Tietokonepelaaja("tietokone 3"));
this.pelaajat.add(new Ihmispelaaja("Pelaaja")); // pelaaja nro 0
this.pelaajat.add(new Tietokonepelaaja("Tietokone 1"));
this.pelaajat.add(new Tietokonepelaaja("Tietokone 2"));
this.pelaajat.add(new Tietokonepelaaja("Tietokone 3"));
this.nostopakka = new Nostopakka();
......@@ -113,7 +113,7 @@ public class Peli {
boolean kelvollinenKortti = false;
// Edellinen pelaaja on valinnut vrin
// Edellinen pelaaja on valinnut vrin
if (this.vari != null) {
if (kortti.annaVari() != null
......@@ -125,17 +125,17 @@ public class Peli {
}
// Jos edellinen kortti on Jokerikortti tai Nosta 4 -jokerikortti,
//niin kortin pit olla annettua vri tai jokerikortti tai Nosta 4 -jokerikortti.
// Nosta 4 -jokerikortin voi kytt vain jos pelaajalla ei ole kyseist vri.
//niin kortin pit�� olla annettua vri tai jokerikortti tai Nosta 4 -jokerikortti.
// Nosta 4 -jokerikortin voi kytt�� vain jos pelaajalla ei ole kyseist vri.
if (edellinenKortti instanceof Jokerikortti || edellinenKortti instanceof Nosta4Jokerikortti) {
if (kortti.annaVari() != null
&& !kortti.annaVari().equals(this.vari)
&& !(kortti instanceof Jokerikortti)
&& !(kortti instanceof Nosta4Jokerikortti)) {
System.out.println("Sinun tulee laittaa kortti, joka on vriltn "
System.out.println("Sinun tulee laittaa kortti, joka on vrilt��n "
+ this.vari + " tai jokerikortti tai Nosta 4- jokerikortti "
+ "(vain jos kdess ei ole kyseist vri)");
+ "(vain jos kdess ei ole kyseist vri)");
return false;
}
if (kortti instanceof Nosta4Jokerikortti) {
......@@ -147,30 +147,32 @@ public class Peli {
}
}
if (pelaajallaSopivanVarinenKortti) {
System.out.println("Et voi kytt Nosta 4 -korttia, jos sinulla on sopivan vrinen kortti.");
System.out.println("Et voi kytt�� Nosta 4 -korttia, jos sinulla on sopivan vrinen kortti.");
return false;
}
}
}
/*
* Jokeri Kortin lynyt pelaaja saa valita seuraavaksi pelattavan vrin.
* Kortin saa lyd milloin tahansa paitsi silloin, kun sen lyj joutuu juuri
* Jokeri Kortin lynyt pelaaja saa valita seuraavaksi pelattavan vrin.
* Kortin saa ly�d� milloin tahansa paitsi silloin, kun sen ly�j� joutuu juuri
* ottamaan vastaan Nosta kaksi -korttia tai Nosta 4-jokeri -korttia.
*/
if (kortti instanceof Jokerikortti) {
System.out.println("Valitse vri (sininen, punainen, keltainen, vihre):");
System.out.print(">");
String vari = lukija.next();
this.vari = vari;
do{
System.out.println("Valitse väri (sininen, punainen, keltainen, vihreä):");
System.out.print(">");
String vari = lukija.next();
this.vari = vari;
}while (!(this.vari.equals("sininen")||this.vari.equals("punainen")||this.vari.equals("keltainen")||this.vari.equals("vihreä")));
this.paivitaVuoronumero();
kelvollinenKortti = true;
}
/*
* Nosta 4 -jokeri Kortin lyneest pelaajasta seuraava menett vuoronsa
* ja nostaa pakasta nelj korttia. Lisksi kortin lynyt pelaaja saa valita
* seuraavaksi pelattavan vrin. Pelaaja ei saa kuitenaan lyd nosta 4-jokeri
* korttia silloin, kun hnell on kdessn mys samanvrinen kortti kuin
* poistopakan pllimminen kortti on. Muulloin kortin voi lyd koska vain.
* Nosta 4 -jokeri Kortin lyneest pelaajasta seuraava menett�� vuoronsa
* ja nostaa pakasta nelj korttia. Lisksi kortin lynyt pelaaja saa valita
* seuraavaksi pelattavan vrin. Pelaaja ei saa kuitenaan ly�d� nosta 4-jokeri
* korttia silloin, kun hnell on kdess��n mys samanvrinen kortti kuin
* poistopakan p��llimminen kortti on. Muulloin kortin voi ly�d� koska vain.
*/
else if (kortti instanceof Nosta4Jokerikortti) {
......@@ -182,30 +184,32 @@ public class Peli {
}
}
if (pelaajallaSopivanVarinenKortti) {
System.out.println("Et voi kytt Nosta 4 -korttia, jos sinulla on sopivan vrinen kortti.");
System.out.println("Et voi kytt�� Nosta 4 -korttia, jos sinulla on sopivan vrinen kortti.");
return false;
}
this.annaPelaaja(seuraavaksiVuorossa).nostaNeljaKorttia(this.nostopakka);
System.out.println("Valitse vri (sininen, punainen, keltainen, vihre):");
System.out.print(">");
String vari = lukija.next();
this.vari = vari;
do{
System.out.println("Valitse väri (sininen, punainen, keltainen, vihreä):");
System.out.print(">");
String vari = lukija.next();
this.vari = vari;
}while (!(this.vari.equals("sininen")||this.vari.equals("punainen")||this.vari.equals("keltainen")||this.vari.equals("vihreä")));
this.paivitaVuoronumero();
kelvollinenKortti = true;
}
/*
* Nosta kaksi Kortin lyneen pelaajan jlkeen seuraavana vuorossa oleva
* menett vuoronsa ja joutuu nostamaan pakasta kaksi korttia kteen. Nosta
* kaksi -kortin saa lyd joko samanvrisen kortin tai mys erivrisen Nosta
* kaksi -kortin plle.
* Nosta kaksi Kortin lyneen pelaajan jlkeen seuraavana vuorossa oleva
* menett�� vuoronsa ja joutuu nostamaan pakasta kaksi korttia kteen. Nosta
* kaksi -kortin saa ly�d� joko samanvrisen kortin tai mys erivrisen Nosta
* kaksi -kortin p��lle.
*/
else if (kortti instanceof NostaKaksikortti) {
if (!edellinenKortti.annaVari().equals(kortti.annaVari())
|| edellinenKortti instanceof NostaKaksikortti) {
System.out.println("Nosta 2 -kortin voi lyd samanvrisen kortin plle tai"
+ " toisen nosta 2 -kortin plle.");
System.out.println("Nosta 2 -kortin voi ly�d� samanvrisen kortin p��lle tai"
+ " toisen nosta 2 -kortin p��lle.");
return false;
}
this.annaPelaaja(seuraavaksiVuorossa).nostaKaksiKorttia(this.nostopakka);
......@@ -214,15 +218,15 @@ public class Peli {
}
/*
* Ohituskortti Kortin lyneest pelaajasta seuraava menett vuoronsa. Kortin
* saa lyd joko samanvrisen kortin tai erivrisen ohituskortin plle.
* Ohituskortti Kortin lyneest pelaajasta seuraava menett�� vuoronsa. Kortin
* saa ly�d� joko samanvrisen kortin tai erivrisen ohituskortin p��lle.
*/
else if (kortti instanceof Ohituskortti) {
if (!edellinenKortti.annaVari().equals(kortti.annaVari())
|| edellinenKortti instanceof Ohituskortti) {
System.out.println("Ohituskortin saa lyd samanvrisen kortin plle tai"
+ " toisen ohituskortin plle.");
System.out.println("Ohituskortin saa ly�d� samanvrisen kortin p��lle tai"
+ " toisen ohituskortin p��lle.");
return false;
}
this.paivitaVuoronumero();
......@@ -230,18 +234,20 @@ public class Peli {
}
/*
* Suunnanvaihtokortti Kortti vaihtaa pelaajien vuorojrjestyksen suunnan.
* Kortin saa lyd joko samanvrisen kortin tai erivrisen Suunnanvaihtokortin
* plle.
* Suunnanvaihtokortti Kortti vaihtaa pelaajien vuorojrjestyksen suunnan.
* Kortin saa ly�d� joko samanvrisen kortin tai erivrisen Suunnanvaihtokortin
* p��lle.
*/
else if (kortti instanceof Suunnanvaihtokortti) {
if (!edellinenKortti.annaVari().equals(kortti.annaVari())
|| edellinenKortti instanceof Suunnanvaihtokortti) {
System.out.println("Suunnanvaihtokortin saa lyd samanvrisen kortin plle tai"
+ " toisen suunnanvaihtokortin plle.");
System.out.println("Suunnanvaihtokortin saa ly�d� samanvrisen kortin p��lle tai"
+ " toisen suunnanvaihtokortin p��lle.");
}
this.suuntaKasvava = !this.suuntaKasvava;
paivitaVuoronumero();
paivitaVuoronumero();
kelvollinenKortti = true;
}
......@@ -250,13 +256,13 @@ public class Peli {
if (!kortti.annaVari().equals(edellinenKortti.annaVari())
&& edellinenKortti instanceof Peruskortti) {
if (((Peruskortti) kortti).annaNumero() != ((Peruskortti) edellinenKortti).annaNumero()) {
//Kortti on peruskortti, mutta erivrinen ja erinumeroinen kuin edellinen kortti
System.out.println("Kortin tulee olla samaa vri tai sama numero.");
//Kortti on peruskortti, mutta erivrinen ja erinumeroinen kuin edellinen kortti
System.out.println("Kortin tulee olla samaa vri tai sama numero.");
return false;
}
}
if(!kortti.annaVari().equals(edellinenKortti.annaVari())) {
System.out.println("Kortin tulee olla samaa vri tai sama numero.");
System.out.println("Kortin tulee olla samaa vri tai sama numero.");
return false;
} else {
kelvollinenKortti = true;
......@@ -272,7 +278,7 @@ public class Peli {
boolean kelvollinenKortti = false;
// Edellinen pelaaja on valinnut vrin
// Edellinen pelaaja on valinnut vrin
if (this.vari != null) {
if (kortti.annaVari() != null
......@@ -286,8 +292,8 @@ public class Peli {
// Jos edellinen kortti on Jokerikortti tai Nosta 4 -jokerikortti,
//niin kortin pit olla annettua vri tai jokerikortti tai Nosta 4 -jokerikortti.
// Nosta 4 -jokerikortin voi kytt vain jos pelaajalla ei ole kyseist vri.
//niin kortin pit�� olla annettua vri tai jokerikortti tai Nosta 4 -jokerikortti.
// Nosta 4 -jokerikortin voi kytt�� vain jos pelaajalla ei ole kyseist vri.
if (edellinenKortti instanceof Jokerikortti || edellinenKortti instanceof Nosta4Jokerikortti) {
if (kortti.annaVari() != null
......@@ -309,12 +315,12 @@ public class Peli {
}
}
/*
* Jokeri Kortin lynyt pelaaja saa valita seuraavaksi pelattavan vrin.
* Kortin saa lyd milloin tahansa paitsi silloin, kun sen lyj joutuu juuri
* Jokeri Kortin lynyt pelaaja saa valita seuraavaksi pelattavan vrin.
* Kortin saa ly�d� milloin tahansa paitsi silloin, kun sen ly�j� joutuu juuri
* ottamaan vastaan Nosta kaksi -korttia tai Nosta 4-jokeri -korttia.
*/
if (kortti instanceof Jokerikortti) {
String[] varit = {"sininen", "punainen", "keltainen", "vihre"};
String[] varit = {"sininen", "punainen", "keltainen", "vihre"};
int varinNumero = this.random.nextInt(4);
String vari = varit[varinNumero];
this.vari = vari;
......@@ -323,11 +329,11 @@ public class Peli {
System.out.println(pelaaja.annaNimi() + " pelasi kortin: " + kortti);
}
/*
* Nosta 4 -jokeri Kortin lyneest pelaajasta seuraava menett vuoronsa
* ja nostaa pakasta nelj korttia. Lisksi kortin lynyt pelaaja saa valita
* seuraavaksi pelattavan vrin. Pelaaja ei saa kuitenaan lyd nosta 4-jokeri
* korttia silloin, kun hnell on kdessn mys samanvrinen kortti kuin
* poistopakan pllimminen kortti on. Muulloin kortin voi lyd koska vain.
* Nosta 4 -jokeri Kortin lyneest pelaajasta seuraava menett�� vuoronsa
* ja nostaa pakasta nelj korttia. Lisksi kortin lynyt pelaaja saa valita
* seuraavaksi pelattavan vrin. Pelaaja ei saa kuitenaan ly�d� nosta 4-jokeri
* korttia silloin, kun hnell on kdess��n mys samanvrinen kortti kuin
* poistopakan p��llimminen kortti on. Muulloin kortin voi ly�d� koska vain.
*/
else if (kortti instanceof Nosta4Jokerikortti) {
......@@ -339,11 +345,11 @@ public class Peli {
}
}
if (pelaajallaSopivanVarinenKortti) {
System.out.println("Et voi kytt Nosta 4 -korttia, jos sinulla on sopivan vrinen kortti.");
System.out.println("Et voi kytt�� Nosta 4 -korttia, jos sinulla on sopivan vrinen kortti.");
return false;
}
this.annaPelaaja(seuraavaksiVuorossa).nostaNeljaKorttia(this.nostopakka);
String[] varit = {"sininen", "punainen", "keltainen", "vihre"};
String[] varit = {"sininen", "punainen", "keltainen", "vihre"};
int varinNumero = this.random.nextInt(4);
String vari = varit[varinNumero];
this.vari = vari;
......@@ -353,10 +359,10 @@ public class Peli {
}
/*
* Nosta kaksi Kortin lyneen pelaajan jlkeen seuraavana vuorossa oleva
* menett vuoronsa ja joutuu nostamaan pakasta kaksi korttia kteen. Nosta
* kaksi -kortin saa lyd joko samanvrisen kortin tai mys erivrisen Nosta
* kaksi -kortin plle.
* Nosta kaksi Kortin lyneen pelaajan jlkeen seuraavana vuorossa oleva
* menett�� vuoronsa ja joutuu nostamaan pakasta kaksi korttia kteen. Nosta
* kaksi -kortin saa ly�d� joko samanvrisen kortin tai mys erivrisen Nosta
* kaksi -kortin p��lle.
*/
else if (kortti instanceof NostaKaksikortti) {
......@@ -371,8 +377,8 @@ public class Peli {
}
/*
* Ohituskortti Kortin lyneest pelaajasta seuraava menett vuoronsa. Kortin
* saa lyd joko samanvrisen kortin tai erivrisen ohituskortin plle.
* Ohituskortti Kortin lyneest pelaajasta seuraava menett�� vuoronsa. Kortin
* saa ly�d� joko samanvrisen kortin tai erivrisen ohituskortin p��lle.
*/
else if (kortti instanceof Ohituskortti) {
......@@ -386,9 +392,9 @@ public class Peli {
}
/*
* Suunnanvaihtokortti Kortti vaihtaa pelaajien vuorojrjestyksen suunnan.
* Kortin saa lyd joko samanvrisen kortin tai erivrisen Suunnanvaihtokortin
* plle.
* Suunnanvaihtokortti Kortti vaihtaa pelaajien vuorojrjestyksen suunnan.
* Kortin saa ly�d� joko samanvrisen kortin tai erivrisen Suunnanvaihtokortin
* p��lle.
*/
else if (kortti instanceof Suunnanvaihtokortti) {
......@@ -396,6 +402,8 @@ public class Peli {
|| edellinenKortti instanceof Suunnanvaihtokortti) {
}
this.suuntaKasvava = !this.suuntaKasvava;
paivitaVuoronumero();
paivitaVuoronumero();
kelvollinenKortti = true;
System.out.println(pelaaja.annaNimi() + " pelasi kortin: " + kortti);
}
......@@ -405,7 +413,7 @@ public class Peli {
if (!kortti.annaVari().equals(edellinenKortti.annaVari())
&& edellinenKortti instanceof Peruskortti) {
if (((Peruskortti) kortti).annaNumero() != ((Peruskortti) edellinenKortti).annaNumero()) {
//Kortti on peruskortti, mutta erivrinen ja erinumeroinen kuin edellinen kortti
//Kortti on peruskortti, mutta erivrinen ja erinumeroinen kuin edellinen kortti
return false;
}
}
......
......@@ -68,8 +68,8 @@ public class Tekstikayttoliittyma {
while (peliKesken) {
Pelaaja peliVuorossa = peli.annaPelaaja(peli.annaSeuraavaksiVuorossa());
System.out.println("Pelivuorossa on: " + peliVuorossa.annaNimi()
+ " (Pisteet: " + peliVuorossa.laskePisteet() + ")");
// System.out.println("Pelivuorossa on: " + peliVuorossa.annaNimi()
// + " (Pisteet: " + peliVuorossa.laskePisteet() + ")");
System.out.println();
......@@ -77,21 +77,21 @@ public class Tekstikayttoliittyma {
if (peli.annaSeuraavaksiVuorossa() == 0) {
if (peli.annaVari() != null) {
System.out.println("Laitettava kortti, joka on vriltn "
System.out.println("Laitettava kortti, joka on vrilt��n "
+ peli.annaVari() );
} else {
System.out.print("Pakan plimminen kortti on: ");
System.out.print("Pakan p��limminen kortti on: ");
System.out.println(poistopakka.annaPaallimmainenKortti());
}
peli.paivitaVuoronumero();
boolean korttiPelattu = false;
while (korttiPelattu == false) {
System.out.println("Sinulla on kdesssi kortit:");
System.out.println("Sinulla on kdesssi kortit:");
pelaaja.tulostaKortit();
System.out.println("Kirjoita kortin numero pelataksesi kortin tai \"nosta\" nostaaksesi kortin.");
System.out.print(">");
System.out.print("> ");
String input = this.lukija.next();
List<Kortti> kortit = pelaaja.annaKortit();
if (input.equals("nosta")) {
......@@ -126,6 +126,7 @@ public class Tekstikayttoliittyma {
if (!kelvollinenKortti) {
if (kortinNumero == peliVuorossa.annaKortit().size()-1) {
peliVuorossa.nostaKortti(nostopakka); //ei sopivaa korttia
System.out.println(peliVuorossa.annaNimi() + " nosti yhden kortin"); //Vaikutti rikkovan jotain? En tiedä varmaksi. Nyt näyttää jo toimivan.
kelvollinenKortti = true;
} else {
kortinNumero++;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment