;} break; 3: if ((y> 0) && (! kletka [x] [y-1] -> Vistrel_ili_net ())) y -; {y = y + kol_raneniy; a = 2;} break;
}
} [x] [y] -> Vistrel_v_kletku (1); (int i = 0; i <10; i + +) if (ship [i] -> Vistrel (x +1 , y +1)) {(ship [i] -> Ranenie ()) {//убитий [i] -> Rasstanovka (kletka); [i] -> Vistrel_v_kletkus (kletka); _raneniy = 0, 0 ;
} {kletka [x] [y] -> Korabl_v_kletku (2); kol_raneniy + +; return 1;}// поранений
} (kol_raneniy) {x = xn; y = yn;}
return 2;// повз
}
/* Створює кораблі і розміщує їх на поле */
void New_Korabl (Kor_potomok * ship [10], Kletka * kletka [10] [10], int kol_raneniy) {(int k = 0; k <10; k + +) {Razmer, x, y, Polojenie, b; (0 == k) Razmer = 4; if ((1 == k) | | (2 == k)) Razmer = 3; if ((3 <= k) && (5> = k)) Razmer = 2; Razmer = 1; {= random (10) + 1; y = random (10) + 1; Polojenie = random (2); xm, ym; b = 0; ( Polojenie) {xm = x + Razmer; ym = y;} {xm = x; ym = y + Razmer;} (int i = x; i <= xm; i + +) {(int j = y; j < = ym; j + +) {((i> 10) | | (j> 10)) {b = 1; break;} (! ((i <1) | | (i> 10) | | ( j <1) | | (j> 10))) {(b = kletka [i-1] [j-1] -> Pustaya_ili_net ()) break;}
} (b) break;
}
} while (b); [k] = new Kor_potomok (Razmer, x, y, Polojenie); [k] -> Rasstanovka (kletka);
} (! kol_raneniy) for (int i = 0; i <= 9; i + +) (int j = 0; j <= 9; j + +) kletka [i] [j] - > Korabl_v_kletku (0);
return;
}
Додаток 2 (результат виконання програми)
В
Малюнок 1. Початкова розстановка кораблів
В
Малюнок 2. Перше поранення
В
Малюнок 3. Перший вбитий корабель комп'ютера
В
Малюнок 4. Перший вбитий корабель гравця
В
Малюнок 5. Гравець програв
В
Малюнок 6. Гравець виграв