@artempawww

Почему не работает игра кубики на Java?

Почему-то не работают кубики (а точнее рандомайзер) выдает вечно 2.

В чем может быть проблема?

// Jvdroid-main: Launcher
import java.util.Scanner;
import java.lang.Math;

public class CubeGame {
	public static void StartGame() {
		Launcher lnc = new Launcher();
		System.out.println("Подбрасываю кубики " + lnc.name1);
	    int rez1 = 2 + (int) Math.random()*40;
	 
		System.out.println("Результат: " + rez1);
	    System.out.println("Подбрасываю кубики " + lnc.name2);
	    int rez2 = 2 + (int)Math.random()*40;
	    System.out.println("Результат: " + rez2);
	    if(rez2>rez1){
	        System.out.println(lnc.name2 + " Выиграл!!!");
	}
	    else if(rez1>rez2){
	        System.out.println(lnc.name1 + " Выиграл!!!");
	    }
	    else {
	        System.out.println("Ничья!!!");
	    }
    }
}

class Launcher {
        Scanner sc = new Scanner(System.in);
        String name1 = sc.nextLine();
        String name2 = sc.nextLine();
    public static void main(String[] args) {
    
        
        CubeGame game = new CubeGame();
        CubeGame.StartGame();
    }
}<img src="https://habrastorage.org/webt/62/b3/30/62b330e9507bc234916714.jpeg" alt="image"/>


Выход:

абаь
алвлвл
Подбрасываю кубики абаь
Результат: 2
Подбрасываю кубики алвлвл
Результат: 2
Ничья!!!

[Program finished]
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
xez
@xez Куратор тега Java
TL Junior Roo
Потому что Math.random() "Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0." Когда вы приводите этот double к int просто отбрасывается дробная часть и остается 0.
Потом он перемножается на 40, что особо не помогает.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы