Auf Thema antworten

Ich bin mit der Anfängertutorialreihe durch und beschäftige mich inzwischen wieder mit meinem ersten Code.


Gestern Abend saß ich dann mal völlig verwirrt und planlos vor dem Rechner. Heute will ich daher das Problem wieder ganz einfach angehen, also brechen wir das alles mal ganz simpel herunter:


Ich erstelle als erstes eine Klasse Card. Eine Karte besteht aus Suit und Rank, also füge ich der Klasse diese als Array hinzu. Enums lasse ich nochmal außen vor. Ich schätze, enums eignen sich viel besser für mein Vorhaben wenn [USER=52240]@Jardcore[/USER] mir das vorschlägt. Ich bleibe aber doch erstmal zwecks Lerneffekt bei Arrays.


In der Klasse Cards gibt es den Constructor Cards, der zwei int Parameter rankIndex & suitIndex benötigt, damit er eine Card zusammen setzen kann. Welche Karte man dann genau als Instanz erzeugen möchte, kann man mit den zu übergebenen Parametern dann immer selbst bestimmen.



[code=Java]public class Card {


    // Arrays für die Eigenschaften einer Karte

    String[] rank = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "T", "J", "Q", "K"};

    String[] suit = {"c", "s", "d", "h"};

    String card;


    // Konstruktor für Karte

    public Card(int rankIndex, int suitIndex){

    card = rank[rankIndex] + suit[suitIndex];


    }

}[/code]


Ich glaube, die Lösung zur Erstellung einer Karte ist jetzt OOer als vorher.


Jetzt widme ich mich der Klasse Deck. Diese Klasse ist nach meiner Überlegung nur ein Array bestehend aus 52 Card Objekten. Ein frisch gekauftes Deck ist sogar sortiert. Meiner Meinung nach kommt daher das Karten Mischen weder in die Klasse Cards noch Deck. Ich denke man verpackt das am besten als Dealer-method, aber eins nach dem anderen.


Ich möchte zunächst einfach nur ein Array aus 52 Cards generieren:


[code=Java]public class Deck{


    Card newDeck[] = new Card[52];


}[/code]


Das habe ich dann mal testweise ausgeben lassen. Da ich ja gar keine Parameter übergebe, bekomme ich null ausgegeben. Wie kann ich bei der Erstellung des arrays Parameter übergeben? Geht das überhaupt?


Der Plan ist, ein 52er Kartendeck sortiert zu erzeugen. Die Hoffnung besteht darin, das sortierte Deck-Array mischen zu können und dann Karte für Karte auszuteilen. In Java: eine methode nextCard zu erzeugen, den Index des gemischten Arrays als Karte austeilen, dann den index um Eins erhöhen.


So würde ich mir die Liste ausgeteilter Karten sparen können.



Oben