2016-10-17 11 views
0

私のプログラミングコースの割り当てがあります。私にはわからない唯一の問題があります。JAVA:どのような印刷が正しいかを確認するクラップスゲーム

私の指示は次のとおりです:サイコロを100回転がした場合にプレイヤーが勝つ頻度をシミュレートするプログラムを作成します。プレイヤーが7、または11を投げた場合、彼らは勝つ

私のプログラムは、私が必要以上に多くの勝利していることを示しています。私は、自分のプログラムが、7人か11人であれば、そのユーザーが獲得したメッセージをプリントアウトするだけですが、それは起こっていません。誰かが私に何をする必要があるかもしれないかに関するアドバイスをくれますか?

以下は私のコードです。ご協力いただきありがとうございます。

@author Jordan Navas 
    @version 1.0 

    COP2253 Workshop7 
File Name: Craps.java 
*/ 

import java.util.Random; 

public class Craps 
{ 

public static void main(String[] args) 
{ 
    Random rand = new Random(); 
    int gamesWon=0; 
    int gamesLost=0; 

    for(int i=1;i<=100;i++) 
    { 
    craps(rand); 
    if(craps(rand)) 
    { 
       gamesWon++; 
    } 
    else{ 
      gamesLost++; 
    } 
    } 
    System.out.println("Games You Have Won: " + gamesWon); 
    System.out.println("Games You Have Lost: " + gamesLost); 

}  
public static boolean craps(Random rand) 
{ 
    int firstDice = rand.nextInt(6)+1; 
    int secondDice = rand.nextInt(6+1); 
    int sumOfDies = firstDice + secondDice; 
     System.out.print("[" + firstDice + "," + secondDice + "]"); 

     if (sumOfDies == 7 || sumOfDies == 11) 
     { 
      System.out.println(sumOfDies + " You Won! Congratulations! You Won! Congratulations! "); 
      return true; 
     } else if(sumOfDies == 2 || sumOfDies == 3 || sumOfDies == 12) 
     { 
      System.out.println(sumOfDies + " Congratulations! You Lost! "); 
      return false; 
     } 

    int point = sumOfDies; 
      System.out.print("Point: " + point + " "); 


    if (sumOfDies == point) 
    { 
     System.out.println(sumOfDies + " You Won! Congratulations! You Won! Congratulations!"); 
     return true; 
    } else 
     { 
     System.out.println(sumOfDies + " Congratulations! You Lost! "); 
     return false; 
     } 


     } 
    } 
+0

'場合(sumOfDies ==点)'常にtrue'を – piyushj

+0

はしかしその、リターン偽の否定をしない '戻りますか?それは十分ではないですか?私はコーディングのその部分を削除すべきですか? –

+0

このコードは、 '2,3または12以外のものに対して' true'を返します。 – piyushj

答えて

0

あなたのコードに条件がある場合は、次のようにする必要はありません。

if (sumOfDies == point) { System.out.println(sumOfDies + " You Won! Congratulations! You Won! Congratulations!"); return true; } 

あなたのコードに必要なものはすべて以下の条件です。ここ

if (sumOfDies == 7 || sumOfDies == 11) { System.out.println(sumOfDies + " You Won! Congratulations! You Won! Congratulations! "); return true; } 
else { System.out.println(sumOfDies + " Congratulations! You Lost! "); return false; } 

あなたの関数がどのように動作するかを示します。

public static boolean craps(Random rand) { 
     int firstDice = rand.nextInt(6)+1; 
     int secondDice = rand.nextInt(6+1); 
     int sumOfDies = firstDice + secondDice; 
     System.out.print("[" + firstDice + "," + secondDice + "]"); 
     if (sumOfDies == 7 || sumOfDies == 11) { 
      System.out.println(sumOfDies + " You Won! Congratulations! You Won! Congratulations! "); 
      return true; 
     } else { 
      System.out.println(sumOfDies + " Congratulations! You Lost! "); 
      return false; 
    } 
} 
+0

私はすでにそれを取り除こうとしましたが、それはかっこを台無しにしました。 –

関連する問題