From Torrid Panda, 1 Year ago, written in Java.
Embed
  1. public class BoardEdit {
  2.         private char[][] board;
  3.         char player1Char;
  4.         char player2Char;
  5.         public static final int PLAYER1WON = 1;
  6.         public static final int PLAYER2WON = 2;
  7.         public static final int NOT_FINISHED = 0;
  8.         public static final int DRAW = 3;
  9.  
  10.         public BoardEdit(char player1Char, char player2Char) {
  11.                 board = new char[8][8];
  12.                 for (int i = 0; i < 8; i++) {
  13.                         for(int j = 0; j < 8; j++) {
  14.                                 board[i][j] = ' ';
  15.                         }
  16.                 }
  17.                 this.player1Char = player1Char;
  18.                 this.player2Char = player2Char;
  19.  
  20.                 board[3][3]=board[4][4]='1';
  21.                 board[4][3]=board[3][4]='2';
  22.  
  23.         }
  24.  
  25.  
  26.  
  27.         public boolean makeAMove(int x,int y,char symbol,OthelloBoard gm){
  28.                
  29.  
  30.                 char oppo;
  31.                 if(symbol=='1')oppo='2';
  32.                 else oppo='1';
  33.                 if(board[x][y]!=' ')
  34.                         return false;
  35.  
  36.                 boolean moveOccured=false;
  37.  
  38.                 int a[]={1,1,1,0,0,-1,-1,-1};
  39.                 int b[]={1,0,-1,1,-1,1,0,-1};
  40.                 for(int k=0;k<8;++k){
  41.  
  42.  
  43.                         int i,j;
  44.                         i=x+a[k];
  45.                         j=y+b[k];
  46.  
  47.                         if(i>=0&&i<8&&j>=0&&j<8&&board[i][j]==oppo){
  48.                                 int p,q;
  49.                                 for(p=i,q=j;p>=0&&p<8&&q>=0&&q<8;p+=a[k],q+=b[k]){
  50.                                         if(board[p][q]==' '){
  51.                                                 p=-1;
  52.                                                 q=-1;
  53.                                                 break;
  54.                                         }
  55.                                         else if(board[p][q]==symbol){
  56.                                                 moveOccured=true;
  57.                                                 break;
  58.                                         }
  59.                                 }
  60.                                 if(p>=0&&p<8&&q>=0&&q<8){
  61.                                         for(int startX=i,startY=j;startX!=p||startY!=q;startX+=a[k],startY+=b[k]){
  62.                                                 board[startX][startY]=symbol;
  63.                                                 gm.changebuttoncolors(startX,startY,symbol);
  64.                                         }
  65.                                 }
  66.  
  67.                         }
  68.                        
  69.                 }
  70.                
  71.                 if(moveOccured)
  72.                         board[x][y]=symbol;
  73.        
  74.                
  75.                 return moveOccured;
  76.  
  77.         }
  78.        
  79.  
  80. public boolean checkAMove(int x,int y,char symbol){
  81.  
  82.                 char oppo;
  83.                 if(symbol=='1')oppo='2';
  84.                 else oppo='1';
  85.                 if(board[x][y]!=' ')
  86.                         return false;
  87.  
  88.                
  89.  
  90.                 int a[]={1,1,1,0,0,-1,-1,-1};
  91.                 int b[]={1,0,-1,1,-1,1,0,-1};
  92.                 for(int k=0;k<8;++k){
  93.  
  94.  
  95.                         int i,j;
  96.                         i=x+a[k];
  97.                         j=y+b[k];
  98.  
  99.                         if(i>=0&&i<8&&j>=0&&j<8&&board[i][j]==oppo){
  100.                                 int p,q;
  101.                                 for(p=i,q=j;p>=0&&p<8&&q>=0&&q<8;p+=a[k],q+=b[k]){
  102.                                         if(board[p][q]==' '){
  103.                                                 break;
  104.                                         }
  105.                                         else if(board[p][q]==symbol){
  106.                                                 return true;
  107.                                         }
  108.                                 }
  109.                                
  110.                         }
  111.                        
  112.                 }
  113.                
  114.                
  115.                 return false;
  116.  
  117.         }
  118.        
  119.  
  120.        
  121.         public ArrayList<Integer> allValidMoves(char symb){
  122.                 ArrayList<Integer> ans=new ArrayList<>();
  123.                 for(int i=0;i<8;++i){
  124.                         for(int j=0;j<8;++j){
  125.                                 if(checkAMove(i, j, symb))
  126.                                         ans.add(i*8+j);
  127.                         }
  128.                 }
  129.                 return ans;
  130.         }
  131.  
  132.  
  133.  
  134.         public void printBoard() {
  135.                 for(int xiter=0;xiter<8;++xiter){
  136.                         for(int yiter=0;yiter<8;++yiter){
  137.                                 System.out.print(board[xiter][yiter]+"|");
  138.                         }
  139.                         System.out.println();
  140.                 }
  141.                
  142.         }
  143.  
  144.  
  145.  
  146.         public Pair<Integer, Integer> getBothPlayerCount() {
  147.                 Pair<Integer, Integer> counts=new Pair<>(0,0);
  148.                 for(int xiter=0;xiter<8;++xiter){
  149.                         for(int yiter=0;yiter<8;++yiter){
  150.                                 if(board[xiter][yiter]=='1')
  151.                                         counts.data1++;
  152.                                 else if(board[xiter][yiter]=='2')
  153.                                         counts.data2++;
  154.                         }
  155.                        
  156.                 }
  157.                 return counts;
  158.         }
  159.  
  160.  
  161.  
  162.         public boolean allBoxesFilled() {
  163.                 for(int xiter=0;xiter<8;++xiter){
  164.                         for(int yiter=0;yiter<8;++yiter){
  165.                                 if(board[xiter][yiter]==' ')
  166.                                         return false;
  167.                         }
  168.                 }
  169.                 return true;
  170.         }
  171.        
  172.        
  173.        
  174. }
  175.  

Replies to Untitled rss

Title Name Language When
Re: Untitled Tacky Leech java 1 Year ago.