Import java.io.BufferedReader;
[email protected] в категроии Информатика, вопрос открыт 29.05.2017 в 00:23
import java.io.IOException;
import java.io.InputStreamReader;
public class Gameprost {
static int[] canvas = {0,0,0,
0,0,0,
0,0,0};
public static void main(String[] args){
boolean b;
boolean isCurrentX = false;
do{
isCurrentX = !isCurrentX;
drawCanvas();
System.out.println("Игрок" + (isCurrentX ? "X" : "O"));
int n = getNumber();
canvas[n] = isCurrentX ? 1 : 2;
b = !isGameOver(n);
if (isDraw()){
System.out.println("Ничья");
return;
}
} while (b);
drawCanvas();
System.out.println("Победитель" + (isCurrentX ? "X" : "O") + "!");
}
static int getNumber(){
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
while (true){
try{
int n = Integer.parseInt(reader.readLine());
if (n >= 0 && n < canvas.length && canvas[n]== 0 ) {
return n;
}
System.out.println("Выбрите свободную ячейку и введите ее номер");
} catch (NumberFormatException e){
System.out.println("Пожалуйста выберете номер");
} catch (IOException e) {}
}
}
static boolean isGameOver(int n){
int row = n-n%3;
if(canvas[row]==canvas[row+1] &&
canvas[row]==canvas[row+2])
return true;
int column = n%3;
if (canvas[column]==canvas[column+3])
if (canvas[column]==canvas[column+6])
if (canvas[column]==canvas[column+9])
return true;
if (n%2!=0)
return false;
if (n%4==0){
if(canvas[0] == canvas[4] &&
canvas [0] == canvas [8])
return true;
if(n!=4)
return false;}
return canvas [2] == canvas [4] &&
canvas [2] == canvas [6]; }
static void drawCanvas(){
for (int i = 0; i < canvas.length; i++) {
if (i!=0) {
if (i%3==0) {System.out.println();
}
else
System.out.print("|");}
if (canvas [i]==0) System.out.print("_" + i + "_");
if (canvas [i]==1) System.out.print("_X_");
if (canvas [i]==2) System.out.print("_O_");}
System.out.println();
}
public static boolean isDraw() {
for (int n : canvas)
if (n==0)
return false;
return true;
}
}
С помощью какой команды и где ее нужно прописывать что бы окрасить цвет "X" и "O "в консоли
0 ответов
Зарегистрируйтесь или авторизируйтесь на сайте чтобы оставить ответ на вопрос.