2011-12-09 5 views
0

그래서 여기 있습니다. 나는 간단한 자바 프로그래밍을 들여다보기 시작했다. 간단한 레슨과 알레르기를 모두 다룰 때 쉬운 코딩 방법을 알게되었습니다. 내가 가지고있는 문제는 하나의 코드에서 다루는 모든 지식을 사용하는 것입니다. 게임을 만들려는 생각이 들었다. 가능하다면 자바의 실제 레슨에서이 게임을하고 있다고 생각한다. 나는 몇 가지 문제를 겪었지만. 그것은 작동하지만, 플레이어의 핸드가 24 포인트 이상 올랐을 때 멈 춥니 다. 게임에서 플레이어는 흉상을해야하는데 다른 카드를 원한다고 묻는다면? if 문을 사용했지만 dosent가이를 알아 차리는 것처럼 보입니다. 당신의 while 루프에폰툰 게임 코드에서 잃어버린

import java.util.Scanner; 

public class Pontoon{ 

public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 
    int playerScore = 0, computerScore = 0; 
    String newCard = ""; 
    playerScore += dealCard(); 
    computerScore += dealCard(); 
    playerScore += dealCard(); 
    computerScore += dealCard(); 

    System.out.printf("Your score is %d would you like another card ? y/n ", playerScore); 
    newCard = input.nextLine(); 
    if(newCard.equalsIgnoreCase("Y")) { 
     while (newCard.equalsIgnoreCase("Y") && playerScore < 21) { 
      playerScore += dealCard(); 
      System.out.printf("Your score is %d would you like another card ? y/n ", playerScore); 
      newCard = input.nextLine(); 
     } 
    } 
    while(computerScore < 15){ 
     computerScore += dealCard(); 
    } 
    checkWin(playerScore, computerScore); 
} 
public static int dealCard(){ 
    int value = (int) (Math.random() * 13) + 1; 
    int score = 0; 
    if(value == 1) { 
     System.out.println("Ace!"); 
     score = 11; 
    }else if (value == 13) { 
     System.out.println("King!"); 
     score = 10; 
    }else if (value == 12) { 
     System.out.println("Queen!"); 
     score = 10; 
    } else if (value == 11) { 
     System.out.println("Jack!"); 
     score = 10; 
    } else { 
     score = value; 
    } 

    return score; 
} 

public static void checkWin(int Player, int Computer) { 
    int player = Player; 
    int computer = Computer; 

    if (player > 21) { 
     System.out.println("Player Bust"); 
    } else if (computer > 21) { 
     System.out.println("Computer Bust"); 
    } else { 
     if (player > computer) { 
      System.out.println("Player Wins!"); 
     } else { 
      System.out.println("Computer Wins!"); 
     } 
    } 
} 
} 
+5

입니다 새로운 단계로 레슨을 받아야하는 것처럼 들립니다. 코딩을 시작 했으므로 _debugging_을 시작해야합니다. 디버거에서 코드를 단계별 실행하고 관련 객체의 상태를 관찰하며 예상되는 동작에서 벗어나는 위치를 결정해야합니다. – David

답변

1

:

while (newCard.equalsIgnoreCase("Y")) { 

확인하는 조건을 추가 플레이어는 점수

while (newCard.equalsIgnoreCase("Y") && playerScore < 21) { 
+0

나는 슬프게도 첸 가드를 가지고 있으며, 이제는 @player bust @와 같은 결과물을 나에게 준다. 나는 또한 컴퓨터의 출력을하고 싶지만 올바른 출력 명령을 찾을 수 없습니다. plese 나에게 손을 줄 수 있습니까? /? –

+0

흠 hmm 또한 내가 System.out.println을 쓰려고 할 때 오류가 발생하지만 인쇄를 끝낼 때 새 줄을 만들지 만 제대로 작동하지 않는다. –

0

내가 여기 일을하고있는 출력

import java.util.Scanner; 

public class Pontoon{ 

    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 
     int playerScore = 0, computerScore = 0; 
     String newCard = ""; 
     playerScore += dealCard(); 
     computerScore += dealCard(); 
     playerScore += dealCard(); 
     computerScore += dealCard(); 

     System.out.printf("Your score is %d would you like another card ? y/n ", playerScore); 
     newCard = input.nextLine(); 
     if(newCard.equalsIgnoreCase("Y")) { 
      while (newCard.equalsIgnoreCase("Y") && playerScore < 21) { 
       playerScore += dealCard(); 
       System.out.printf("Your score is %d would you like another card ? y/n ", playerScore); 
       newCard = input.nextLine(); 
      } 
     } while(computerScore < 15){ 
      computerScore += dealCard(); 
     } 
     checkWin(playerScore, computerScore); 
    } 
    public static int dealCard(){ 
     int value = (int) (Math.random() * 10) + 1; 
     int score = value; 
     System.out.println(+value); 
     if(value == 11) { 
      System.out.println("Ace!"); 
      score = 11; 
     }else if (value == 10) { 
      System.out.println("King!"); 
      score = 10; 
     }else if (value == 10) { 
      System.out.println("Queen!"); 
      score = 10; 
     } else if (value == 10) { 
      System.out.println("Jack!"); 
      score = 10; 
     } else { 
      score = value; 
     } 

     return score; 
    } 

    public static void checkWin(int Player, int Computer) { 
     int player = Player; 
     int computer = Computer; 

     System.out.printf("computer score is score is %d ", Computer); 
     if (player > 21) { 
      System.out.println("  Player Bust"); 
     } else if (computer > 21) { 
      System.out.println("  Computer Bust,Player Wins"); 
     } else { 
      if (player > computer) { 
       System.out.println(" Player Wins!"); 
      } else { 
       System.out.println(" Computer Wins!"); 
      } 
     } 
    } 
} 
관련 문제