どうか、助けていただければ幸いです。これは単純な問題であると確信しています。
私は大学生で、Javaを初めて使用し、ラボコースの作業を試みています。
要件は非常に単純なポーカープログラムであり、次のことを行うだけです。指定された順序で52枚のカードのデッキを生成する(すでに機能している)プレーヤーの数とプレーヤー名を読み取る(すでに機能している)各(2)プレーヤーに5枚のカードを配るデッキの上からディーラー(機能しているかどうかわからない)次に、次の出力を介してカードを表示します。
プレイヤー数:2 プレイヤー1:ホーマー プレイヤー2:マージ
ホーマーはAH4H7H10HKHマージは2H5H8HJHADディーラーは3H6H9HQH2Dを持っています
いくつかのクラスがあります-ディーラー、プレーヤー、デッキ、ハンド、カード
今私が得ている出力は次のとおりです。
プレイヤー数:2 プレイヤー1:ホーマー プレイヤー2:マージ
ホーマーはKHKHKHKHKHマージはADADADADADディーラーは2D2D2D2D2Dを持っています
Dealerクラスに関連するコード:
public class Dealer {
public static void main(String[] args)
{ new Dealer(); }
private Deck deck = new Deck();
private Hand hand = new Hand();
public ArrayList<Player> players = new ArrayList<Player>();
....
private void deal()
{
for(int i = 0; i < 5; i ++) {
for (Player player : players)
player.add(next());
add(next());
}
} // deal five cards to each player and the dealer
// in the stated order
private void add(Card card)
{ hand.add(card); }
private Card next()
{ return deck.next(); }
private void show()
{
for (Player player : players)
System.out.println(player.getName() + " has " + player.showHand());
System.out.println("Dealer has " + hand.toString());
}
}
Playerクラスの関連コードは次のとおりです。
public class Player{
private String name;
private int number;
private Hand hand = new Hand();
....
public void add(Card card)
{ hand.add(card); }
public String showHand()
{
String show = "" + hand.toString();
return show;
}
Handクラスの関連コードは次のとおりです。
public class Hand {
private Card[] cards = new Card[5];
....
public void add(Card card)
{
for (int i = 0; i < cards.length; i++)
cards[i] = new Card(card.valueReturn(), card.suitReturn());
}
public String toString()
{
String display = "";
display = cards[0].toString() + cards[1].toString() + cards[2].toString() + cards[3].toString() + cards[4].toString();
return display;
}
}
Deckクラスの関連コードは次のとおりです。
public class Deck{
private Card[] cards = new Card[52];
private int i = 0, deck = 0;
private char[] suits = {'H', 'D', 'C', 'S'};
public Deck()
{
for (int suit = 0; suit < 4; suit++){
for(int value = 1; value <= 13; value++){
cards[deck++] = new Card(value, suits[suit]);
}
}
} // create the cards in the stated order and add them to the deck
// This function works by side effect
// It uses the standard "next" pattern you will see next week
public Card next()
{ return cards[i++]; }
}
そして最後に、 Cardクラスの関連コードを示します。
public class Card{
private int cardValue;
private char suit;
public Card(int cardValue, char suit)
{
this.cardValue = cardValue;
this.suit = suit;
}
public String valueDisplay()
{
switch (cardValue)
{
case 1: return "A";
case 11: return "J";
case 12: return "Q";
case 13: return "K";
default: return "" + cardValue;
}
}
public int valueReturn()
{
this.cardValue = cardValue;
return cardValue;
}
public char suitReturn()
{
this.suit = suit;
return suit;
}
public String toString()
{
return valueDisplay() + suit + " ";
}
}