任何人????嗨,在我的二十一点游戏中,我通过首先要求玩家加倍下注来实现拆分,如果他拒绝,那么我允许他拆分:
while(true){
for(int j=0;j<2;j++){
if(players[i].splits[j].getStatus() != true){ // splits is an array of two players hand 1 and hand 2
System.out.print("Choose your next move, " + players[i].name + ", Hand "+ players[i].splits[j].number + ": \n" + "Points: " + players[i].splits[j].points + "\n" + "Hint: ");
getHints(players[i].splits[j]);
System.out.print( "\n1)Hit\n2)Stand\n");
System.out.println();
x2 = IO.readInt();
if (x2==2){
players[i].splits[j].standed = true; // if player stand...
break;
}else if(x2 == 1){//else deal a card
Card c = dealCard(deck);
updatePoints(players[i].splits[j], c);
addCard(players[i].splits[j], c);
System.out.println(players[i].name + ", Hand "+ players[i].splits[j].number + " was dealt: " + c.showCardValue() + " of " + c.showCardSuit() );
boolean isBusted = testPoints(players[i].splits, j); // test for busted
if (isBusted == true){
System.out.println("BUSTED!!!!!!!!!");
players[i].splits[j].busted = true;
break;
}
}
}
System.out.println(players[i].name + ", Hand " + players[i].splits[j].number + " Points: "+ players[i].splits[j].points);
// printStats(players[i].splits[j]);
}
//check to end loop if split is busted to stands...
}
当我打印球员统计数据时,我得到的是内存位置而不是文本,任何人都可以帮忙。谢谢,如果您需要更多信息,请告诉我,以便我更新。
=======
输出: 3 是玩家姓名... 10 是分牌发牌...
Choose your next move, 3, Hand 1:
Points: 10
Hint: You have a 0% chance of busting
1)Hit
2)Stand
1
3, Hand 1 was dealt: Ten of Spades
3, Hand 1 Points: 20
Choose your next move, 3, Hand 2:
Points: 10
Hint: You have a 0% chance of busting
1)Hit
2)Stand
1
3, Hand 2 was dealt: Five of Diamonds
3, Hand 2 Points: 15
Choose your next move, 3, Hand 1:
Points: 20
Hint: You have a 92% chance of busting
1)Hit
2)Stand
2
3, Hand 1 Points: 20
Choose your next move, 3, Hand 2:
Points: 15
Hint: You have a 58% chance of busting
1)Hit
2)Stand
2
3, Hand 1 : Points splitPlayer@1a758cb
Previous Cards dealt:
Ten of Spades
Five of Diamonds
splitPlayer 类:
public class splitPlayer {
public int points = 0;
boolean busted = false;
boolean standed = false;
int number = 0;
int ace = 0;
String name = "";
Card[] cardsDealt = new Card[12];
public splitPlayer(int number, int points){
this.number = number;
this.name = "Hand "+ number;
this.points = points;
}
public boolean getStatus(){
if(busted == true || standed == true ){
return true;
}else{
return false;
}
}
public void setPoints(int points){
this.points += points;
}
}
=========
更新点:
public static void updatePoints(splitPlayer player, Card c){
int point = c.getValue();
if (point == 1){
player.ace += 1;
player.setPoints(11);
}else{
player.setPoints(point);
}
if (player.points > 21 && player.ace > 0) {
player.points -= 10;
player.ace --;
}
return;
}