From b95055a5052ae58218459b25537a5a3aaf9f1850 Mon Sep 17 00:00:00 2001
From: Roope Malinen <rokrmal@utu.fi>
Date: Tue, 10 Mar 2020 03:19:09 +0200
Subject: [PATCH] =?UTF-8?q?Lis=C3=A4tty=20sortteri=20pelaajan=20korteille?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/domain/kortit/Ohituskortti.java |  2 +-
 src/domain/pelaajat/Pelaaja.java    | 46 +++++++++++++++++++++++++++++
 src/logiikka/Peli.java              |  1 -
 src/ui/Tekstikayttoliittyma.java    |  1 +
 4 files changed, 48 insertions(+), 2 deletions(-)

diff --git a/src/domain/kortit/Ohituskortti.java b/src/domain/kortit/Ohituskortti.java
index 8068088..e46f4e5 100644
--- a/src/domain/kortit/Ohituskortti.java
+++ b/src/domain/kortit/Ohituskortti.java
@@ -8,7 +8,7 @@ public class Ohituskortti extends Kortti implements Erikoiskortti {
 	}
 
 	public String toString() {
-		return "[" + this.vari + ", �]";
+		return "[" + this.vari + ", �o�]";
 	}
 	
 }
diff --git a/src/domain/pelaajat/Pelaaja.java b/src/domain/pelaajat/Pelaaja.java
index a6202e8..a5aa44f 100644
--- a/src/domain/pelaajat/Pelaaja.java
+++ b/src/domain/pelaajat/Pelaaja.java
@@ -11,6 +11,7 @@ import domain.kortit.Ohituskortti;
 import domain.kortit.Peruskortti;
 import domain.kortit.Suunnanvaihtokortti;
 import domain.korttipakat.Nostopakka;
+import domain.kortit.Erikoiskortti;
 
 public abstract class Pelaaja {
 	
@@ -26,6 +27,51 @@ public abstract class Pelaaja {
 		this.kortit.add(k);
 	}
 	
+	//J�rjest�� kortit v�ri ja numero/merkki j�rjestykseen, 0-9-erikoiskortit
+	public void jarjestaKortit() {
+		ArrayList<Kortti> cardholder = new ArrayList<Kortti>();
+		ArrayList<Kortti> otherholder = new ArrayList<Kortti>();
+		Object placeholder = new Object();
+		String[] varivalikoima = {"punainen", "sininen", "keltainen", "vihre�"};
+		for(int k = 0; k<4 ;k++) {
+			for(int i = 0; i<kortit.size(); i++) {
+			try {
+				if ((kortit.get(i).annaVari()).equals(varivalikoima[k])) {
+					otherholder.add(kortit.get(i));
+				}				
+			}catch(NullPointerException e) {} //Jokerin null v�riarvo...
+			}
+			for(int j = 0; j<10 ;j++) {
+				for(int x = 0; x<otherholder.size(); x++) {
+					placeholder = otherholder.get(x);
+					if(placeholder instanceof Peruskortti) {
+						if(((Peruskortti) placeholder).annaNumero()==j) {
+							cardholder.add(otherholder.get(x));
+						}
+					}
+				}
+			}
+			for(int x = 0; x<otherholder.size(); x++) {
+				if(otherholder.get(x) instanceof Erikoiskortti) {
+					cardholder.add(otherholder.get(x));
+				}
+			}
+			otherholder.clear();
+		}
+		for(int i = 0; i<kortit.size() ;i++) {
+			if(kortit.get(i) instanceof Jokerikortti) {
+				cardholder.add(kortit.get(i));
+			}
+		}
+		for(int i = 0; i<kortit.size() ;i++) {
+			if(kortit.get(i) instanceof Nosta4Jokerikortti) {
+				cardholder.add(kortit.get(i));
+			}
+		}
+		this.kortit = cardholder;
+	}
+	
+	
 	public void tulostaKortit() {
 		int i = 0;
 		for (Kortti k : this.kortit) {
diff --git a/src/logiikka/Peli.java b/src/logiikka/Peli.java
index 344e4da..bbec621 100644
--- a/src/logiikka/Peli.java
+++ b/src/logiikka/Peli.java
@@ -345,7 +345,6 @@ public class Peli {
 				}
 			} 
 			if (pelaajallaSopivanVarinenKortti) {
-				System.out.println("Et voi k�ytt�� Nosta 4 -korttia, jos sinulla on sopivan v�rinen kortti.");
 				return false;
 			}
 			this.annaPelaaja(seuraavaksiVuorossa).nostaNeljaKorttia(this.nostopakka);
diff --git a/src/ui/Tekstikayttoliittyma.java b/src/ui/Tekstikayttoliittyma.java
index d6da600..eedcb9a 100644
--- a/src/ui/Tekstikayttoliittyma.java
+++ b/src/ui/Tekstikayttoliittyma.java
@@ -88,6 +88,7 @@ public class Tekstikayttoliittyma {
 				boolean korttiPelattu = false;
 				while (korttiPelattu == false) {
 					System.out.println("Sinulla on k�dess�si kortit:");
+					pelaaja.jarjestaKortit();
 					pelaaja.tulostaKortit();
 					
 					System.out.println("Kirjoita kortin numero pelataksesi kortin tai \"nosta\" nostaaksesi kortin.");
-- 
GitLab