Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Ship {
- private int size=0;
- private int vertical;
- private int gorizontal;
- private int direction;
- private int hp=0;
- private char[][] arr=new char[10][10];
- Ship(){}
- Ship(int size,int vertical,int gorizontal,int direction){
- this.size=size;
- this.vertical=vertical;
- this.gorizontal=gorizontal;
- this.direction=direction;
- this.hp=size;
- }
- boolean setShip(){ // arr[vertical][gorizontal]
- if(size>4){
- System.out.println("Длинна не может быть больше четырёх!");
- return false;}
- else if (size<0){
- System.out.println("Длинна не может быть меньше нуля!");
- return false;
- }
- else if(gorizontal>10||gorizontal<0){
- System.out.println("Выход за пределы строки!");
- return false;
- }
- else if(vertical>10||vertical<0){
- System.out.println("Выход за пределы столбца!");
- return false;
- }
- else{
- gorizontal--;
- vertical--;
- switch (direction) {
- case 1: //up
- if (vertical - size < -1) {
- System.out.println("Выход за пределы карты!");
- return false;
- }
- for (int i = vertical; i > vertical - size; i--) {
- arr[i][gorizontal] = 'B';
- }
- break;
- case 2: //down
- if (vertical + size > 10) {
- System.out.println("Выход за пределы карты!");
- return false;
- }
- for (int i = vertical; i < vertical + size; i++) {
- arr[i][gorizontal] = 'B';
- }
- break;
- case 3: //left
- if (gorizontal - size <-1) {
- System.out.println("Выход за пределы карты!");
- return false;
- }
- for (int i = gorizontal; i > gorizontal - size; i--) {
- arr[vertical][i] = 'B';
- }
- break;
- case 4: //right
- if (gorizontal + size > 10) {
- System.out.println("Выход за пределы карты!");
- return false;
- } else {
- for (int i = gorizontal; i < gorizontal + size; i++) {
- arr[vertical][i] = 'B';
- }
- break;
- }
- }
- }
- return true;
- }
- void printTable(){
- System.out.println("\t 1 2 3 4 5 6 7 8 9 10 ");
- System.out.println("\t------------------------------");
- for(int i=0;i<10;i++){
- if(i<9){
- System.out.print(" ");
- System.out.print(i+1+"| ");}
- else
- System.out.print(i+1+"| ");
- for(int j=0;j<10;j++){
- System.out.print(" "+arr[i][j]+" ");
- }
- System.out.println();
- }
- }
- boolean fire(int vertical,int gorizontal){
- if(gorizontal>10||gorizontal<0){
- System.out.println("Выход за пределы строки!");
- }
- else if(vertical>10||vertical<0){
- System.out.println("Выход за пределы столбца!");
- }
- gorizontal--;
- vertical--;
- if(arr[vertical][gorizontal]=='B'){
- System.out.println("Есть попадание!");
- arr[vertical][gorizontal]='X';
- hp--;
- printTable();
- if(hp==0){
- System.out.println("Корабль потоплен!");
- return false;
- }
- }
- else{
- System.out.println("Мазила!");
- arr[vertical][gorizontal]='O';
- printTable();
- }
- return true;
- }
- void clean() {
- for (int i = 0; i < 10; i++) {
- for (int j = 0; j < 10; j++) {
- arr[i][j] = 0;
- }
- }
- }
- }
- //'卐'
- import java.util.Scanner;
- public class Main {
- static Scanner scan;
- public static void main(String[] args) {
- Ship s;
- int size,ver,gor,dir,verf,gorf;
- System.out.println("\t 1 2 3 4 5 6 7 8 9 10 ");
- System.out.println("\t------------------------------");
- for(int i=0;i<10;i++){
- if(i<9){
- System.out.print(" ");
- System.out.print(i+1+"| ");}
- else
- System.out.print(i+1+"| ");
- for(int j=0;j<10;j++){
- System.out.print(" "+"0"+" ");
- }
- System.out.println();
- }
- do {
- System.out.println("Введите размер");
- size = scan.nextInt();
- System.out.println("Введите номер строки");
- ver = scan.nextInt();
- System.out.println("Введите номер столбца");
- gor = scan.nextInt();
- System.out.println("Введите направление корабля(Помните, корабль не должен выходить за пределы поля!)\n1: Вверх\n2: Вниз \n3: Влево \n4: Вправо");
- dir = scan.nextInt();
- s=new Ship(size,ver,gor,dir);
- }
- while (s.setShip()== false);
- s.printTable();
- System.out.println("Введите значение по вертикали и по горизонтали");
- verf=scan.nextInt();
- gorf=scan.nextInt();
- s.fire(verf,gorf);
- System.out.println("Введите значение по вертикали и по горизонтали");
- verf=scan.nextInt();
- gorf=scan.nextInt();
- s.fire(verf,gorf);
- System.out.println("Введите значение по вертикали и по горизонтали");
- verf=scan.nextInt();
- gorf=scan.nextInt();
- s.fire(verf,gorf);
- System.out.println("Введите значение по вертикали и по горизонтали");
- verf=scan.nextInt();
- gorf=scan.nextInt();
- s.fire(verf,gorf);
- System.out.println("Введите значение по вертикали и по горизонтали");
- verf=scan.nextInt();
- gorf=scan.nextInt();
- s.fire(verf,gorf);
- System.out.println("Введите значение по вертикали и по горизонтали");
- verf=scan.nextInt();
- gorf=scan.nextInt();
- s.fire(verf,gorf);
- s.clean();
- }
- static {
- scan = new Scanner(System.in);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement