diff --git a/src/logiikka/Peli.java b/src/logiikka/Peli.java
index 0e80f8f33f81563ff82a04f27bea59e09fb1a7c3..22bf0e896010b1df2c918ad0987336c3efa3612a 100644
--- a/src/logiikka/Peli.java
+++ b/src/logiikka/Peli.java
@@ -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 v�rin
+		// Edellinen pelaaja on valinnut v�rin
 		
 		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 v�ri� tai jokerikortti tai Nosta 4 -jokerikortti.
-		// Nosta 4 -jokerikortin voi k�ytt�� vain jos pelaajalla ei ole kyseist� v�ri�.
+		//niin kortin pit�� olla annettua v�ri� tai jokerikortti tai Nosta 4 -jokerikortti.
+		// Nosta 4 -jokerikortin voi k�ytt�� vain jos pelaajalla ei ole kyseist� v�ri�.
 		
 		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 v�rilt��n " 
+				System.out.println("Sinun tulee laittaa kortti, joka on v�rilt��n " 
 						+ this.vari + " tai jokerikortti tai Nosta 4- jokerikortti "
-								+ "(vain jos k�dess� ei ole kyseist� v�ri�)");
+								+ "(vain jos k�dess� ei ole kyseist� v�ri�)");
 				return false;
 			}
 			if (kortti instanceof Nosta4Jokerikortti) {
@@ -147,30 +147,32 @@ public class Peli {
 					}
 				} 
 				if (pelaajallaSopivanVarinenKortti) {
-					System.out.println("Et voi k�ytt�� Nosta 4 -korttia, jos sinulla on sopivan v�rinen kortti.");
+					System.out.println("Et voi k�ytt�� Nosta 4 -korttia, jos sinulla on sopivan v�rinen kortti.");
 					return false;
 				}
 			}
 		}
 		/*
-		 * Jokeri � Kortin ly�nyt pelaaja saa valita seuraavaksi pelattavan v�rin. 
-		 * Kortin saa ly�d� milloin tahansa paitsi silloin, kun sen ly�j� joutuu juuri 
+		 * Jokeri � Kortin ly�nyt pelaaja saa valita seuraavaksi pelattavan v�rin. 
+		 * 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 v�ri (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 ly�neest� pelaajasta seuraava menett�� vuoronsa 
-		 * ja nostaa pakasta nelj� korttia. Lis�ksi kortin ly�nyt pelaaja saa valita 
-		 * seuraavaksi pelattavan v�rin. Pelaaja ei saa kuitenaan ly�d� nosta 4-jokeri 
-		 * korttia silloin, kun h�nell� on k�dess��n my�s samanv�rinen kortti kuin 
-		 * poistopakan p��llimm�inen kortti on. Muulloin kortin voi ly�d� koska vain.
+		 * Nosta 4 -jokeri � Kortin ly�neest� pelaajasta seuraava menett�� vuoronsa 
+		 * ja nostaa pakasta nelj� korttia. Lis�ksi kortin ly�nyt pelaaja saa valita 
+		 * seuraavaksi pelattavan v�rin. Pelaaja ei saa kuitenaan ly�d� nosta 4-jokeri 
+		 * korttia silloin, kun h�nell� on k�dess��n my�s samanv�rinen kortti kuin 
+		 * poistopakan p��llimm�inen 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 k�ytt�� Nosta 4 -korttia, jos sinulla on sopivan v�rinen kortti.");
+				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);
-			System.out.println("Valitse v�ri (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 ly�neen pelaajan j�lkeen seuraavana vuorossa oleva 
-		 * menett�� vuoronsa ja joutuu nostamaan pakasta kaksi korttia k�teen. Nosta 
-		 * kaksi -kortin saa ly�d� joko samanv�risen kortin tai my�s eriv�risen Nosta 
-		 * kaksi -kortin p��lle.
+		 * Nosta kaksi � Kortin ly�neen pelaajan j�lkeen seuraavana vuorossa oleva 
+		 * menett�� vuoronsa ja joutuu nostamaan pakasta kaksi korttia k�teen. Nosta 
+		 * kaksi -kortin saa ly�d� joko samanv�risen kortin tai my�s eriv�risen 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 ly�d� samanv�risen kortin p��lle tai"
-						+ " toisen nosta 2 -kortin p��lle.");
+				System.out.println("Nosta 2 -kortin voi ly�d� samanv�risen 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 ly�neest� pelaajasta seuraava menett�� vuoronsa. Kortin
-		 * saa ly�d� joko samanv�risen kortin tai eriv�risen ohituskortin p��lle.
+		 * Ohituskortti � Kortin ly�neest� pelaajasta seuraava menett�� vuoronsa. Kortin
+		 * saa ly�d� joko samanv�risen kortin tai eriv�risen ohituskortin p��lle.
 		 */
 		
 		else if (kortti instanceof Ohituskortti) {
 			if (!edellinenKortti.annaVari().equals(kortti.annaVari())
 					|| edellinenKortti instanceof Ohituskortti) {
-				System.out.println("Ohituskortin saa ly�d� samanv�risen kortin p��lle tai"
-						+ " toisen ohituskortin p��lle.");
+				System.out.println("Ohituskortin saa ly�d� samanv�risen kortin p��lle tai"
+						+ " toisen ohituskortin p��lle.");
 				return false;
 			}
 			this.paivitaVuoronumero();
@@ -230,18 +234,20 @@ public class Peli {
 		} 
 		
 		/*
-		 * Suunnanvaihtokortti � Kortti vaihtaa pelaajien vuoroj�rjestyksen suunnan. 
-		 * Kortin saa ly�d� joko samanv�risen kortin tai eriv�risen Suunnanvaihtokortin 
-		 * p��lle. 
+		 * Suunnanvaihtokortti � Kortti vaihtaa pelaajien vuoroj�rjestyksen suunnan. 
+		 * Kortin saa ly�d� joko samanv�risen kortin tai eriv�risen Suunnanvaihtokortin 
+		 * p��lle. 
 		 */
 		
 		else if (kortti instanceof Suunnanvaihtokortti) {
 			if (!edellinenKortti.annaVari().equals(kortti.annaVari())
 					|| edellinenKortti instanceof Suunnanvaihtokortti) {
-				System.out.println("Suunnanvaihtokortin saa ly�d� samanv�risen kortin p��lle tai"
-						+ " toisen suunnanvaihtokortin p��lle.");
+				System.out.println("Suunnanvaihtokortin saa ly�d� samanv�risen 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 eriv�rinen ja erinumeroinen kuin edellinen kortti
-						System.out.println("Kortin tulee olla samaa v�ri� tai sama numero.");
+						//Kortti on peruskortti, mutta eriv�rinen ja erinumeroinen kuin edellinen kortti
+						System.out.println("Kortin tulee olla samaa v�ri� tai sama numero.");
 						return false;		
 					}
 				}
 				if(!kortti.annaVari().equals(edellinenKortti.annaVari())) {
-					System.out.println("Kortin tulee olla samaa v�ri� tai sama numero.");
+					System.out.println("Kortin tulee olla samaa v�ri� tai sama numero.");
 					return false;					
 				} else {
 					kelvollinenKortti = true;				
@@ -272,7 +278,7 @@ public class Peli {
 		
 		boolean kelvollinenKortti = false;
 		
-		// Edellinen pelaaja on valinnut v�rin
+		// Edellinen pelaaja on valinnut v�rin
 		
 		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 v�ri� tai jokerikortti tai Nosta 4 -jokerikortti.
-		// Nosta 4 -jokerikortin voi k�ytt�� vain jos pelaajalla ei ole kyseist� v�ri�.
+		//niin kortin pit�� olla annettua v�ri� tai jokerikortti tai Nosta 4 -jokerikortti.
+		// Nosta 4 -jokerikortin voi k�ytt�� vain jos pelaajalla ei ole kyseist� v�ri�.
 		
 		if (edellinenKortti instanceof Jokerikortti || edellinenKortti instanceof Nosta4Jokerikortti) {
 			if (kortti.annaVari() != null 
@@ -309,12 +315,12 @@ public class Peli {
 			}
 		}
 		/*
-		 * Jokeri � Kortin ly�nyt pelaaja saa valita seuraavaksi pelattavan v�rin. 
-		 * Kortin saa ly�d� milloin tahansa paitsi silloin, kun sen ly�j� joutuu juuri 
+		 * Jokeri � Kortin ly�nyt pelaaja saa valita seuraavaksi pelattavan v�rin. 
+		 * 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 ly�neest� pelaajasta seuraava menett�� vuoronsa 
-		 * ja nostaa pakasta nelj� korttia. Lis�ksi kortin ly�nyt pelaaja saa valita 
-		 * seuraavaksi pelattavan v�rin. Pelaaja ei saa kuitenaan ly�d� nosta 4-jokeri 
-		 * korttia silloin, kun h�nell� on k�dess��n my�s samanv�rinen kortti kuin 
-		 * poistopakan p��llimm�inen kortti on. Muulloin kortin voi ly�d� koska vain.
+		 * Nosta 4 -jokeri � Kortin ly�neest� pelaajasta seuraava menett�� vuoronsa 
+		 * ja nostaa pakasta nelj� korttia. Lis�ksi kortin ly�nyt pelaaja saa valita 
+		 * seuraavaksi pelattavan v�rin. Pelaaja ei saa kuitenaan ly�d� nosta 4-jokeri 
+		 * korttia silloin, kun h�nell� on k�dess��n my�s samanv�rinen kortti kuin 
+		 * poistopakan p��llimm�inen 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 k�ytt�� Nosta 4 -korttia, jos sinulla on sopivan v�rinen kortti.");
+				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);
-			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 ly�neen pelaajan j�lkeen seuraavana vuorossa oleva 
-		 * menett�� vuoronsa ja joutuu nostamaan pakasta kaksi korttia k�teen. Nosta 
-		 * kaksi -kortin saa ly�d� joko samanv�risen kortin tai my�s eriv�risen Nosta 
-		 * kaksi -kortin p��lle.
+		 * Nosta kaksi � Kortin ly�neen pelaajan j�lkeen seuraavana vuorossa oleva 
+		 * menett�� vuoronsa ja joutuu nostamaan pakasta kaksi korttia k�teen. Nosta 
+		 * kaksi -kortin saa ly�d� joko samanv�risen kortin tai my�s eriv�risen Nosta 
+		 * kaksi -kortin p��lle.
 		 */
 		
 		else if (kortti instanceof NostaKaksikortti) {
@@ -371,8 +377,8 @@ public class Peli {
 		} 
 		
 		/*
-		 * Ohituskortti � Kortin ly�neest� pelaajasta seuraava menett�� vuoronsa. Kortin
-		 * saa ly�d� joko samanv�risen kortin tai eriv�risen ohituskortin p��lle.
+		 * Ohituskortti � Kortin ly�neest� pelaajasta seuraava menett�� vuoronsa. Kortin
+		 * saa ly�d� joko samanv�risen kortin tai eriv�risen ohituskortin p��lle.
 		 */
 		
 		else if (kortti instanceof Ohituskortti) {
@@ -386,9 +392,9 @@ public class Peli {
 		} 
 		
 		/*
-		 * Suunnanvaihtokortti � Kortti vaihtaa pelaajien vuoroj�rjestyksen suunnan. 
-		 * Kortin saa ly�d� joko samanv�risen kortin tai eriv�risen Suunnanvaihtokortin 
-		 * p��lle. 
+		 * Suunnanvaihtokortti � Kortti vaihtaa pelaajien vuoroj�rjestyksen suunnan. 
+		 * Kortin saa ly�d� joko samanv�risen kortin tai eriv�risen 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 eriv�rinen ja erinumeroinen kuin edellinen kortti
+						//Kortti on peruskortti, mutta eriv�rinen ja erinumeroinen kuin edellinen kortti
 						return false;		
 					}
 				}
diff --git a/src/ui/Tekstikayttoliittyma.java b/src/ui/Tekstikayttoliittyma.java
index 858b673b4d7792cd96115aa52bc0c5a791566318..554bd798116bee12d77d367f22e257676f7b18e9 100644
--- a/src/ui/Tekstikayttoliittyma.java
+++ b/src/ui/Tekstikayttoliittyma.java
@@ -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 v�rilt��n " 
+					System.out.println("Laitettava kortti, joka on v�rilt��n " 
 				+ peli.annaVari() );
 				} else {
-					System.out.print("Pakan p��limm�inen kortti on: ");
+					System.out.print("Pakan p��limm�inen kortti on: ");
 					System.out.println(poistopakka.annaPaallimmainenKortti());
 				}
 				peli.paivitaVuoronumero();
 				
 				boolean korttiPelattu = false;
 				while (korttiPelattu == false) {
-					System.out.println("Sinulla on k�dess�si kortit:");
+					System.out.println("Sinulla on k�dess�si 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++;