簡體   English   中英

使用Java對象和方法制作Coinflip游戲?

[英]Making a coinflip game using objects and methods java?

我正在嘗試用Java制作投幣游戲。 我是該語言的新手,而我所知道的唯一其他語言是Javascript,因此我仍在學習。 在只使用一個類並將所有代碼放入內部之前,我已經做過一個了,但是由於要學習它們,所以我現在嘗試使用方法來實現。

游戲的基本思想是,用戶選擇要翻轉的硬幣數量,選擇正面或反面,然后計算機翻轉硬幣並計算是否有更多的正面或反面,以告知用戶是否獲勝或失敗。不。

如您所見,我對該程序並不十分完整,但是我已經遇到了錯誤。 我只是對已有的代碼進行一些測試,發現當我在主類中調用方法settingUpCoin時,程序將終止。

所以基本上,當我運行它,它執行userImp權,權轉換,但后來它不會讓你輸入一個值howManyCoins並終止你之前settingUpCoin 請幫忙! 謝謝! (也很抱歉,如果我在解釋中說了些愚蠢的話,那么我通常對編程還是陌生的,所以請幽默我:D)

順便說一句,如果您有任何其他建議或提示可以幫助我,請隨時給他們提供一些建議,只是不要透露太多,因為我想看看自己能找到多少。 再次感謝您的所有幫助,因為我知道這是一篇非常凌亂的文章,大家都在浪費自己的空閑時間閱讀!

(注意:這都是在Eclipse Luna構建或Java IDE中完成的。類文件在實際情況中都是獨立的,我只是將它們放在一起以演示代碼。)

Coin.java:

import java.io.IOException;

public class Coin {
    double myCoin;
    int numOfCoins;
    int counter;
    double arrayOfCoins[] = {};

    public void howManyCoins() throws IOException {
        System.out.println("How many coins would you like to flip?");
        numOfCoins = System.in.read();
    }

    public void settingUpCoin() {
        for (counter = 0; counter == numOfCoins; counter++) {
            arrayOfCoins[counter] = Math.floor(Math.random() * 2);
            System.out.println("Adding a coin. Coin number" + counter);
            //each time loop goes consider calling userChoice() method 
        }
    }
}

UserChoice.java:

import java.io.IOException;

public class UserChoice {
    char userPick;
    int finalUserPick;

    public void userImp() throws IOException {
        System.out.println("Pick H for heads and T for tails. Make sure to capitalize."); // times number of coins?
        userPick = (char) System.in.read(); // times number of coins?
    }

    public void transform() {
        if (Character.toString(userPick).matches("H")) {
            finalUserPick = 0;
            System.out.println("You picked Heads");
        } else {
            finalUserPick = 1;
            System.out.println("You picked Tails");
        }
    }
}

PutItAllTogether.java:

import java.io.IOException;

public class PutItAllTogether {
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        Coin myCoin1 = new Coin();
        UserChoice request = new UserChoice();

        request.userImp();
        request.transform();

        myCoin1.howManyCoins();
        myCoin1.settingUpCoin();
    }
}

嘗試使用此方法獲取硬幣數量:

System.out.println("How many coins would you like to flip?");    
BufferedReader br = new BufferedReader( new InputStreamReader(System.in));
String s = br.readLine();
numOfCoins = Integer.parseInt(br.readLine());

請注意,您將必須導入java.io.BufferedReader。

我還應該提到的另一件事是,設置陣列的方法將行不通。 您將其初始化為空數組,然后嘗試在for循環中為其分配值。 完全消除該數組可能更容易,而只需在for循環中使用計數器即可根據用戶選擇的內容查看獲得的硬幣數量(正面或反面)。 如果您確實想使用數組,則可以建立最大數量的硬幣進行翻轉(例如10),然后創建大小為10的數組並以這種方式填寫值。

最后,您應該查看Random的nextInt()函數,以一種簡單的方式模擬硬幣翻轉。

暫無
暫無

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

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