Привет, так что я пытаюсь сделать игру Блэк Джек, но она не работает.Я считаю, что логика верна, так что, возможно, это синтаксическая ошибка?Есть два игрока Алиса и Боб.Игроки играют до 17 лет. Есть 5 возможных результатов, которые выигрывает Алиса.Боб выигрывает.Алиса перебивает Боба.Боб перебивает Алису, побеждает.Никто не побеждает.
public class TweentyOne {
public static void main(String[] args) {
Player p1 = new Player("Bob");
Player p2 = new Player("Alice");
findWinner(p1, p2);
}
public static void findWinner(Player p1, Player p2){
if(p1.showHand() > p2.showHand() && p1.showHand() <= 21){
System.out.println(p1.getName() + " wins");
System.out.println(p1.showHand());
System.out.println(p2.showHand());
}
else if(p1.showHand() <= 21 && p2.showHand() > 21){
System.out.println(p2.getName() + " busts. " + p1.getName() + " wins");
System.out.println(p1.showHand());
System.out.println(p2.showHand());
}
else if(p2.showHand() > p1.showHand() && p2.showHand() <= 21){
System.out.println(p2.getName() + " wins");
System.out.println(p1.showHand());
System.out.println(p2.showHand());
}
else if(p2.showHand() <= 21 && p1.showHand() > 21){
System.out.println(p1.getName() + " busts. " + p2.getName() + " wins");
System.out.println(p1.showHand());
System.out.println(p2.showHand());
}
else{
System.out.println("No one wins");
System.out.println(p1.showHand());
System.out.println(p2.showHand());
}
}
}
class Player{
private String name;
private int hand;
public Player(String name){
this.name = name;
}
public String getName(){
return name;
}
public int showHand(){
int someHand = 0;
while(someHand < 17)
{
hand = (int) (Math.random() * 13 + 1);
someHand += hand;
}
return someHand;
}
}
Операторы печати как раз для меня, чтобы проверить, что они на самом деле рисуют каждый раз.