# UNO Programmieren



## Java-new (3. Dez 2013)

Hallo zusammen,

ich versuche für die Schule das Spiel UNO zu programmieren. 
Bisher habe ich eine Einteilung in die Klassen: Simulation, Spieler, Karten, Stapel und Spielfeld.

Probleme bereitet mir jetzt die Zuordnung der Karten aus dem Stapel an die einzelnen Spieler.
Jeder Karte hat über den Konstruktor bereits eine eigene Nummer erhalten.

Brauche ich dafür eine Array-List und wie kann ich die Karten zufällig verteilen und danach aus dem Stapel entfernen, sodass sie nicht zwei mal verwendet werden? 
Es gibt zwei Spieler. Jeder Spieler soll 7 Karten erhalten, dann wird noch eine Karte aufgedeckt, auf die Spieler 1 seine erste Karte ablegen kann.

Wäre wirklich sehr dankbar für jede Hilfe


----------



## HarleyDavidson (3. Dez 2013)

Ich würde den Ablauf zunächst mit einem Diagramm darstellen, dann weißt du, welche verschiedenen Spielsituationen vorkommen.

Dann kannst du dir überlegen, welche Klassen du benötigst und wie diese zueinander in Beziehung stehen.

Nächster Schritt wäre, jede Aufgabe zu implementieren. Diese sind u.a.


Spiel, Spielkarten, Spieler erstellen
Kartensatz mischen
Jedem Spieler Karten austeilen
Ist die Karte, die der Spieler legen will, erlaubt?
 usw.

Willst du das Spiel auf der Konsole spielen oder eine GUI erstellen?


----------



## BuddaKaeks (3. Dez 2013)

ArrayList mischen:

Collections.shuffle(meineListe);


----------



## Java-new (5. Dez 2013)

import java.util.Random;
import java.util.Scanner;


public class Simulation {

	public static void main(String[] args) {


//			final static int MAX_KARTEN = 108;
	//		final static int MAX_SPIELER = 2;
//			final static int MAX_STAPEL = 4;
//			

			int a; //Spielernummer 1 oder 2


			Scanner sc = new Scanner(System.in);
			for (int i = 1; i <= 2

			{
				for (a=0; a <2
				{
				System.out.println("Geben Sie Ihren Namen ein: ");
				String Namensanzeige = sc.next();
				a++;
				i++;
				System.out.println("Spieler " + a + " heißt: " + Namensanzeige);
				}

			sc.close();

			System.out.println("Das Spiel beginnt. Jeder Spieler bekommt 7 Karten. Spieler 1 startet.");
			System.out.println("Spieler 1 bekommt folgende Karten: " );

			}
			Spieler spieler1 = new Spieler();
			Spieler spieler2 = new Spieler();
			Karten karten = new Karten();
			Karten.Kartendatenbank();

			System.out.println("Spieler 2 bekommt folgende Karten: ");

			}


	}
______________________________________________________________________________-
______________________________________________________________________________

public class Spieler {
	int Spieleranzahl = 2;
	int Kartenanzahl;


	{
	String [] Spielerhand1 = new String [7];
	String [] Spielerhand2 = new String [7];




	}
}


----------------------------------------------------------------------------
----------------------------------------------------------------------------

public class Stapel {

	public static void stapel() {
		String [] stapel = new String [4];

		stapel [0] = "Kartenstock" ;
		stapel [1] = "Ablegestapel";
		stapel [2] = "Spielhand 1";
		stapel [3] = "Spielerhand 2";
	}

}

________________________________________________________________________________
________________________________________________________________________________

import java.util.Random;


public class Karten {

	static String farbe;
	static int zahl;
	static String Kartenbezeichnung;
	static int Kartennummer;

	public static void Kartendatenbank() {
		String [] Kartendatenbank = new String [76]; 

				Kartendatenbank [0] = "Gelb 0"; 
				Kartendatenbank [1] = "Gelb 1";
				Kartendatenbank [2] = "Gelb 1";
				Kartendatenbank [3] = "Gelb 2";
				Kartendatenbank [4] = "Gelb 2";
				Kartendatenbank [5] = "Gelb 3";
				Kartendatenbank [6] = "Gelb 3";
				Kartendatenbank [7] = "Gelb 4";
				Kartendatenbank [8] = "Gelb 4";
				Kartendatenbank [9] = "Gelb 5";
				Kartendatenbank [10] = "Gelb 5";
				Kartendatenbank [11] = "Gelb 6";
				Kartendatenbank [12] = "Gelb 6";
				Kartendatenbank [13] = "Gelb 7";
				Kartendatenbank [14] = "Gelb 7";
				Kartendatenbank [15] = "Gelb 8";
				Kartendatenbank [16] = "Gelb 8";
				Kartendatenbank [17] = "Gelb 9";
				Kartendatenbank [18] = "Gelb 9";

				Kartendatenbank [19] = "Blau 0";
				Kartendatenbank [20] = "Blau 1";
				Kartendatenbank [21] = "Blau 1";
				Kartendatenbank [22] = "Blau 2";
				Kartendatenbank [23] = "Blau 2";
				Kartendatenbank [24] = "Blau 3";
				Kartendatenbank [25] = "Blau 3";
				Kartendatenbank [26] = "Blau 4";
				Kartendatenbank [27] = "Blau 4";
				Kartendatenbank [28] = "Blau 5";
				Kartendatenbank [29] = "Blau 5";
				Kartendatenbank [30] = "Blau 6";
				Kartendatenbank [31] = "Blau 6";
				Kartendatenbank [32] = "Blau 7";
				Kartendatenbank [33] = "Blau 7";
				Kartendatenbank [34] = "Blau 8";
				Kartendatenbank [35] = "Blau 8";
				Kartendatenbank [36] = "Blau 9";
				Kartendatenbank [37] = "Blau 9";

				Kartendatenbank [38] = "Grün 0";
				Kartendatenbank [39] = "Grün 1";
				Kartendatenbank [40] = "Grün 1";
				Kartendatenbank [41] = "Grün 2";
				Kartendatenbank [42] = "Grün 2";
				Kartendatenbank [43] = "Grün 3";
				Kartendatenbank [44] = "Grün 3";
				Kartendatenbank [45] = "Grün 4";
				Kartendatenbank [46] = "Grün 4";
				Kartendatenbank [47] = "Grün 5";
				Kartendatenbank [48] = "Grün 5";
				Kartendatenbank [49] = "Grün 6";
				Kartendatenbank [50] = "Grün 6";
				Kartendatenbank [51] = "Grün 7";
				Kartendatenbank [52] = "Grün 7";
				Kartendatenbank [53] = "Grün 8";
				Kartendatenbank [54] = "Grün 8";
				Kartendatenbank [55] = "Grün 9";
				Kartendatenbank [56] = "Grün 9";

				Kartendatenbank [57] = "Rot 0";
				Kartendatenbank [58] = "Rot 1";
				Kartendatenbank [59] = "Rot 1";
				Kartendatenbank [60] = "Rot 2";
				Kartendatenbank [61] = "Rot 2";
				Kartendatenbank [62] = "Rot 3";
				Kartendatenbank [63] = "Rot 3";
				Kartendatenbank [64] = "Rot 4";
				Kartendatenbank [65] = "Rot 4";
				Kartendatenbank [66] = "Rot 5";
				Kartendatenbank [67] = "Rot 5";
				Kartendatenbank [68] = "Rot 6";
				Kartendatenbank [69] = "Rot 6";
				Kartendatenbank [70] = "Rot 7";
				Kartendatenbank [71] = "Rot 7";
				Kartendatenbank [72] = "Rot 8";
				Kartendatenbank [73] = "Rot 8";
				Kartendatenbank [74] = "Rot 9";
				Kartendatenbank [75] = "Rot 9";

				int a;

				for(a=0; a<7; a++){

				String randomKarten;

				Random random = new Random();
				randomKarten = Kartendatenbank[random.nextInt(76) - 1];

				System.out.println(randomKarten);
				}


				}

				}

Das ist die aktuelle Version meines Spiels. Allerdings weiß ich nicht wie man die 7 zufällig gewählten Karten dem Spieler 1 zuweist und wie man den Vorgang für Spieler 2 wiederholt.

Dafür und auch für weitere hilfreiche Tipps wäre ich sehr dankbar


----------



## BuddaKaeks (5. Dez 2013)

schreib das ganze bitte in java tags und formattiere es

und das befüllen der Kartendatenbak machst du bitte so:


```
String[] karten = new String[76];
String[] farben = {"rot", "grün", "gelb", "blau"};

int index = 0;

for(int i = 0; i < farben.length; i++){
    karten[index++] = farben[i] + " 0";
    for(int j = 1; j < 10; j++){
        karten[index++] = farben[i] + " " + j;
        karten[index++] = farben[i] + " " + j;
    }
}
```


----------

