user49912
Оракул
(51202)
4 года назад
1. Компилятор не выполняет логику, компилятор перегоняет текст в байткод для JVM, которая и выполняет логику.
2. У меня на машине программа работает ровно так, как должна работать. Что у тебя указывает на "неправильное выполнение логики компилятором"?
Danil ShishcovУченик (97)
4 года назад
я еще не начал делать изменение доски игры (реализацию хода), но компьютер вместо того чтобы сначала просто задать переменной случайное число изменял игровое поле.
0 0 0 | 1 20 0 | 3 10 0 | 2 10 0
0 0 0 | 0 0 0 | 0 0 0 | 0 0 0
0 0 0 | 0 0 0 | 0 0 0 | 0 0 0
и так далее
package com.company;
import java.util.Scanner;
import java.lang.Math;
public class Main {
public static void main(String[] args) {
//описание игры
System.out.println("");
System.out.println("Запущенна игра 'крестики нолики'");
System.out.println("1 - крестик, 2 - нолик");
System.out.println("Чтобы сделать свой ход, укажите координаты нужной вам клетки");
System.out.println("поочереди с верху в низ (от 0 до 2) и с лева на право (от 0 до 2)");
// двумерный массив с доской игры
int[][] show1 = new int[][]{{0, 0, 0},
{0, 0, 0},
{0, 0, 0}};
while (true){
//выводим поле игры
for (int i = 0; i < 3; i++){
for (int k = 0; k < 3; k++){
System.out.print(show1[i][k] + " ");
}
System.out.println("");
}
//запрашиваем ход игрока
System.out.print("ваш ход: ");
Scanner xod1 = new Scanner
(System.in);
int xod = xod1.nextInt();
// комп ходит
// не успел сделать хоть какой-нибуть алгоритм
// и уже поймал ошибку
int comp1 = (int) getRandom(1, 3);
int comp2 = (int)getRandom(0, 2);
System.out.print(comp1 + " " + comp2);// для проверки генерируемых данных
}
}
//генератор псевдо рандомных чисел (не нашел инфу как сделать полностью случайные числа)
public static double getRandom(int min, int max) {
double x = (int)(Math.random()*((max-min)+1))+min;
return (int)x;
}
}