Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- import java.io.*;
- class Pil_game
- {
- public static void main(String args[])
- {
- Scanner o=new Scanner(System.in);
- Pil_game g=new Pil_game();
- int n=o.nextInt();
- int k=1;
- int sa=0,sb=0;
- ArrayList<Integer> a=new ArrayList<Integer>();
- int[][] arr=new int[n][n];
- for(int i=0;i<n;i++)
- for(int j=0;j<n;j++)
- arr[i][j]=k++;
- int player=o.nextInt();
- boolean turn=false;
- if(player==1)
- turn=true;
- g.name(arr,a);
- g.print(arr,n);
- while(!a.isEmpty())
- {
- int x,y;
- do
- {
- x=o.nextInt();
- y=o.nextInt();
- }while(g.validate(arr,x,y,a,turn)==false);
- int res=g.scorecalc(arr,x,y,turn,sa,sb);
- if(turn)
- sa=sa+res;
- else
- sb=sb+res;
- g.print(arr,n);
- turn=!turn;
- }
- if(sa>sb)
- System.out.println("THE WINNER IS PLAYER A WITH "+sa+" SCORES");
- else
- System.out.println("THE WINNER IS PLAYER B WITH "+sb+" SCORES");
- }
- public void print(int[][] arr,int n)
- {
- for(int i=0;i<n;i++)
- {
- for(int j=0;j<n;j++)
- {
- System.out.print(arr[i][j]+"\t");
- }
- System.out.println();
- }
- }
- public int elementrow(int[][] arr,int e)
- {
- for(int i=0;i<arr.length;i++)
- for(int j=0;j<arr.length;j++)
- if(arr[i][j]==e)
- return i;
- return 0;
- }
- public int elementcolumn(int[][] arr,int e)
- {
- for(int i=0;i<arr.length;i++)
- for(int j=0;j<arr.length;j++)
- if(arr[i][j]==e)
- return j;
- return 0;
- }
- public boolean validate(int[][] arr,int x,int y,ArrayList<Integer> a,boolean turn)
- {
- int n=arr.length;
- if(x%2==1&&y%2==1)
- if(Math.abs(x-y)==2 || Math.abs(x-y)==arr.length*2)
- if(get(arr,x)==true&&get(arr,y)==true)
- return change(x,y,arr,a,turn);
- System.out.println("INVALID");
- return false;
- }
- public boolean get(int[][] arr,int pd)
- {
- int i=elementrow(arr,pd);
- int j=elementcolumn(arr,pd);
- if(i%2==0&&j%2==0)
- return true;
- return false;
- }
- public boolean change(int x,int y,int[][] arr,ArrayList<Integer> a,boolean turn)
- {
- int play=(turn)?-1:-2;
- int xi=elementrow(arr,x);
- int xj=elementcolumn(arr,x);
- int yi=elementrow(arr,y);
- int yj=elementcolumn(arr,y);
- int d=0;
- if(xi==yi)
- d=(xj>yj)?arr[xi][xj-1]:arr[xi][yj-1];
- else if(xj==yj)
- d=(xi>yi)?arr[xi-1][xj]:arr[yi-1][xj];
- int rem=a.indexOf(d);
- if(a.contains(d))
- {
- a.remove(rem);
- int i=elementrow(arr,d);
- int j=elementcolumn(arr,d);
- arr[i][j]=play;
- return true;
- }
- else
- System.out.println("ALREADY ENTERED");
- return false;
- }
- public void name(int[][] arr,ArrayList<Integer> a)
- {
- for(int i=0;i<arr.length;i++)
- for(int j=0;j<arr.length;j++)
- if(arr[i][j]%2==0)
- a.add(arr[i][j]);
- }
- public int scorecalc(int[][] arr,int x,int y,boolean turn,int sa,int sb)
- {
- int d1=0,d2=0,n=arr.length;
- int xi=elementrow(arr,x);
- int xj=elementcolumn(arr,x);
- int yi=elementrow(arr,y);
- int yj=elementcolumn(arr,y);
- if(xi==yi&&xi==0)
- d1=(xj>yj)?arr[xi+1][xj-1]:arr[xi+1][yj-1];
- else if(xi==yi&&xi==n-1)
- d1=(xj>yj)?arr[xi-1][xj-1]:arr[xi-1][yj-1];
- else if(xj==yj&&xj==0)
- d1=(xi>yi)?arr[xi-1][xj+1]:arr[yi-1][xj+1];
- else if(xj==yj&&xj==n-1)
- d1=(xi>yi)?arr[xi-1][xj-1]:arr[yi-1][xj-1];
- else if(xi==yi)
- {
- d1=(xj>yj)?arr[xi+1][xj-1]:arr[xi+1][yj-1];
- d2=(xj>yj)?arr[xi-1][xj-1]:arr[xi-1][yj-1];
- }
- else if(xj==yj)
- {
- d1=(xi>yi)?arr[xi-1][xj+1]:arr[yi-1][xj-1];
- d2=(xi>yi)?arr[xi-1][xj-1]:arr[yi-1][xj-1];
- }
- int r1=0,r2=0;
- if(d1!=0)
- r1=scoreboard(arr,d1,elementrow(arr,d1),elementcolumn(arr,d1),turn,sa,sb);
- if(d2!=0)
- r2=scoreboard(arr,d2,elementrow(arr,d2),elementcolumn(arr,d2),turn,sa,sb);
- return r1+r2;
- }
- public int scoreboard(int[][] arr,int d,int di,int dj,boolean turn,int sa,int sb)
- {
- int r=0;
- int play=(turn)?-1:-2;
- if(d!=0)
- {
- if(arr[di][dj-1]<0&&arr[di][dj+1]<0&&arr[di-1][dj]<0&&arr[di+1][dj]<0)
- {
- r=arr[di][dj];
- arr[di][dj]=play;
- return r;
- }
- }
- return 0;
- }
- }
Add Comment
Please, Sign In to add comment