import java.util.Random;
import java.util.Scanner;
class Main {
public static void main(String[] args) {
int yourLife = 20; //ваши жизни
int botLife = 20;
while (true) {
System.out.println("Выберите атаку: 1 - в голову, 2 - в корпус, 3 - в пояс, 4 - в ноги");
Scanner scanner = new Scanner(System.in);
int ataka = scanner.nextInt();
System.out.println("Выберите блок: 1 - защита головы и корпуса, 2 - в корпуса и пояса, 3 - в пояса и ног, 4 - защита ног и головы");
int blok = scanner.nextInt();
Random rnd = new Random(System.currentTimeMillis());
int botAtack = 1 + rnd.nextInt(4 - 1 + 1);
int botBlock = 1 + rnd.nextInt(4 - 1 + 1);
if (ataka==1 && botBlock==1 | botBlock==4) {System.out.println("Противник заблокировал удар");}
else if (ataka==2 && botBlock==1 | botBlock==2) {System.out.println("Противник заблокировал удар");}
else if (ataka==3 && botBlock==3 | botBlock==2) {System.out.println("Противник заблокировал удар");}
else if (ataka==4 && botBlock==3 | botBlock==4) {System.out.println("Противник заблокировал удар");}
else {botLife=botLife-3; System.out.println("Вы нанесли 3 урона. Жизней у противника - "+ botLife );
}
if (botAtack==1 && blok==1 | blok==4) {System.out.println("Вы заблокировали удар");}
else if (botAtack==2 && blok==1 | blok==2) {System.out.println("Вы заблокировали удар");}
else if (botAtack==3 && blok==3 | blok==2) {System.out.println("Вы заблокировали удар");}
else if (botAtack==4 && blok==3 | blok==4) {System.out.println("Вы заблокировали удар");}
else {yourLife=yourLife-3; System.out.println("Вам нанесли 3 урона. У Вас " + yourLife + " жизней");
if (yourLife <= 0){ System.out.println("Ты проиграл."); break;}
if (botLife <= 0){ System.out.println("Ты выйграл."); break;}
}
}
}
}
Как отметил ЮрийСПБ в комментариях, необходимо написать сервер и клиент. Вся игровая ситуация моделируется на сервере и её состояние сообщается клиентам. Клиенты же совершают свои ходы и отправляют их на сервер.
В случае с вашей игрой, достаточно будет, чтобы на сервере хранилось здоровье двух игроков. Каждый ход клиенты будут отсылать серверу по два числа: выбор атаки и выбор блока (можно оптимизировать и до одного числа, так как возможных комбинаций всего 9). Сервер, после приёма значений от обоих клиентов, просчитывает игровую ситуацию: удалось ли нанести урон и заблокировать атаку для каждого игрока. После этого отправляет результат хода игрокам и вновь ждёт данных от них, пока игра не закончится.
Можно реализовать, используя встроенные в Java библиотеки на ServerSocket и Socket. О них можете почитать в этой статье.
Возможно реализовать и без многопоточности, но тогда будет выглядеть, как будто интерфейс зависает. Просто по очереди опрашивать каждого клиента. Также сделать можно как в консольном виде, так и в графическом.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Имеется jsp страница, вызываемая двумя параметрами action(одна на оба параметра)Внутри нее хочу сделать два разных блока, в зависимости от пришедшего...
С помощью Firebase отправляю сообщение на телефон через Cloud MessagingВсе работает
Как сделать так, чтобы поля формы someForm превратились в get-параметры? Есть ли какой-то нормальный способ для этого?