簡體   English   中英

返回int值的Boolean方法;

[英]Boolean method that returns an int value;

我正在自學Java,我創建了一個模擬擲骰子游戲的程序。 我用布爾方法完成整個游戲。 一切正常,但我想在每次用戶獲勝時計算。 計算這些勝利然后打印出來的最佳方法是什么?

這是我的代碼:

import java.util.Random;

public class game{

public static void main(String[] args) {
    Random rand = new Random();
    for(int i = 0; i <= 10; i++){
        craps(rand);
    }
}

public static boolean craps(Random randomGen){
    int roll1 = randomGen.nextInt(6) + 1;
    int roll2 = randomGen.nextInt(6) + 1;

    int sum = roll1 + roll2;
    int sumRepeat = sum;
    int count = 0;


    String win = "you win";
    String lose = "you lose";
    String point = "point=";

    if(sum == 7 || sum == 11){
        System.out.printf("[%d,%d] %d %s\n",roll1,roll2,sum,win);
        count++;
        return true;
    }
    else if(sum == 2 || sum == 3 || sum == 12){
        System.out.printf("[%d,%d] %d %s\n",roll1,roll2,sum,lose);
        return false;
    }
    else{
        System.out.printf("[%d,%d] %s %d",roll1,roll2,point,sum);
        int roll3 = randomGen.nextInt(6) + 1;
        int roll4 = randomGen.nextInt(6) + 1;
        int sum2 = roll3 + roll4;
        do{
            roll3 = randomGen.nextInt(6) + 1;
            roll4 = randomGen.nextInt(6) + 1;
            sum2 = roll3 + roll4;
            if(sum2 == sumRepeat){
                System.out.printf("[%d,%d] %d %s\n",roll3,roll4,sum2,win);
                count++;
                return true;
            }else{
                System.out.printf("[%d,%d]",roll3,roll4);
            }
        }
        while(sum2 != 7);{
            System.out.printf("[%d,%d] %d %s\n",roll3,roll4,sum2,lose);
            return false;
        }
    }
}
}

我試圖返回計數變量,但我得到一個錯誤,說我不能從我期望的布爾方法返回一個int值。 但我也試圖用System.out.println();打印出計數值System.out.println(); 但是我無法在代碼中找到一個位置來放置它,因為我總是得到一個錯誤,指出println是無法訪問的代碼。

任何幫助,將不勝感激。 謝謝!

這是程序的輸出

[1,6] 7你贏了

[2,4]分= 6 [3,6] [3,3] 6你贏了

[3,3]分= 6 [5,1] 6你贏了

[6,1] 7你贏了

[6,3]分= 9 [5,1] [3,5] [2,6] [6,4] [5,6] [1,5] [6,3] 9你贏了

[3,3]分= 6 [1,5] 6你贏了

[5,1]分= 6 [1,5] 6你贏了

[2,2]點= 4 [6,4] [3,3] [3,4] [3,4] 7你輸了

[4,5]點= 9 [6,4] [5,1] [1,2] [6,2] [1,5] [3,5] [6,5] [1,5] [5 ,2] [5,2] 7你輸了

[2,2]點= 4 [5,3] [5,6] [6,4] [3,2] [6,5] [3,6] [4,4] [4,2] [4 ,3] [4,3] 7你輸了

[6,6] 12你輸了

你贏了11次。

craps函數之外計算它們,這是一個簡單的方法:

public static void main(String[] args) {
    Random rand = new Random();
    int counter = 0;
    for(int i = 0; i <= 10; i++){
        if(craps(rand)) counter++;
    }

    System.out.println("You won " + counter + " times!");
}

順便說一下,重要的是要注意它在craps功能之外的數量遠遠超過修改它的數量。 在學習java時,請記住每個方法只能完成一項工作。 您可能希望練習將craps功能分解為更小的部分來實踐這一理念。 一種工作原理的一種方法將使您在稍后回顧時更容易理解和調試更大的項目。

int wins = 0;
for(int i = 0; i <= 10; i++){
    if(craps(rand)) {
        wins++;
    }
}

// Print a friendly message including `wins`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM