2017-11-10 10 views
-3

C# XNA에서 "간단한 게임"을 만들고 있습니다. 롤 버튼과 2 명의 플레이어가 있습니다.
내가 원하는 것은 그 롤 버튼을 누를 때마다 생성 된 숫자가 같은 선수가 다시 굴릴 수있는 6입니다. 나는 모든 것을 루프와 if-else 문으로 시도했다.XNA - 주사위 6 번 굴림 여부를 확인하십시오.

public void DiceCheck() 
    { 
     if (randomNum == 6) 
     { 
      if (playerTurn) //Intial value of bool playerTurn is equal to true: Which means player 1 turn 
      { 
       playerTurn = true; //Allow player 1 to roll again 
      } 

      else if (playerTurn == false) // Player 2 turn 
      { 
       playerTurn = false; //Allow player 2 to roll again 
      } 
     } 
    } 

나는 또한 뭔가를이에 내가 그것을 롤 번호로 플레이어가 6 얻을 때마다 내가 원하는 2를 추가하는 두 선수에 대한 삽입 플레이어가

player2turn++; 
player1turn++; 

롤마다 추가 6을 생성하려면 플레이어가 다시 굴러서 클릭하게하십시오. 그러나 그것은 내가 원하는대로 작동하지 않습니다.

+0

추가 한 코드는별로 도움이되지 않습니다. [How to Ask] (https://stackoverflow.com/questions/how-to-ask), [Minimal, Complete, Verifiable 예제를 만드는 방법] (https://stackoverflow.com/help/mcve)을 읽어보십시오.), 특히 [왜 누군가가 나를 도울 수 있습니까?]가 아닌 실제 질문이 있습니까?] (http://meta.stackoverflow.com/q/284236) 그런 다음 질문을 적절하게 편집하십시오. – wp78de

+0

1. 당신이 플립을 돌리고 싶은 randomNum! = 6이라면 DiceCheck가 Else를 가질 것으로 기대했던 것처럼 보입니다. 즉. playerTurn =! playerTurn; 2. 여기에 누락 된 코드가 있습니다. "게임 루프"는 일부 로직이 누락되었지만 나열되지 않았기 때문에 무엇이 잘못되었는지 명확하지 않습니다. – theoretical

+0

@ 이론적으로 당신이 의미하는 바를 보여줄 수 있습니까? 나는 당신의 말을 잘 이해하지 못합니다. – TaricDF

답변

1
public void GameLoop(Random dice) 
{ 
    int randomNum = 0; 
    int turn = 0; 
    while(true) 
    { 
     randomNum = dice.Next(1,7); //next turn roll 
     Console.WriteLine(string.Format("Player {0} rolled a {1}", turn%2 + 1, randomNum)); 
     if(!CheckForReroll(randomNum)) // if it's a reroll don't change player's turns 
     { 
      turn++; 
     } 

     if(turn == 10) break; //made up rules to stop at turn 10 so we don't loop infinitely 
    } 
} 

public bool CheckForReroll(int randomNum) 
{ 
    return randomNum == 6; 
} 
+0

정말 고마워요. – TaricDF

관련 문제