Advertisement
Guest User

Untitled

a guest
Nov 11th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.11 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Random;
  3. import java.util.Scanner;
  4.  
  5. public class Game {
  6.  
  7. private Board ShipsBoard;
  8. private Board ShootingBoard;
  9. private ArrayList<Ship> ships_on_board = new ArrayList<>();
  10.  
  11. public Game(Board ShipsBoard, Board ShootingBoard){
  12. this.ShipsBoard = ShipsBoard;
  13. this.ShootingBoard = ShootingBoard;
  14.  
  15. }
  16. public void SetShipsOnBoard(){
  17.  
  18. Random random = new Random();
  19. int x = random.nextInt(10);
  20. int y = random.nextInt(10);
  21. int orient =random.nextInt(2);
  22. int field ='5';
  23. int takenFied ='8';
  24. int shipLenght=5;
  25. int poleZerowe='0';
  26. for(int j=0;j<5;j++){
  27.  
  28. if(((int)ShipsBoard.getField(x,y) == poleZerowe) ) {
  29. if(orient==0){
  30.  
  31. if(y>shipLenght) {
  32.  
  33. while(y>shipLenght){
  34. y--;
  35. }
  36.  
  37.  
  38. for (int i = 0; i < shipLenght; i++) {
  39. if((int)ShipsBoard.getField(x,y+i)==0){
  40. ShipsBoard.setField(x , y+i, field);}
  41. else{break;}
  42.  
  43. }
  44. //board.setField(x,y-1,takenFied);
  45. for(int i =0;i<shipLenght;i++){
  46.  
  47. if((x+1)<ShipsBoard.getSize()){
  48. if((int)ShipsBoard.getField(x+1,y+i)==poleZerowe){
  49. ShipsBoard.setField(x+1,y+i,takenFied);}}
  50.  
  51. if((x-1)>=0){
  52. if((int)ShipsBoard.getField(x-1,y+i)==poleZerowe){
  53. ShipsBoard.setField(x-1,y+i,takenFied);}}
  54. }
  55. //board.setField(x,y+shipLenght,takenFied);
  56.  
  57. }
  58. else{
  59. for (int i = 0; i < shipLenght; i++) {
  60. if((int)ShipsBoard.getField(x,y+i)==poleZerowe){
  61. ShipsBoard.setField(x , y+i, field);}
  62. else{break;}
  63.  
  64. }
  65. //board.setField(x,y-1,takenFied);
  66. for(int i =0;i<shipLenght;i++){
  67. if((x+1)<ShipsBoard.getSize()){
  68. if((int)ShipsBoard.getField(x+1,y+i)==poleZerowe){
  69. ShipsBoard.setField(x+1,y+i,takenFied);}}
  70. if((x-1)>=0){
  71. if((int)ShipsBoard.getField(x-1,y+i)==poleZerowe){
  72. ShipsBoard.setField(x-1,y+i,takenFied);}}
  73.  
  74. }
  75. //board.setField(x,y+shipLenght,takenFied);
  76. }
  77. }
  78. else{
  79. if(x>shipLenght) {
  80.  
  81. while(x>shipLenght){
  82. x--;
  83. }
  84.  
  85.  
  86. for (int i = 0; i < shipLenght; i++) {
  87. if((int)ShipsBoard.getField(x+i,y)==poleZerowe){
  88. ShipsBoard.setField(x+i , y, field);}
  89. else{break;}
  90.  
  91. }//board.setField(x-1,y,takenFied);
  92. for(int i =0;i<shipLenght;i++){
  93.  
  94. if((y+1)<ShipsBoard.getSize()){
  95. if((int)ShipsBoard.getField(x+i,y+1)==poleZerowe){
  96. ShipsBoard.setField(x+i,y+1,takenFied);}}
  97.  
  98. if((y-1)>=0){
  99. if((int)ShipsBoard.getField(x+i,y-1)==poleZerowe){
  100. ShipsBoard.setField(x+i,y-1,takenFied);}}
  101. }
  102. //board.setField(x+field,y,takenFied);
  103.  
  104. }
  105. else{
  106. for (int i = 0; i < shipLenght; i++) {
  107. if((int)ShipsBoard.getField(x+i,y)==poleZerowe){
  108. ShipsBoard.setField(x+i , y, field);}
  109. else{break;}
  110.  
  111. }
  112. //board.setField(x-1,y,takenFied);
  113. for(int i =0;i<shipLenght;i++){
  114.  
  115. if((y+1)<ShipsBoard.getSize()){
  116. if((int)ShipsBoard.getField(x+i,y+1)==poleZerowe){
  117. ShipsBoard.setField(x+i,y+1,takenFied);}}
  118.  
  119. if((y-1)>=0){
  120. if((int)ShipsBoard.getField(x+i,y-1)==poleZerowe){
  121. ShipsBoard.setField(x+i,y-1,takenFied);}}
  122. }
  123. //board.setField(x+field,y,takenFied);
  124.  
  125. }}
  126. }else{
  127. while(((int)ShipsBoard.getField(x,y) != poleZerowe) ){
  128. x = random.nextInt(10);
  129. y = random.nextInt(10);
  130. }}
  131.  
  132. field--;
  133. orient=random.nextInt(2);
  134. x = random.nextInt(10);
  135. y = random.nextInt(10);
  136. shipLenght--;
  137. }
  138.  
  139.  
  140. ShipsBoard.printBoardpom();
  141.  
  142. }
  143. public void ShootField(int x, int y) {
  144. int number_of_elements = 0;
  145. if(isFieldClear(x,y)) {
  146.  
  147. if (ShipsBoard.getField(x,y) != '0' && ShipsBoard.getField(x,y) != '8') {
  148. int shiplength = ShipsBoard.getField(x,y);
  149. //Ship ship = ships_on_board.get(shiplength);
  150.  
  151. ShootingBoard.setField(x,y,'x');
  152.  
  153. for(int i = x; i < 10; i++)
  154. for(int j =y; j < 10; j++){
  155. if(ShipsBoard.getField(i,j) == shiplength) number_of_elements++;
  156.  
  157. }
  158.  
  159. if(number_of_elements > 0) {
  160. System.out.println("Trafiony");
  161. } else {
  162. System.out.println("Zatopiony");
  163. }
  164. }
  165. else {
  166. System.out.println("Eluwa nie trafiłeś " + x + y);
  167. ShootingBoard.setField(x,y,'*');
  168. }
  169.  
  170.  
  171. } else {
  172. System.out.println("W to pole już strzelałeś");
  173. }
  174.  
  175. }
  176.  
  177. private boolean XYbelongsAB(int a, int b, int x, int y, int orient,int length){
  178. if(orient == 1){ //pionowa
  179.  
  180. for(int i = a; i < length; i++){
  181. if(i == x && y == b) return true;
  182. }
  183. } else { //pozioma
  184. for(int i = b; i < length; i++){
  185. if(x == a && i == y) return true;
  186. }
  187. }
  188.  
  189. return false;
  190. }
  191.  
  192. private boolean isFieldClear(int x, int y) {
  193.  
  194. if ((x > 10 || x < 0) || (y > 10 || y < 0)) System.out.println("Błędne współrzędne");
  195. else {
  196. if ((char) ShootingBoard.getField(x, y) == 'x' || (char) ShootingBoard.getField(x,y) == '*') return false;
  197. else return true;
  198. }
  199. return false;
  200. }
  201.  
  202. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement