Commit bee73e36 authored by Roope Malinen's avatar Roope Malinen Committed by Roope Malinen
Browse files

Ihan vaan niin kuin muuten vaan palautteesta gitille, 1/5 tähteä, elämäni kehnoin kokemus


(cherry picked from commit f1cff9d2)
parent a5c27863
package domain.kortit;
public interface Erikoiskortti {
}
package domain.kortit;
public class Jokerikortti extends Kortti {
public class Jokerikortti extends Kortti implements Erikoiskortti {
public Jokerikortti(String vari) {
super(vari);
......
package domain.kortit;
public class Nosta4Jokerikortti extends Kortti {
public class Nosta4Jokerikortti extends Kortti implements Erikoiskortti {
public Nosta4Jokerikortti(String vari) {
super(vari);
......
package domain.kortit;
public class NostaKaksikortti extends Kortti {
public class NostaKaksikortti extends Kortti implements Erikoiskortti {
public NostaKaksikortti(String vari) {
......
package domain.kortit;
public class Ohituskortti extends Kortti {
public class Ohituskortti extends Kortti implements Erikoiskortti {
public Ohituskortti(String vari) {
......
package domain.kortit;
public class Suunnanvaihtokortti extends Kortti {
public class Suunnanvaihtokortti extends Kortti implements Erikoiskortti {
public Suunnanvaihtokortti(String vari) {
super(vari);
......
......@@ -26,4 +26,13 @@ public class Nostopakka {
throw new IndexOutOfBoundsException();
}
}
public String toString() {
StringBuilder str = new StringBuilder("");
str.append("Nostopakassa on kortit:\n");
for (Kortti kortti : this.kortit) {
str.append(kortti + "\n");
}
return str.toString();
}
}
......@@ -20,4 +20,13 @@ public class Poistopakka {
public Kortti annaPaallimmainenKortti() {
return this.kortit.get(this.kortit.size()-1);
}
public String toString() {
StringBuilder str = new StringBuilder("");
str.append("Poistopakassa olevat kortit:\n");
for (Kortti kortti : this.kortit) {
str.append(kortti + "\n");
}
return str.toString();
}
}
......@@ -72,4 +72,13 @@ public abstract class Pelaaja {
}
return summa;
}
public String toString() {
StringBuilder str = new StringBuilder("");
str.append("Pelaajan " + this.nimi + " kortit:\n");
for (Kortti kortti : this.kortit) {
str.append(kortti + "\n");
}
return str.toString();
}
}
......@@ -202,7 +202,7 @@ public class Peli {
*/
else if (kortti instanceof NostaKaksikortti) {
if (edellinenKortti != null && !edellinenKortti.annaVari().equals(kortti.annaVari())
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.");
......@@ -219,7 +219,7 @@ public class Peli {
*/
else if (kortti instanceof Ohituskortti) {
if (edellinenKortti != null && !edellinenKortti.annaVari().equals(kortti.annaVari())
if (!edellinenKortti.annaVari().equals(kortti.annaVari())
|| edellinenKortti instanceof Ohituskortti) {
System.out.println("Ohituskortin saa lyd samanvrisen kortin plle tai"
+ " toisen ohituskortin plle.");
......@@ -236,7 +236,7 @@ public class Peli {
*/
else if (kortti instanceof Suunnanvaihtokortti) {
if (edellinenKortti != null && !edellinenKortti.annaVari().equals(kortti.annaVari())
if (!edellinenKortti.annaVari().equals(kortti.annaVari())
|| edellinenKortti instanceof Suunnanvaihtokortti) {
System.out.println("Suunnanvaihtokortin saa lyd samanvrisen kortin plle tai"
+ " toisen suunnanvaihtokortin plle.");
......@@ -246,8 +246,8 @@ public class Peli {
}
else if (kortti instanceof Peruskortti) {
if (edellinenKortti != null && edellinenKortti.annaVari() != null) {
if (!kortti.annaVari().equals(edellinenKortti.annaVari())
if (edellinenKortti.annaVari() != null) {
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
......@@ -258,10 +258,10 @@ public class Peli {
if(!kortti.annaVari().equals(edellinenKortti.annaVari())) {
System.out.println("Kortin tulee olla samaa vri tai sama numero.");
return false;
}
} else {
kelvollinenKortti = true;
}
} else {
kelvollinenKortti = true;
}
}
}
this.vari = null;
......@@ -280,6 +280,7 @@ public class Peli {
return false;
}
this.vari = null;
System.out.println(pelaaja.annaNimi() + " pelasi kortin: " + kortti);
return true;
}
......@@ -359,7 +360,7 @@ public class Peli {
*/
else if (kortti instanceof NostaKaksikortti) {
if (edellinenKortti != null && !edellinenKortti.annaVari().equals(kortti.annaVari())
if (!edellinenKortti.annaVari().equals(kortti.annaVari())
|| edellinenKortti instanceof NostaKaksikortti) {
return false;
}
......@@ -375,7 +376,7 @@ public class Peli {
*/
else if (kortti instanceof Ohituskortti) {
if (edellinenKortti != null && !edellinenKortti.annaVari().equals(kortti.annaVari())
if (!edellinenKortti.annaVari().equals(kortti.annaVari())
|| edellinenKortti instanceof Ohituskortti) {
return false;
}
......@@ -391,7 +392,7 @@ public class Peli {
*/
else if (kortti instanceof Suunnanvaihtokortti) {
if (edellinenKortti != null && !edellinenKortti.annaVari().equals(kortti.annaVari())
if (!edellinenKortti.annaVari().equals(kortti.annaVari())
|| edellinenKortti instanceof Suunnanvaihtokortti) {
}
this.suuntaKasvava = !this.suuntaKasvava;
......@@ -400,7 +401,7 @@ public class Peli {
}
else if (kortti instanceof Peruskortti) {
if (edellinenKortti != null && edellinenKortti.annaVari() != null) {
if (edellinenKortti.annaVari() != null) {
if (!kortti.annaVari().equals(edellinenKortti.annaVari())
&& edellinenKortti instanceof Peruskortti) {
if (((Peruskortti) kortti).annaNumero() != ((Peruskortti) edellinenKortti).annaNumero()) {
......
package ui;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Scanner;
import domain.kortit.Erikoiskortti;
import domain.kortit.Kortti;
import domain.korttipakat.Nostopakka;
import domain.korttipakat.Poistopakka;
......@@ -20,7 +27,7 @@ public class Tekstikayttoliittyma {
public void start() {
System.out.println("Tervetuloa pelaamaan Uunoa. Kirjoita \"uusi\" aloittaaksesi uuden pelin,");
System.out.println(" \"lataa\" ladataksesi vanhan pelin, \"ohjeet\" lukeaksesi peliohjeita tai 'lopeta' lopettaaksesi.");
System.out.println(" \"lataa\" ladataksesi vanhan pelin tai 'lopeta' lopettaaksesi.");
System.out.print("> ");
String input = this.lukija.next();
......@@ -29,13 +36,6 @@ public class Tekstikayttoliittyma {
return;
case "uusi":
this.uusiPeli();
break;
case "lataa":
// lataaPeli();
break;
case "ohjeet":
// naytaPeliohjeet();
break;
default:
this.uusiPeli();
}
......@@ -49,11 +49,21 @@ public class Tekstikayttoliittyma {
Pelaaja pelaaja = peli.annaPelaaja(0);
Poistopakka poistopakka = peli.annaPoistopakka();
Nostopakka nostopakka = peli.annaNostopakka();
Kortti ensimmainenKortti = poistopakka.annaPaallimmainenKortti();
peli.pelaaKorttiTietokone(lukija, ensimmainenKortti, null, pelaaja);
try {
PrintWriter tiedosto = new PrintWriter(new File("pelitilanne.txt"));
tiedosto.close();
} catch (Exception e) {
// TODO: handle exception
}
Kortti ensimmainenKortti = poistopakka.annaPaallimmainenKortti();
while (ensimmainenKortti instanceof Erikoiskortti) {
ensimmainenKortti = nostopakka.nostaKortti();
poistopakka.lisaaKortti(ensimmainenKortti);
}
boolean peliKesken = true;
while (peliKesken) {
......@@ -124,9 +134,32 @@ public class Tekstikayttoliittyma {
poistopakka.lisaaKortti(k);
kortit.remove(kortinNumero);
}
}
}
}
//Tulostaminen tiedostoon
try {
File tiedosto = new File("pelitilanne.txt");
OutputStreamWriter kirjoittaja =
new OutputStreamWriter(new FileOutputStream(tiedosto), StandardCharsets.UTF_8);
kirjoittaja.append(peli.annaPelaaja(0).toString());
kirjoittaja.append("\n");
kirjoittaja.append(peli.annaPelaaja(1).toString());
kirjoittaja.append("\n");
kirjoittaja.append(peli.annaPelaaja(2).toString());
kirjoittaja.append("\n");
kirjoittaja.append(peli.annaPelaaja(3).toString());
kirjoittaja.append("\n");
kirjoittaja.append(nostopakka.toString());
kirjoittaja.append("\n");
kirjoittaja.append(poistopakka.toString());
kirjoittaja.close();
} catch (Exception e) {
// TODO: handle exception
}
}
}
}
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