0

我正在尝试用java制作一个硬币翻转游戏。我对这门语言比较陌生,我知道的唯一其他语言是 Javascript,所以我还在学习。在只使用一个类并将所有代码放入其中之前,我已经制作了一个,但我现在正在尝试使用方法来完成它,因为我正在尝试学习它们。

游戏的基本思想是用户选择他们想要翻转的硬币数量,他们选择正面或反面,然后计算机翻转硬币并计算是否有更多正面或反面来告诉用户他们是否赢了或不是。

如您所见,我的程序还不是很完整,但是我已经遇到了错误。我只是对我已经拥有的代码进行了一些测试,我发现当我调用该方法时settingUpCoin在主类中调用该方法时,程序终止了。

所以基本上,当我运行它时,它会正确执行userImp,正确转换,但是它不允许你输入值howManyCoins并在你到达之前终止settingUpCoin. 请帮忙!谢谢!(另外,很抱歉,如果我在那个解释中说了一些非常愚蠢的话,我对一般编程真的很陌生,所以请幽默我:D)

顺便说一句,如果您有任何其他建议或提示可以帮助我,请随时给他们,只是不要透露太多,因为我想看看我自己能弄清楚多少。再次感谢所有的帮助,因为我知道这是一篇非常混乱的帖子,你们都在用自己的空闲时间阅读!

(注意:这都是在 Eclipse Luna 构建或 Java IDE 中完成的。类文件在实际中都是分开的,我只是把它们放在一起来演示我的代码。)

硬币.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 
        }
    }
}

用户选择.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();
    }
}
4

1 回答 1

0

尝试使用它来获取硬币的数量:

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() 函数,以获得模拟硬币翻转的简单方法。

于 2014-11-19T22:54:10.017 回答