Advertisement
Guest User

Untitled

a guest
Apr 30th, 2014
16,265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.45 KB | None | 0 0
  1. private void computer_make_move()
  2.         {
  3.             //priority 1:  get tick tac toe
  4.             //priority 2:  block x tic tac toe
  5.             //priority 3:  go for corner space
  6.             //priority 4:  pick open space
  7.  
  8.             Button move = null;
  9.  
  10.             //look for tic tac toe opportunities
  11.             move = look_for_win_or_block("O"); //look for win
  12.             if (move == null)
  13.             {
  14.                 move = look_for_win_or_block("X"); //look for block
  15.                 if (move == null)
  16.                 {
  17.                     move = look_for_corner();
  18.                     if (move == null)
  19.                     {
  20.                         move = look_for_open_space();
  21.                     }//end if
  22.                 }//end if
  23.             }//end if
  24.            
  25.             move.PerformClick();
  26.         }
  27.  
  28.         private Button look_for_open_space()
  29.         {
  30.             Console.WriteLine("Looking for open space");
  31.             Button b = null;
  32.             foreach (Control c in Controls)
  33.             {
  34.                 b = c as Button;
  35.                 if (b != null)
  36.                 {
  37.                     if (b.Text == "")
  38.                         return b;
  39.                 }//end if
  40.             }//end if
  41.            
  42.             return null;
  43.         }
  44.  
  45.         private Button look_for_corner()
  46.         {
  47.             Console.WriteLine("Looking for corner");
  48.             if (A1.Text == "O")
  49.             {
  50.                 if (A3.Text == "")
  51.                     return A3;
  52.                 if (C3.Text == "")
  53.                     return C3;
  54.                 if (C1.Text == "")
  55.                     return C1;
  56.             }
  57.  
  58.             if (A3.Text == "O")
  59.             {
  60.                 if (A1.Text == "")
  61.                     return A1;
  62.                 if (C3.Text == "")
  63.                     return C3;
  64.                 if (C1.Text == "")
  65.                     return C1;
  66.             }
  67.  
  68.             if (C3.Text == "O")
  69.             {
  70.                 if (A1.Text == "")
  71.                     return A3;
  72.                 if (A3.Text == "")
  73.                     return A3;
  74.                 if (C1.Text == "")
  75.                     return C1;
  76.             }
  77.  
  78.             if (C1.Text == "O")
  79.             {
  80.                 if (A1.Text == "")
  81.                     return A3;
  82.                 if (A3.Text == "")
  83.                     return A3;
  84.                 if (C3.Text == "")
  85.                     return C3;
  86.             }
  87.            
  88.             if (A1.Text == "")
  89.                 return A1;
  90.             if (A3.Text == "")
  91.                 return A3;
  92.             if (C1.Text == "")
  93.                 return C1;
  94.             if (C3.Text == "")
  95.                 return C3;
  96.  
  97.             return null;
  98.         }
  99.  
  100.         private Button look_for_win_or_block(string mark)
  101.         {
  102.             Console.WriteLine("Looking for win or block:  " + mark);
  103.             //HORIZONTAL TESTS
  104.             if ((A1.Text == mark) && (A2.Text == mark) && (A3.Text == ""))
  105.                 return A3;
  106.             if ((A2.Text == mark) && (A3.Text == mark) && (A1.Text == ""))
  107.                 return A1;
  108.             if ((A1.Text == mark) && (A3.Text == mark) && (A2.Text == ""))
  109.                 return A2;
  110.  
  111.             if ((B1.Text == mark) && (B2.Text == mark) && (B3.Text == ""))
  112.                 return B3;
  113.             if ((B2.Text == mark) && (B3.Text == mark) && (B1.Text == ""))
  114.                 return B1;
  115.             if ((B1.Text == mark) && (B3.Text == mark) && (B2.Text == ""))
  116.                 return B2;
  117.  
  118.             if ((C1.Text == mark) && (C2.Text == mark) && (C3.Text == ""))
  119.                 return C3;
  120.             if ((C2.Text == mark) && (C3.Text == mark) && (C1.Text == ""))
  121.                 return C1;
  122.             if ((C1.Text == mark) && (C3.Text == mark) && (C2.Text == ""))
  123.                 return C2;
  124.  
  125.             //VERTICAL TESTS
  126.             if ((A1.Text == mark) && (B1.Text == mark) && (C1.Text == ""))
  127.                 return C1;
  128.             if ((B1.Text == mark) && (C1.Text == mark) && (A1.Text == ""))
  129.                 return A1;
  130.             if ((A1.Text == mark) && (C1.Text == mark) && (B1.Text == ""))
  131.                 return B1;
  132.  
  133.             if ((A2.Text == mark) && (B2.Text == mark) && (C2.Text == ""))
  134.                 return C2;
  135.             if ((B2.Text == mark) && (C2.Text == mark) && (A2.Text == ""))
  136.                 return A2;
  137.             if ((A2.Text == mark) && (C2.Text == mark) && (B2.Text == ""))
  138.                 return B2;
  139.  
  140.             if ((A3.Text == mark) && (B3.Text == mark) && (C3.Text == ""))
  141.                 return C3;
  142.             if ((B3.Text == mark) && (C3.Text == mark) && (A3.Text == ""))
  143.                 return A3;
  144.             if ((A3.Text == mark) && (C3.Text == mark) && (B3.Text == ""))
  145.                 return B3;
  146.  
  147.             //DIAGONAL TESTS
  148.             if ((A1.Text == mark) && (B2.Text == mark) && (C3.Text == ""))
  149.                 return C3;
  150.             if ((B2.Text == mark) && (C3.Text == mark) && (A1.Text == ""))
  151.                 return A1;
  152.             if ((A1.Text == mark) && (C3.Text == mark) && (B2.Text == ""))
  153.                 return B2;
  154.  
  155.             if ((A3.Text == mark) && (B2.Text == mark) && (C1.Text == ""))
  156.                 return C1;
  157.             if ((B2.Text == mark) && (C1.Text == mark) && (A3.Text == ""))
  158.                 return A3;
  159.             if ((A3.Text == mark) && (C1.Text == mark) && (B2.Text == ""))
  160.                 return B2;
  161.  
  162.             return null;
  163.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement