Commit b589b320 authored by Rasmus Vainio's avatar Rasmus Vainio
Browse files

Merge branch 'master' of https://gitlab.utu.fi/jmjsaa/uno

parents 6e59cf89 1877c779
......@@ -9,5 +9,5 @@ public class Jokerikortti extends Kortti implements Erikoiskortti {
public String toString() {
return "[Jokeri, vri]";
}
}
......@@ -3,6 +3,7 @@ package domain.kortit;
public abstract class Kortti {
protected String vari;
protected int numero;
public Kortti(String vari) {
this.vari = vari;
......@@ -11,4 +12,9 @@ public abstract class Kortti {
public String annaVari() {
return this.vari;
}
public int annaNumero() {
return -1;
}
}
......@@ -10,4 +10,8 @@ public class NostaKaksikortti extends Kortti implements Erikoiskortti {
public String toString() {
return "[" + this.vari + ", +2]";
}
public int annaNumero() {
return 12;
}
}
......@@ -11,4 +11,7 @@ public class Ohituskortti extends Kortti implements Erikoiskortti {
return "[" + this.vari + ", o]";
}
public int annaNumero() {
return 11;
}
}
......@@ -9,4 +9,8 @@ public class Suunnanvaihtokortti extends Kortti implements Erikoiskortti {
public String toString() {
return "[" + this.vari + ", <->]";
}
public int annaNumero() {
return 13;
}
}
......@@ -114,13 +114,16 @@ public class Peli {
boolean kelvollinenKortti = false;
// Edellinen pelaaja on valinnut v�rin
if (!(edellinenKortti instanceof Jokerikortti || edellinenKortti instanceof Nosta4Jokerikortti)) {
this.vari = null;
}
if (this.vari != null) {
if (kortti.annaVari() != null
&& kortti.annaVari().equals(this.vari)) {
&& !(kortti.annaVari().equals(this.vari))) {
return false;
}
this.vari = null;
// this.vari = null;
return true;
}
......@@ -178,7 +181,8 @@ public class Peli {
boolean pelaajallaSopivanVarinenKortti = false;
for (Kortti k : pelaaja.annaKortit()) {
if (k.annaVari() != null &&
k.annaVari().equals(edellinenKortti.annaVari())) {
(k.annaVari().equals(edellinenKortti.annaVari()))) {
// (k.annaVari().equals(edellinenKortti.annaVari()) || (k.annaNumero()==edellinenKortti.annaNumero())) ) { //Tm jos halutaan numero/merkkitarkastus mukaan, ylempi jos vain vritarkastus
pelaajallaSopivanVarinenKortti = true;
}
}
......@@ -206,7 +210,7 @@ public class Peli {
else if (kortti instanceof NostaKaksikortti) {
if (!edellinenKortti.annaVari().equals(kortti.annaVari())
|| edellinenKortti instanceof NostaKaksikortti) {
&& !(edellinenKortti instanceof NostaKaksikortti)) {
System.out.println("Nosta 2 -kortin voi lyd samanvrisen kortin plle tai"
+ " toisen nosta 2 -kortin plle.");
return false;
......@@ -223,7 +227,7 @@ public class Peli {
else if (kortti instanceof Ohituskortti) {
if (!edellinenKortti.annaVari().equals(kortti.annaVari())
|| edellinenKortti instanceof Ohituskortti) {
&& !(edellinenKortti instanceof Ohituskortti)) {
System.out.println("Ohituskortin saa lyd samanvrisen kortin plle tai"
+ " toisen ohituskortin plle.");
return false;
......@@ -240,7 +244,7 @@ public class Peli {
else if (kortti instanceof Suunnanvaihtokortti) {
if (!edellinenKortti.annaVari().equals(kortti.annaVari())
|| edellinenKortti instanceof Suunnanvaihtokortti) {
&& !(edellinenKortti instanceof Suunnanvaihtokortti)) {
System.out.println("Suunnanvaihtokortin saa lyd samanvrisen kortin plle tai"
+ " toisen suunnanvaihtokortin plle.");
return false;
......@@ -256,12 +260,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
//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())) {
// if(!kortti.annaVari().equals(edellinenKortti.annaVari())&&((Peruskortti) kortti).annaNumero()!=((Peruskortti) edellinenKortti).annaNumero() ) {
if(!kortti.annaVari().equals(edellinenKortti.annaVari())&&(kortti.annaNumero()!=edellinenKortti.annaNumero())) {
System.out.println("Kortin tulee olla samaa vri tai sama numero.");
return false;
} else {
......@@ -270,7 +275,7 @@ public class Peli {
}
}
this.vari = null;
// this.vari = null;
return kelvollinenKortti;
}
......@@ -278,14 +283,18 @@ public class Peli {
boolean kelvollinenKortti = false;
if (!(edellinenKortti instanceof Jokerikortti || edellinenKortti instanceof Nosta4Jokerikortti)) {
this.vari = null;
}
// Edellinen pelaaja on valinnut v�rin
if (this.vari != null) {
if (kortti.annaVari() != null
&& kortti.annaVari().equals(this.vari)) {
&& !(kortti.annaVari().equals(this.vari))) {
return false;
}
this.vari = null;
// this.vari = null;
System.out.println(pelaaja.annaNimi() + " pelasi kortin: " + kortti + " - Kortteja jljell : " + ((pelaaja.annaKortit()).size()-1));
return true;
}
......@@ -351,9 +360,12 @@ public class Peli {
int varinNumero = this.random.nextInt(4);
String vari = varit[varinNumero];
this.vari = vari;
this.paivitaVuoronumero();
kelvollinenKortti = true;
System.out.println(pelaaja.annaNimi() + " pelasi kortin: " + kortti + " - Kortteja jljell : " + ((pelaaja.annaKortit()).size()-1));
System.out.println();
System.out.println((this.annaPelaaja(seuraavaksiVuorossa)).annaNimi() + " nosti nelj korttia");
this.paivitaVuoronumero();
}
/*
......@@ -365,13 +377,16 @@ public class Peli {
else if (kortti instanceof NostaKaksikortti) {
if (!edellinenKortti.annaVari().equals(kortti.annaVari())
|| edellinenKortti instanceof NostaKaksikortti) {
&& !(edellinenKortti instanceof NostaKaksikortti)) {
return false;
}
this.annaPelaaja(seuraavaksiVuorossa).nostaKaksiKorttia(this.nostopakka);
this.paivitaVuoronumero();
kelvollinenKortti = true;
System.out.println(pelaaja.annaNimi() + " pelasi kortin: " + kortti + " - Kortteja jljell : " + ((pelaaja.annaKortit()).size()-1));
System.out.println();
System.out.println((this.annaPelaaja(seuraavaksiVuorossa)).annaNimi() + " nosti kaksi korttia");
this.paivitaVuoronumero();
}
/*
......@@ -381,12 +396,15 @@ public class Peli {
else if (kortti instanceof Ohituskortti) {
if (!edellinenKortti.annaVari().equals(kortti.annaVari())
|| edellinenKortti instanceof Ohituskortti) {
&& !(edellinenKortti instanceof Ohituskortti)) {
return false;
}
this.paivitaVuoronumero();
kelvollinenKortti = true;
System.out.println(pelaaja.annaNimi() + " pelasi kortin: " + kortti + " - Kortteja jljell : " + ((pelaaja.annaKortit()).size()-1));
System.out.println();
System.out.println((this.annaPelaaja(seuraavaksiVuorossa)).annaNimi() + " menetti vuoronsa");
this.paivitaVuoronumero();
}
/*
......@@ -397,7 +415,8 @@ public class Peli {
else if (kortti instanceof Suunnanvaihtokortti) {
if (!edellinenKortti.annaVari().equals(kortti.annaVari())
|| edellinenKortti instanceof Suunnanvaihtokortti) {
&& !(edellinenKortti instanceof Suunnanvaihtokortti)) {
return false;
}
this.suuntaKasvava = !this.suuntaKasvava;
paivitaVuoronumero();
......@@ -410,12 +429,13 @@ public class Peli {
if (edellinenKortti.annaVari() != null) {
if (!kortti.annaVari().equals(edellinenKortti.annaVari())
&& edellinenKortti instanceof Peruskortti) {
if (((Peruskortti) kortti).annaNumero() != ((Peruskortti) edellinenKortti).annaNumero()) {
if(!kortti.annaVari().equals(edellinenKortti.annaVari())&&((Peruskortti) kortti).annaNumero()!=((Peruskortti) edellinenKortti).annaNumero() ) {
//Kortti on peruskortti, mutta eriv�rinen ja erinumeroinen kuin edellinen kortti
return false;
}
}
if(!kortti.annaVari().equals(edellinenKortti.annaVari())) {
// if(!kortti.annaVari().equals(edellinenKortti.annaVari())&&((Peruskortti) kortti).annaNumero()!=((Peruskortti) edellinenKortti).annaNumero() ) {
if(!kortti.annaVari().equals(edellinenKortti.annaVari())&&(kortti.annaNumero()!=edellinenKortti.annaNumero())) {
return false;
} else {
kelvollinenKortti = true;
......@@ -424,7 +444,7 @@ public class Peli {
}
}
this.vari = null;
// this.vari = null;
return kelvollinenKortti;
}
......
......@@ -17,6 +17,8 @@ import domain.korttipakat.Poistopakka;
import domain.pelaajat.Pelaaja;
import domain.kortit.Jokerikortti;
import domain.kortit.Nosta4Jokerikortti;
import domain.kortit.NostaKaksikortti;
import domain.kortit.Ohituskortti;
import logiikka.Peli;
public class Tekstikayttoliittyma {
......@@ -92,15 +94,11 @@ public class Tekstikayttoliittyma {
try {
TimeUnit.SECONDS.sleep(1); //odottaa vuorojen vliss realismin luomiseksi
}catch(Exception e) {}
if (peli.annaVari() != null) {
System.out.println("Laitettava kortti, joka on vriltn "
+ peli.annaVari() );
} else {
System.out.print("Pakan pllimminen kortti on: ");
System.out.println(poistopakka.annaPaallimmainenKortti());
if(poistopakka.annaPaallimmainenKortti() instanceof Jokerikortti || poistopakka.annaPaallimmainenKortti() instanceof Nosta4Jokerikortti) {
System.out.println("Vaadittu vri on: " + peli.annaVari());
}
System.out.print("Pakan pllimminen kortti on: ");
System.out.println(poistopakka.annaPaallimmainenKortti());
if(poistopakka.annaPaallimmainenKortti() instanceof Jokerikortti || poistopakka.annaPaallimmainenKortti() instanceof Nosta4Jokerikortti) {
System.out.println("Vaadittu vri on: " + peli.annaVari());
}
peli.paivitaVuoronumero();
......@@ -132,7 +130,25 @@ public class Tekstikayttoliittyma {
kortit.remove(kortinNumero);
System.out.println("");
System.out.println("Pelasit kortin: " + k + " - Kortteja jljell : " + (pelaaja.annaKortit()).size());
}
String playerDeclare = "";
if(peli.annaSuuntaKasvava()) {
playerDeclare = "Tietokone 1";
}
else {playerDeclare = "Tietokone 3";}
if(k instanceof Nosta4Jokerikortti) {
System.out.println();
System.out.println(playerDeclare + " nosti nelj korttia");
}
if(k instanceof Ohituskortti) {
System.out.println();
System.out.println(playerDeclare + " menetti vuoronsa");
}
if(k instanceof NostaKaksikortti) {
System.out.println();
System.out.println(playerDeclare + " nosti kaksi korttia");
}
}
}
} else { // tietokonepelaaja
......
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