[英]while loop if statements
我几乎已经把这个东西工作了,我只是无法设法得到:
if((pscore <= card1 +card2))
语句循环播放,直到玩家黏住或破产。
从我所看到的,它应该可以工作...但是我缺少一个细节,我不知道要做什么。
import java.util.Random;
import java.util.Scanner;
class Blackjack
{
public static void main(String[] args)
{
Random r = new Random();
String name;
Scanner scannerIn = new Scanner(System.in);
boolean yourTurn = true;
boolean dealersTurn =true;
int card1 = 1 + r.nextInt(11);
int card2 = 1 + r.nextInt(11);
int dcard1 = 1 + r.nextInt(11);
int dcard2 = 1 + r.nextInt(11);
int pscore = card1 +card2;
int dscore = dcard1 +dcard2;
System.out.println("Welcome to Blackjack ! " );
System.out.println("\nScore as close to 21 without going over to win ");
System.out.println("\nWhat is your name?");
name = scannerIn.nextLine();
System.out.println("\nHello " + name);
System.out.println("\nLet's play some BlackJack!");
System.out.println("\nThe dealer shows:\t" +dcard1 );
System.out.println("\n\nYour first card is:\t " +card1 );
System.out.println("\nYour second card is:\t" +card2 );
System.out.println("\nGiving you a grand total of: " +pscore );
while (yourTurn)
{
if ((pscore <= +card1 +card2))
System.out.println("\nWould you like to (H)it or (S)tick?");
String a = scannerIn.nextLine();
if(a.toLowerCase().equals("h"))
{
int newCard = 1 + r.nextInt(11);
System.out.println("\nYour next card is " +newCard );
pscore = pscore +newCard;
System.out.println("\nGiving you a new total of "+pscore);
if ((pscore >=22))
{
System.out.println("\nYou Busted! \nSorry! you lose");
yourTurn = false;break;
}
}
else if(a.toLowerCase().equals("s"))
{
yourTurn = false;
System.out.println("\nYou stick at " +pscore );
System.out.println("\nNow it's the dealers turn\n Dealer must draw until 17");
}
else
{
System.out.println("\nPlease press H or S");
}
while (dealersTurn)
{
dealersTurn = true;
{ if ((dscore <= dcard1+dcard2))
System.out.println("\nThe dealers cards were:\n " +dcard1);
System.out.println("\nand\n" +dcard2);
System.out.println("\nGiving the Dealer a grand total of: " +dscore );
}
{
int newCard1 = 1 + r.nextInt(11);
if ((dscore<=17))
System.out.println("\nThe dealer draws a: " +newCard1 );
dscore = dscore +newCard1;
System.out.println("\nGiving the dealer a grand total of: "+dscore);
}
if ((dscore >=22))
{
System.out.println("\nDealer Bust!");
System.out.println("\nThe House loses");
System.out.println("\nYou Win");
dealersTurn = false;break;
}
else if ((dscore >=pscore))
{
System.out.println("\nDealer has " +dscore);
System.out.println("\nThe dealer beat you!");
System.out.println("\nThe House Wins!");
dealersTurn = false;break;
}
}
}
scannerIn.close();
}
}
另外,我还有很多人要感谢,帮助我做到了这一点。 如果有人用+1按钮,我找不到它。
感谢文森特的帮助。
直到while(dealerTurn)循环之后,您的while(yourTurn)循环才合上括号。 这导致经销商转而成为yourTurn循环的一部分。 在发牌人上方添加一个闭合括号,如下所示旋转while循环:
}
while (dealersTurn)
{
然后从“ scannerIn.close()”上方的底部移除旧的右括号。
但是,你的逻辑的目的是什么
if ((pscore <= +card1 +card2))
您的分数等于=卡牌1 +卡牌2,然后如果您抽出另一张牌,您的得分将大于那两张牌,因为您现在有3张牌。 这就是为什么它也没有输入您的if语句的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.