У меня возникла проблема, когда я пытаюсь создать игру, в которой есть элемент, основанный на времени. В нем я дал пользователю 300 секунд, чтобы угадать номер.Timeunit не анализируется во втором классе
Если у игрока закончилось время, тогда код остановит цикл while, который я создал, и напечатайте, что у пользователя закончилось время.
Однако - код даже не анализирует цикл While. Он перескакивает прямо, когда у пользователя заканчивается время, и я не могу найти никаких исправлений для него.
Вот мой основной класс:
import java.util.Scanner;
import java.util.Random;
import java.util.concurrent.TimeUnit;
public class start {
public static void main(String[] args) throws InterruptedException {
Random random = new Random();
Scanner reader = new Scanner(System.in);
byte Lives = 10;
System.out.println("Hey there, and welcome to my Guessing game!");
TimeUnit.MILLISECONDS.sleep(1000);
System.out.println("I'm thinking of a number between 1 and 100");
int Guessed_Number = random.nextInt(100 - 1);
TimeUnit.MILLISECONDS.sleep(1000);
System.out.println("You have 10 lives!");
System.out.println("");
System.out.println("Ready? When you start, you will have 5 minutes to complete the game");
int LocalTime = Time.Time;
System.out.println(LocalTime);
boolean Win = true;
while(Lives>0 & Win & LocalTime > 0)
{
try {
System.out.println("I'm thinking of a number between 1 and 100");
System.out.println("Guess the number I'm thinking of!");
System.out.println("You have " + Lives + " Lives remaining");
byte Guess = reader.nextByte();
if(Guess > Guessed_Number)
{
System.out.println("Your number is too big!");
Lives--;
}
else if(Guess < Guessed_Number)
{
System.out.println("Your number is too small!");
Lives--;
}
else if(Guess == Guessed_Number)
{
System.out.println("You have guessed my number correctly!");
System.out.println("My number was " + Guessed_Number);
System.out.println("Welldone! You had " + Lives + " Lives remaining!");
Win = false;
}
else
{
System.out.println("Odd. Something weird happened. Try again!");
}
}
catch (Exception error)
{
System.out.println("Error!");
System.out.println("Please try to only put in numbers");
TimeUnit.MILLISECONDS.sleep(1000);
reader.next();
}
}
if(LocalTime == 0)
{
System.out.println("You ran out of time! Try again!");
System.out.println("The number I was thinking of was " + Guessed_Number);
}
else if(Lives ==0)
{
System.out.println("You ran out of lives! Try again!");
System.out.println("The number I was thinking of was " + Guessed_Number);
}
else
{
System.out.println("Foobar! The code ran into a error while working");
System.out.println("Please contact me at [email protected] with the Error code FOOBAR and I'll try and fix it.");
}
}
}
Вот мой второй класс, который я посвятил только запустив While Loop для элемента времени.
import java.util.concurrent.TimeUnit;
public class Time extends InterruptedException {
private static final long serialVersionUID = 1L;
public static final int Time = 0;
{
int Time = 300;
while(Time > 0);
{
Time = Time - 1;
TimeUnit.SECONDS.sleep(1);
}
}
}
Я изменил это, но теперь я получаю ошибку, где кажется, что все еще не проходит время. Он просто приостанавливает игру и ждет ввода пользователей. –