使用对象和方法java制作一个coinflip游戏?

时间:2014-11-15 04:44:35

标签: java eclipse class methods system.in

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

游戏的基本思想是用户选择他们想要翻转的硬币数量,他们挑选头部或尾部,然后计算机翻转硬币并计算是否有更多的头部或尾部告诉用户,如果他们赢了或不。

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

所以基本上,当我运行它时,它会向右执行userImp,向右转换,但是它不允许您输入howManyCoins的值并在到达{{{}之前终止1}}。请帮忙!谢谢! (另外,对不起,如果我在说明中说了一些非常愚蠢的话,我对编程一般都很陌生,所以请幽默我:D)

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

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

Coin.java:

settingUpCoin

UserChoice.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 
        }
    }
}

PutItAllTogether.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");
        }
    }
}

1 个答案:

答案 0 :(得分: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()函数,以便轻松模拟硬币翻转。