CGC_Codes

tic tac toe board

Jul 3rd, 2017
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.02 KB | None | 0 0
  1. using System.Collections.Generic;
  2.  
  3. namespace tic_tac_toe
  4. {
  5.    
  6.     class TicTacToeBoard : GameBoard
  7.     {
  8.         public TicTacToeBoard()
  9.         {
  10.             squares = new Player[3, 3] { { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } };
  11.         }
  12.  
  13.         public override int Size { get { return 9; } }
  14.  
  15.         public override Player this[int x, int y]
  16.         {
  17.             get
  18.             {
  19.                 return squares[x, y];
  20.             }
  21.  
  22.             set
  23.             {
  24.                 squares[x, y] = value;
  25.             }
  26.         }
  27.  
  28.         public override bool IsFull
  29.         {
  30.             get
  31.             {
  32.                 foreach (Player i in squares)
  33.                     if (i == Player.Open) { return false; }
  34.                 return true;
  35.             }
  36.         }
  37.  
  38.         public override List<Space> OpenSquares
  39.         {
  40.             get
  41.             {
  42.                 List<Space> openSquares = new List<Space>();
  43.  
  44.                 for (int x = 0; x <= 2; x++)
  45.                     for (int y = 0; y <= 2; y++)
  46.                         if (squares[x, y] == Player.Open)
  47.                             openSquares.Add(new Space(x, y));
  48.  
  49.                 return openSquares;
  50.             }
  51.         }
  52.  
  53.         public override Player Winner
  54.         {
  55.             get
  56.             {
  57.                 int count = 0;
  58.  
  59.                
  60.                 for (int x = 0; x < 3; x++)
  61.                 {
  62.                     count = 0;
  63.  
  64.                     for (int y = 0; y < 3; y++)
  65.                         count += (int)squares[x, y];
  66.  
  67.                     if (count == 3)
  68.                         return Player.X;
  69.                     if (count == -3)
  70.                         return Player.O;
  71.                 }
  72.  
  73.                
  74.                 for (int x = 0; x < 3; x++)
  75.                 {
  76.                     count = 0;
  77.  
  78.                     for (int y = 0; y < 3; y++)
  79.                         count += (int)squares[y, x];
  80.  
  81.                     if (count == 3)
  82.                         return Player.X;
  83.                     if (count == -3)
  84.                         return Player.O;
  85.                 }
  86.  
  87.                
  88.                 count = 0;
  89.                 count += (int)squares[0, 0];
  90.                 count += (int)squares[1, 1];
  91.                 count += (int)squares[2, 2];
  92.                 if (count == 3)
  93.                     return Player.X;
  94.                 if (count == -3)
  95.                     return Player.O;
  96.  
  97.                
  98.                 count = 0;
  99.                 count += (int)squares[0, 2];
  100.                 count += (int)squares[1, 1];
  101.                 count += (int)squares[2, 0];
  102.                 if (count == 3)
  103.                     return Player.X;
  104.                 if (count == -3)
  105.                     return Player.O;
  106.  
  107.                 return Player.Open;
  108.             }
  109.         }
  110.  
  111.         public override GameBoard Clone()
  112.         {
  113.             GameBoard b = new TicTacToeBoard();
  114.             b.squares = (Player[,])this.squares.Clone();
  115.             return b;
  116.         }
  117.     }
  118. }
Advertisement
Add Comment
Please, Sign In to add comment