Я пытаюсь написать простую программу с переводом монет и задаюсь вопросом, смогу ли я помочь. Я довольно новичок в Java и просто пытался спросить пользователя, сколько раз они хотели бы перевернуть монету. Вот мой код:Java Coin Flip Program
package cointossing;
import java.util.Random;
import java.util.Scanner;
import static java.lang.System.in;
import static java.lang.System.out;
/**
* Coin tossing class to simulate the flip of a coin
* with two sides; Heads and Tails.
*
* @author Alex Chapman ID:
*
*/
public class CoinTossing
{
public static String sideUp;
public static int number;
public void run()
{
try(Scanner input = new Scanner(in))
{
out.print("Enter how many times you would like to flip the coin");
out.print("if you enter 0 the program quits");
int number = input.nextInt();
}
}
private static void coin()
{
Random rand = new Random();
int sideup = rand.nextInt(2);
if (sideup == 0)
{
sideUp = "heads";
}
else
{
sideUp = "tails";
}
}
public static String getsideup()
{
out.println(sideUp);
return sideUp;
}
public static void main(String[] args)
{
int hcount = 0;
int tcount = 0;
for (int i = 1; i <= number; i++)
{
coin();
if (getsideup().equals("heads"))
{
hcount++;
}
else
{
tcount++;
}
}
out.println("total heads = " + hcount + " total tails = " + tcount);
}
}
, но когда я запускаю программу она пропускает попросив ничего пользователь и просто показывает 0, потому что нет количества раз, чтобы перевернуть монету ... я чувствую, что им по праву трек, но им застрял ... любая помощь будет принята с благодарностью ..
EDIT:
так в интересах обучения я решил изменить мою программу и изменить монету перечисления и есть возвращение программы что значение enum..i также изменило пользовательский ввод на стиль меню, но этому помогло следующее в книге Barnes and Nobles, которую я купил некоторое время назад ... i thin ki пришли к странной перекрестке дороги ... я хотел объединить две программы вместе, чтобы все новые работы по возврату значения enum и т. д. все еще были там, но удалили аспект «меню» и заменили его возможность для пользователя вводить количество флипсов, которые они хотели бы сделать из предыдущей программы. вот новая программа я написал:
import java.util.*;
public class CoinTossing
{
private enum Coin { HEADS, TAILS };
private static final Random randomNumbers = new Random();
private static final int HEAD = 1;
private static final int TAIL = 2;
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int choice;
int toss = 0;
int tosses = 0;
int frontflip = 0;
int backflip = 0;
Coin gameStatus;
System.out.println("Welcome to the Coin Toss Program.\n");
System.out.println("Choose from the menu what you want to do.");
System.out.print("1. Toss the coin\n2. Quit program\n");
choice = input.nextInt();
while (choice != 0)
{
if (choice == 1)
{
int CoinTossed = Flip();
switch (CoinTossed)
{
//added tosses to switch statement to make the counter work perfect.
case HEAD:
gameStatus = Coin.HEADS;
tosses++; // add amount of tosses
break;
default: // changed case TAIL to default. Easy and works.
gameStatus = Coin.TAILS;
tosses++; // add amount of tosses
break;
}
if (gameStatus == Coin.HEADS)
{
frontflip++; //Add amount of heads
}
else // gameStatus == TAILS
backflip++; //Add amount of tails
}
// A try to make an real exit out of a program
if (choice == 2)
{
EndProgram(frontflip, backflip, tosses);
}
System.out.println("\nChoose from the menu what you want to do.");
System.out.print("1. Toss the coin\n2. Quit program\n");
choice = input.nextInt();
}
}
//Toss the coin to determine 1 or 2.
public static int Flip()
{
int toss;
toss = 1 + randomNumbers.nextInt(2);
if (toss == 1)
{
System.out.println("You toss the coin and it lands on head!");
}
else
{
System.out.println("You toss the coin and it lands on tail!");
}
return toss;
}
public static void EndProgram(int frontflip, int backflip, int tosses)
{
System.out.printf("You have tossed %d times.\n", tosses);
System.out.printf("Of all those tosses, %d landed on heads, and %d on tails.\n", frontflip, backflip);
System.exit(0);
}
}
Я думал о создании новой переменной и пользователю установить количество бросков. Затем соединение проверки контура, как так
while(choice != 0 && numTosses !=0)
, а затем уменьшить количество, и я должен буду проверить, что количество и как только он достигает 0 печати результатов, насколько сколько голов и сколько хвостов затем предложу пользователь если они хотели бы снова сыграть в игру. Я даже не знаю, почему я пытаюсь это сделать, если только для аспекта знания, поэтому, если вы не хотите помочь броски, я понимаю.
Вы можете разместить полный код, а не два отсоединенных сегмента? –
Попробуйте добавить 'input.nextLine();' после строки 'int number = input.nextInt();'. –
Что произойдет, если вы используете 'println' вместо' print', где вы показываете инструкции? –