Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Text;
- class Program
- {
- static int[] board = new int[9];
- static int[] numofWins = new int[3]; // 0 - "X" player, 1 - "O" player, 2 - tie
- static int filledPositions = 0;
- static bool HaveWinner()
- {
- return (board[0] != 2 && board[0] == board[1] && board[0] == board[2]) ||
- (board[3] != 2 && board[3] == board[4] && board[3] == board[5]) ||
- (board[6] != 2 && board[6] == board[7] && board[6] == board[8]) ||
- (board[0] != 2 && board[0] == board[3] && board[0] == board[6]) ||
- (board[1] != 2 && board[1] == board[4] && board[1] == board[7]) ||
- (board[2] != 2 && board[2] == board[5] && board[2] == board[8]) ||
- (board[0] != 2 && board[0] == board[4] && board[0] == board[8]) ||
- (board[2] != 2 && board[2] == board[4] && board[2] == board[6]);
- }
- static void SolveBoard(int player)
- {
- for (int i = 0; i < 9; i++)
- if (board[i] == 2)
- {
- board[i] = player;
- filledPositions++;
- if (HaveWinner())
- numofWins[player]++;
- else if (filledPositions < 9)
- SolveBoard(1 - player);
- else
- numofWins[2]++;
- filledPositions--;
- board[i] = 2;
- }
- }
- static void Main(string[] args)
- {
- int numOfOs = 0;
- int numOfXs = 0;
- int player = 0;
- string s = "";
- for (int i = 0; i < 9; i++)
- {
- if (i % 3 == 0)
- s = Console.ReadLine();
- if (s[i % 3] == 'X')
- {
- board[i] = 0;
- numOfXs++;
- }
- else if (s[i % 3] == 'O')
- {
- board[i] = 1;
- numOfOs++;
- }
- else board[i] = 2;
- filledPositions = numOfOs + numOfXs;
- if (numOfXs > numOfOs)
- player = 1;
- else
- player = 0;
- }
- SolveBoard(player);
- Console.WriteLine(numofWins[0]);
- Console.WriteLine(numofWins[2]);
- Console.WriteLine(numofWins[1]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement