我正在用java做一个项目,我正在使用骰子来模拟一个二十一点游戏,但是,我已经找到了一个我写错了代码的区域。如果球员得分高于他,我试图让经销商模拟行动。我的checkWinner()
方法似乎也在错误的时间出现。我不是要求任何人修复它,而是告诉我代码错在哪里。
public class BlackJack {
static PairOfDice cards = new PairOfDice();
static Scanner scan = new Scanner(System. in );
static int playerScore, dealerScore, player, dealer, tempScore;
static boolean newGame;
static String play, hit;
public static void main(String[] args) {
newGame();
dealerRoll();
playerRoll();
// checkWinner();
}
public static void newGame() {
System.out.println("Would you like to play blackjack? y or n?");
play = scan.nextLine();
if (play == "y"); {
newGame = true;
}
if (play != "y") newGame = false;
}
public static void dealerRoll() {
while (newGame) {
cards.rollDice();
}
dealerScore = (cards.rollDice());
System.out.println("Dealer score is: " + dealerScore);
if (dealerScore <= 15 && playerScore > dealerScore) tempScore = cards.rollDice();
System.out.println("The dice roll was: " + tempScore);
dealerScore += tempScore;
System.out.println("Dealer score is: " + dealerScore);
}
public static void playerRoll() {
while (newGame) {
cards.rollDice();
}
playerScore = (cards.rollDice());
System.out.println("You total is " + playerScore);
while (playerScore < 21 || playerScore < dealerScore) {
System.out.println("Would you like to take a hit? y or n?");
hit = scan.nextLine();
if (hit.equals("y")) {
tempScore = cards.rollDice();
System.out.println("The dice roll was: " + tempScore);
playerScore += tempScore;
System.out.println("Your score is now: " + playerScore);
}
else if (hit.equals("n")); {
checkWinner();
}
}
}
public static void checkWinner() {
if (playerScore == 21) System.out.println("You win!");
else if (dealerScore == 21) System.out.println("Sorry, Dealer has won!");
else if (dealerScore > playerScore) System.out.println("Sorry, Dealer has won!");
else if (playerScore > dealer) System.out.println("You win!");
else if (playerScore > 21) System.out.println("Sorry you busted, Dealer has won!");
else if (dealerScore > 21) System.out.println("Dealer has busted, You win!");
}
}
答案 0 :(得分:0)
完成播放器转弯后,您无法检查获胜者。只有在经销商转身后才能做到。
答案 1 :(得分:0)
我重新编写代码并提出了这个问题。任何意见将不胜感激。
import java.util.*;
public class BlackJack
{
static PairOfDice cards = new PairOfDice();
static Scanner scan = new Scanner(System.in);
static int playerScore, dealerScore, player, dealer, tempScore, takeHit, stand;
private static boolean playGame;
static String play= "y", yesPlay;
static char hit;
public static void main(String[] args)
{
newGame();
}
public static void newGame()
{
do
{
playerRoll();
dealerRoll();
stand();
checkWinner();
System.out.println("Would you like to play again? (Y/N)");
} while (scan.next().toLowerCase().charAt(0) == 'y');
}
public static int takeHit()
{
return takeHit = cards.rollDice();
}
public static int stand()
{
return playerScore;
}
public static void dealerRoll()
{
while(playGame)
{
cards.rollDice();
}
dealerScore = (cards.rollDice());
do
{
tempScore = takeHit();
//System.out.println("The dice roll was: " + tempScore);
dealerScore += tempScore;
System.out.println("Dealer score is: " + dealerScore);
}while(dealerScore <= 15 && playerScore > dealerScore);
}
public static void playerRoll()
{
while(playGame)
{
cards.rollDice();
}
playerScore = (cards.rollDice());
System.out.println("Your total is " + playerScore);
System.out.println("Would you like a hit?(Y/N)");
hit = scan.next().toLowerCase().charAt(0);
if(hit == 'y')
do
{
tempScore = takeHit();
//System.out.println("The dice roll was: " + tempScore);
System.out.println("The hit gave you : " + tempScore + " Your total is now: " + (playerScore += tempScore));
System.out.println("Would you like a hit?(Y/N)");
}while(scan.next().toLowerCase().charAt(0) == 'y');
if(hit == 'n')
stand();
}
public static void checkWinner()
{
if (playerScore > 21)
System.out.println("Sorry you busted, Dealer has won!");
else
if (dealerScore > 21)
System.out.println("Dealer has busted, You win!");
else
if (playerScore == 21)
System.out.println("You win!");
else
if (dealerScore == 21)
System.out.println("Sorry, Dealer has won!");
else if (dealerScore > playerScore && dealerScore <= 21)
System.out.println("Sorry, Dealer has won!");
else if (playerScore > dealer && playerScore <= 21)
System.out.println("You win!");
}