Делаете игру с монетами, используя объекты и методы 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();
}
}
1 ответ
Попробуйте использовать это для получения количества монет:
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 и заполнить значения таким образом.
Наконец, вам следует проверить функцию RandomInt nextInt() для простого способа имитации броска монеты.