Guest User

Untitled

a guest
May 26th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.80 KB | None | 0 0
  1. import java.util.*;
  2. import java.io.*;
  3. class Pil_game
  4. {
  5. public static void main(String args[])
  6. {
  7. Scanner o=new Scanner(System.in);
  8. Pil_game g=new Pil_game();
  9. int n=o.nextInt();
  10. int k=1;
  11. int sa=0,sb=0;
  12. ArrayList<Integer> a=new ArrayList<Integer>();
  13. int[][] arr=new int[n][n];
  14. for(int i=0;i<n;i++)
  15. for(int j=0;j<n;j++)
  16. arr[i][j]=k++;
  17. int player=o.nextInt();
  18. boolean turn=false;
  19. if(player==1)
  20. turn=true;
  21. g.name(arr,a);
  22. g.print(arr,n);
  23. while(!a.isEmpty())
  24. {
  25. int x,y;
  26. do
  27. {
  28. x=o.nextInt();
  29. y=o.nextInt();
  30. }while(g.validate(arr,x,y,a,turn)==false);
  31. int res=g.scorecalc(arr,x,y,turn,sa,sb);
  32. if(turn)
  33. sa=sa+res;
  34. else
  35. sb=sb+res;
  36. g.print(arr,n);
  37. turn=!turn;
  38. }
  39. if(sa>sb)
  40. System.out.println("THE WINNER IS PLAYER A WITH "+sa+" SCORES");
  41. else
  42. System.out.println("THE WINNER IS PLAYER B WITH "+sb+" SCORES");
  43. }
  44. public void print(int[][] arr,int n)
  45. {
  46. for(int i=0;i<n;i++)
  47. {
  48. for(int j=0;j<n;j++)
  49. {
  50. System.out.print(arr[i][j]+"\t");
  51. }
  52. System.out.println();
  53. }
  54. }
  55. public int elementrow(int[][] arr,int e)
  56. {
  57. for(int i=0;i<arr.length;i++)
  58. for(int j=0;j<arr.length;j++)
  59. if(arr[i][j]==e)
  60. return i;
  61. return 0;
  62. }
  63. public int elementcolumn(int[][] arr,int e)
  64. {
  65. for(int i=0;i<arr.length;i++)
  66. for(int j=0;j<arr.length;j++)
  67. if(arr[i][j]==e)
  68. return j;
  69. return 0;
  70. }
  71. public boolean validate(int[][] arr,int x,int y,ArrayList<Integer> a,boolean turn)
  72. {
  73. int n=arr.length;
  74. if(x%2==1&&y%2==1)
  75. if(Math.abs(x-y)==2 || Math.abs(x-y)==arr.length*2)
  76. if(get(arr,x)==true&&get(arr,y)==true)
  77. return change(x,y,arr,a,turn);
  78. System.out.println("INVALID");
  79. return false;
  80. }
  81. public boolean get(int[][] arr,int pd)
  82. {
  83. int i=elementrow(arr,pd);
  84. int j=elementcolumn(arr,pd);
  85. if(i%2==0&&j%2==0)
  86. return true;
  87. return false;
  88. }
  89. public boolean change(int x,int y,int[][] arr,ArrayList<Integer> a,boolean turn)
  90. {
  91. int play=(turn)?-1:-2;
  92. int xi=elementrow(arr,x);
  93. int xj=elementcolumn(arr,x);
  94. int yi=elementrow(arr,y);
  95. int yj=elementcolumn(arr,y);
  96. int d=0;
  97. if(xi==yi)
  98. d=(xj>yj)?arr[xi][xj-1]:arr[xi][yj-1];
  99. else if(xj==yj)
  100. d=(xi>yi)?arr[xi-1][xj]:arr[yi-1][xj];
  101. int rem=a.indexOf(d);
  102. if(a.contains(d))
  103. {
  104. a.remove(rem);
  105. int i=elementrow(arr,d);
  106. int j=elementcolumn(arr,d);
  107. arr[i][j]=play;
  108. return true;
  109. }
  110. else
  111. System.out.println("ALREADY ENTERED");
  112. return false;
  113. }
  114. public void name(int[][] arr,ArrayList<Integer> a)
  115. {
  116. for(int i=0;i<arr.length;i++)
  117. for(int j=0;j<arr.length;j++)
  118. if(arr[i][j]%2==0)
  119. a.add(arr[i][j]);
  120. }
  121. public int scorecalc(int[][] arr,int x,int y,boolean turn,int sa,int sb)
  122. {
  123. int d1=0,d2=0,n=arr.length;
  124. int xi=elementrow(arr,x);
  125. int xj=elementcolumn(arr,x);
  126. int yi=elementrow(arr,y);
  127. int yj=elementcolumn(arr,y);
  128. if(xi==yi&&xi==0)
  129. d1=(xj>yj)?arr[xi+1][xj-1]:arr[xi+1][yj-1];
  130. else if(xi==yi&&xi==n-1)
  131. d1=(xj>yj)?arr[xi-1][xj-1]:arr[xi-1][yj-1];
  132. else if(xj==yj&&xj==0)
  133. d1=(xi>yi)?arr[xi-1][xj+1]:arr[yi-1][xj+1];
  134. else if(xj==yj&&xj==n-1)
  135. d1=(xi>yi)?arr[xi-1][xj-1]:arr[yi-1][xj-1];
  136. else if(xi==yi)
  137. {
  138. d1=(xj>yj)?arr[xi+1][xj-1]:arr[xi+1][yj-1];
  139. d2=(xj>yj)?arr[xi-1][xj-1]:arr[xi-1][yj-1];
  140. }
  141. else if(xj==yj)
  142. {
  143. d1=(xi>yi)?arr[xi-1][xj+1]:arr[yi-1][xj-1];
  144. d2=(xi>yi)?arr[xi-1][xj-1]:arr[yi-1][xj-1];
  145. }
  146. int r1=0,r2=0;
  147. if(d1!=0)
  148. r1=scoreboard(arr,d1,elementrow(arr,d1),elementcolumn(arr,d1),turn,sa,sb);
  149. if(d2!=0)
  150. r2=scoreboard(arr,d2,elementrow(arr,d2),elementcolumn(arr,d2),turn,sa,sb);
  151. return r1+r2;
  152. }
  153. public int scoreboard(int[][] arr,int d,int di,int dj,boolean turn,int sa,int sb)
  154. {
  155. int r=0;
  156. int play=(turn)?-1:-2;
  157. if(d!=0)
  158. {
  159. if(arr[di][dj-1]<0&&arr[di][dj+1]<0&&arr[di-1][dj]<0&&arr[di+1][dj]<0)
  160. {
  161. r=arr[di][dj];
  162. arr[di][dj]=play;
  163. return r;
  164. }
  165. }
  166. return 0;
  167. }
  168. }
Add Comment
Please, Sign In to add comment