Код на C# крестики нолики
using System;
class TicTacToe {
static char[] board = {'1', '2', '3', '4', '5', '6', '7', '8', '9'};
static char player = 'X';
static void Main() {
Console.WriteLine("Welcome to Tic Tac Toe!");
while (true) {
Console.WriteLine("Current board:");
print_board();
if (check_win('X')) {
Console.WriteLine("X wins!");
break;
} else if (check_win('O')) {
Console.WriteLine("O wins!");
break;
} else if (get_actions().Length == 0) {
Console.WriteLine("Tie game!");
break;
}
if (player == 'X') {
Console.WriteLine("X's turn.");
int index = int.Parse(Console.ReadLine()) - 1;
if (board[index] == 'X' || board[index] == 'O') {
Console.WriteLine("Invalid move, try again.");
continue;
}
board[index] = 'X';
player = 'O';
} else {
Console.WriteLine("O's turn.");
int index = get_best_action();
board[index] = 'O';
player = 'X';
}
}
}
static void print_board() {
Console.WriteLine("{0} | {1} | {2}", board[0], board[1], board[2]);
Console.WriteLine("--+---+--");
Console.WriteLine("{0} | {1} | {2}", board[3], board[4], board[5]);
Console.WriteLine("--+---+--");
Console.WriteLine("{0} | {1} | {2}", board[6], board[7], board[8]);
}
static bool check_win(char player) {
for (int i = 0; i < 9; i += 3) {
if (board[i] == player && board[i+1] == player && board[i+2] == player) {
return true;
}
}
for (int i = 0; i < 3; i++) {
if (board[i] == player && board[i+3] == player && board[i+6] == player) {
return true;
}
}
if (board[0] == player && board[4] == player && board[8] == player) {
return true;
}
if (board[2] == player && board[4] == player && board[6] == player) {
return true;
}
return false;
}
static int[] get_actions() {
int count = 0;
for (int i = 0; i < 9; i++) {
if (board[i] != 'X' && board[i] != 'O') {
count++;
}
}
int[] actions = new int[count];
count = 0;
for (int i = 0; i < 9; i++) {
if (board[i] != 'X' && board[i] != 'O') {
actions[count] = i;
count++;
}
}
return actions;
}
static int get_best_action() {
int[] actions = get_actions();
Random random = new Random();
int index = random.Next(actions.Length);
return actions[index];
}
}