Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Random;
- import java.util.Scanner;
- public class Game {
- private Board ShipsBoard;
- private Board ShootingBoard;
- private ArrayList<Ship> ships_on_board = new ArrayList<>();
- public Game(Board ShipsBoard, Board ShootingBoard){
- this.ShipsBoard = ShipsBoard;
- this.ShootingBoard = ShootingBoard;
- }
- public void SetShipsOnBoard(){
- Random random = new Random();
- int x = random.nextInt(10);
- int y = random.nextInt(10);
- int orient =random.nextInt(2);
- int field ='5';
- int takenFied ='8';
- int shipLenght=5;
- int poleZerowe='0';
- for(int j=0;j<5;j++){
- if(((int)ShipsBoard.getField(x,y) == poleZerowe) ) {
- if(orient==0){
- if(y>shipLenght) {
- while(y>shipLenght){
- y--;
- }
- for (int i = 0; i < shipLenght; i++) {
- if((int)ShipsBoard.getField(x,y+i)==0){
- ShipsBoard.setField(x , y+i, field);}
- else{break;}
- }
- //board.setField(x,y-1,takenFied);
- for(int i =0;i<shipLenght;i++){
- if((x+1)<ShipsBoard.getSize()){
- if((int)ShipsBoard.getField(x+1,y+i)==poleZerowe){
- ShipsBoard.setField(x+1,y+i,takenFied);}}
- if((x-1)>=0){
- if((int)ShipsBoard.getField(x-1,y+i)==poleZerowe){
- ShipsBoard.setField(x-1,y+i,takenFied);}}
- }
- //board.setField(x,y+shipLenght,takenFied);
- }
- else{
- for (int i = 0; i < shipLenght; i++) {
- if((int)ShipsBoard.getField(x,y+i)==poleZerowe){
- ShipsBoard.setField(x , y+i, field);}
- else{break;}
- }
- //board.setField(x,y-1,takenFied);
- for(int i =0;i<shipLenght;i++){
- if((x+1)<ShipsBoard.getSize()){
- if((int)ShipsBoard.getField(x+1,y+i)==poleZerowe){
- ShipsBoard.setField(x+1,y+i,takenFied);}}
- if((x-1)>=0){
- if((int)ShipsBoard.getField(x-1,y+i)==poleZerowe){
- ShipsBoard.setField(x-1,y+i,takenFied);}}
- }
- //board.setField(x,y+shipLenght,takenFied);
- }
- }
- else{
- if(x>shipLenght) {
- while(x>shipLenght){
- x--;
- }
- for (int i = 0; i < shipLenght; i++) {
- if((int)ShipsBoard.getField(x+i,y)==poleZerowe){
- ShipsBoard.setField(x+i , y, field);}
- else{break;}
- }//board.setField(x-1,y,takenFied);
- for(int i =0;i<shipLenght;i++){
- if((y+1)<ShipsBoard.getSize()){
- if((int)ShipsBoard.getField(x+i,y+1)==poleZerowe){
- ShipsBoard.setField(x+i,y+1,takenFied);}}
- if((y-1)>=0){
- if((int)ShipsBoard.getField(x+i,y-1)==poleZerowe){
- ShipsBoard.setField(x+i,y-1,takenFied);}}
- }
- //board.setField(x+field,y,takenFied);
- }
- else{
- for (int i = 0; i < shipLenght; i++) {
- if((int)ShipsBoard.getField(x+i,y)==poleZerowe){
- ShipsBoard.setField(x+i , y, field);}
- else{break;}
- }
- //board.setField(x-1,y,takenFied);
- for(int i =0;i<shipLenght;i++){
- if((y+1)<ShipsBoard.getSize()){
- if((int)ShipsBoard.getField(x+i,y+1)==poleZerowe){
- ShipsBoard.setField(x+i,y+1,takenFied);}}
- if((y-1)>=0){
- if((int)ShipsBoard.getField(x+i,y-1)==poleZerowe){
- ShipsBoard.setField(x+i,y-1,takenFied);}}
- }
- //board.setField(x+field,y,takenFied);
- }}
- }else{
- while(((int)ShipsBoard.getField(x,y) != poleZerowe) ){
- x = random.nextInt(10);
- y = random.nextInt(10);
- }}
- field--;
- orient=random.nextInt(2);
- x = random.nextInt(10);
- y = random.nextInt(10);
- shipLenght--;
- }
- ShipsBoard.printBoardpom();
- }
- public void ShootField(int x, int y) {
- int number_of_elements = 0;
- if(isFieldClear(x,y)) {
- if (ShipsBoard.getField(x,y) != '0' && ShipsBoard.getField(x,y) != '8') {
- int shiplength = ShipsBoard.getField(x,y);
- //Ship ship = ships_on_board.get(shiplength);
- ShootingBoard.setField(x,y,'x');
- for(int i = x; i < 10; i++)
- for(int j =y; j < 10; j++){
- if(ShipsBoard.getField(i,j) == shiplength) number_of_elements++;
- }
- if(number_of_elements > 0) {
- System.out.println("Trafiony");
- } else {
- System.out.println("Zatopiony");
- }
- }
- else {
- System.out.println("Eluwa nie trafiłeś " + x + y);
- ShootingBoard.setField(x,y,'*');
- }
- } else {
- System.out.println("W to pole już strzelałeś");
- }
- }
- private boolean XYbelongsAB(int a, int b, int x, int y, int orient,int length){
- if(orient == 1){ //pionowa
- for(int i = a; i < length; i++){
- if(i == x && y == b) return true;
- }
- } else { //pozioma
- for(int i = b; i < length; i++){
- if(x == a && i == y) return true;
- }
- }
- return false;
- }
- private boolean isFieldClear(int x, int y) {
- if ((x > 10 || x < 0) || (y > 10 || y < 0)) System.out.println("Błędne współrzędne");
- else {
- if ((char) ShootingBoard.getField(x, y) == 'x' || (char) ShootingBoard.getField(x,y) == '*') return false;
- else return true;
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement