Advertisement
Guest User

Java TicTacToe Check for Win

a guest
Sep 21st, 2012
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.46 KB | None | 0 0
  1. public boolean checkwin(char c)
  2.     {
  3.  
  4.         int left, right, up, down;
  5.         boolean leftwin = false, rightwin = false, upwin = false, downwin = false, dI = false, dIV = false; //named my diagonals off the quadrants I is upperright, II is upperleft etc.
  6.         for (int row = 0; row < size; row++)
  7.         {
  8.             for (int col = 0; col < size; col++)
  9.             {
  10.                 if (board[row][col] == c)
  11.                 {
  12.                     leftwin = true;
  13.                     rightwin = true;
  14.                     upwin = true;
  15.                     downwin = true;// dI = true; dII = true; dIII = true; dIV = true;
  16.                     left = col - 1;
  17.                     while (left >= 0)
  18.                     {
  19.                         if (this.board[row][left] != c)
  20.                         {
  21.                             leftwin = false;
  22.                             break;
  23.                         }
  24.                         left--;
  25.                     }
  26.                     right = col + 1;
  27.                     while (right < size)
  28.                     {
  29.                         if (this.board[row][right] != c)
  30.                         {
  31.                             rightwin = false;
  32.                             break;
  33.                         }
  34.                         right++;
  35.                     }
  36.                     up = row - 1;
  37.                     while (up >= 0)
  38.                     {
  39.                         if (this.board[up][col] != c)
  40.                         {
  41.                             upwin = false;
  42.                             break;
  43.                         }
  44.                         up--;
  45.                     }
  46.                     down = row + 1;
  47.                     while (down < size)
  48.                     {
  49.                         if (this.board[down][col] != c)
  50.                         {
  51.                             downwin = false;
  52.                             break;
  53.                         }
  54.                         down++;
  55.                     }
  56.                     //Diagonal statements
  57.                     if ((col == 0 && (row == 0 || row == size - 1)))
  58.                     {
  59.                         dI = false;
  60.                         dIV = false;
  61.                         up = row - 1;
  62.                         right = col + 1;
  63.                         while (up >= 0 && right < size)
  64.                         {
  65.                             dI = true;
  66.                             if (this.board[up][right] != c)
  67.                             {
  68.                                 dI = false;
  69.                                 break;
  70.                             }
  71.                             up--;
  72.                             right++;
  73.                         }
  74.                         down = row + 1;
  75.                         right = col + 1;
  76.                         while (down < size && row < size)
  77.                         {
  78.                             dIV = true;
  79.                             if (this.board[down][right] != c)
  80.                             {
  81.                                 dIV = false;
  82.                                 break;
  83.                             }
  84.                             down++;
  85.                             right++;
  86.                         }
  87.  
  88.                     }
  89.                 }
  90.                 if ((downwin && upwin) || (leftwin && rightwin) || (dI) || (dIV))
  91.                 {
  92.                     return true;
  93.                 }
  94.             }
  95.         }
  96.  
  97.  
  98.  
  99.         return false;
  100.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement