Kartenspiel programmieren

Status
Nicht offen für weitere Antworten.

Joy

Mitglied
hallo erstmal 🙂

ich hab mich gewagt nach einem guten halben Jahr Schul-Java an ein für mich größeres Projekt zu wagen. Habe schon angefangen ein paar Dinge (wie die Spieler als Objekte) zu programmieren, mein Problem allerdings ist im Moment, dass ich keine Ahnung habe, wie ich Karten erzeugen kann, also, dass ich eine Karte habe die in einem Textfenster gezeigt wird. Bei Google habe ich auch nicht wirklich etwas gefunden, was mir weitergeholfen hat!

Zweites Problem:
Java:
Frame f = new Frame( "Mau Mau" );
		f.add(new Label("Geben Sie die Spieleranzahl ein!"), BorderLayout.NORTH);
		objSpielerzahl.setSpielerzahl(Integer.parseInt(objTE.readLine()));
		f.setSize(1000,2000);
		f.setVisible(true );
		System.exit(0);
ich weiß nicht, warum kein Fenster aufgeht.. Wir haben das Einlesen von Daten in der Schule zwar über Konsole aber ansonsten immer mit dem Code
Java:
objSpielerzahl.setSpielerzahl(Integer.parseInt(objTE.readLine()));
gemacht.

Kann mir vielleicht jemand einen Tipp geben, woran es liegen könnte?

Liebe Grüße
 
Zuletzt bearbeitet:
>wie ich Karten erzeugen kann

enjoy:
Java:
package card;

public class Card implements Comparable<Card>{
	
	private final Suit suit;
	private final Rank rank;
	
	
	public enum Suit{
		HEART, DIAMOND, CLUB, SPADE;
	}
	public enum Rank{
		TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING, ACE;
		
		public int rank(){
			return this.ordinal() + 2;
		}
	}
	
	
	public Card(Rank rank, Suit suit){
		this.rank = rank;
		this.suit = suit;
	}

	public int compareTo(Card card){
		return this.rank.compareTo(card.rank);
	}

	public Rank getRank() {
		return rank;
	}

	public Suit getSuit() {
		return suit;
	}
	
	public String toString(){
		return "" + rank + " "+ suit;
	}
	
	
	public static void main(String [] args){
		Card c = new Card(Rank.TWO, Suit.HEART);
		Card c2 = new Card(Rank.TEN,Suit.HEART);
		
		System.out.println(c);
		System.out.println(c.rank.compareTo(c2.rank));
	}
}
Java:
package card;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Deck{
	
	private final int DECK_SIZE = 52;
	
	private final List<Card> cards;
	
	
	public Deck(){
		cards = new ArrayList<Card>(DECK_SIZE);
		
		for(Card.Suit suit : Card.Suit.values()){
			for(Card.Rank rank : Card.Rank.values()){
				cards.add(new Card(rank, suit));
			}
		}
	}
	
	public void shuffleDeck(){
		Collections.shuffle(cards);
	}
	
	public Card deal(){
		return cards.remove(0);
	}
	
	public void burn(){
		cards.remove(0);
	}
	
	public static void main(String [] args){
		Deck d = new Deck();
		d.shuffleDeck();
		
		System.out.println(d.deal());
	}
}

EDIT:
Wobei man den Rank eigentlich nicht mit ordinal() + 2 machen sollte, sondern eine Richtige enum mit einem int initialisiert.
 
danke für eure Hilfe - habe allerdings nochmal ein Problem 😉
und zwar:
@ Der Müde Joe: warum kommt in der Kartenklasse immer bei der Ausgabe "-8"?

Liebe Grüße
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben