我正在尝试使用我的小技巧来制作一个非常简单的文字游戏。我无法使用while循环来工作。这可能是一个非常简单的解决方案,但我无法弄清楚。
我什至尝试了“ while(true)”,并创建一个布尔值并将其设置为true。如果删除while循环,则需要运行的部分可以正常运行。
我希望这种循环继续下去,直到敌人的健康状况低于1。对于我的经验不足,我感到非常抱歉,我是java和这个网站的新手。
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
import java.util.concurrent.TimeUnit;
public class MainGame {
public static void main(String[] args) throws Exception {
AgeVerify AgeObject = new AgeVerify();
AgeObject.ageV();
// attacking, drinking health potion, updating variables
// random enemy
String goblin = new String("goblin");
String skeleton = new String("skeleton");
String witch = new String("witch");
List<String> list = new ArrayList<String>();
list.add(goblin);
list.add(skeleton);
list.add(witch);
RandomEnemy obj = new RandomEnemy();
for(int i = 0; i < 1;) {
// ints/ player
int HPPOTINC = 25;
int HPPOTRM = 5;
int updatedHPPOTRM = 0;
int PlayerHealth = 100;
Random ran = new Random();
int SwordDMG = ran.nextInt(12);
String enemy = ran.toString();
SwordDMG += 5;
int eaction = 0;
int enemyupdatedhealth = 100;
int enemyhealth = 1;
int enemydmg = 0;
int updatedhealth = 0;
// monsters
int goblinHP = 25;
int goblinDMG = ran.nextInt(10);
goblinDMG += 5;
int skeletonHP = 35;
int skeletonDMG = ran.nextInt(15);
skeletonDMG += 8;
int witchHP = 50;
int witchDMG = ran.nextInt(30);
witchDMG += 20;
// automated text/ assigning
String autoA = new String("1-Attack\n2-Drink Health Potion\n3-Run Away ");
String auto = new String("1- Wander\n2- view stats\n3- exit game");
String autoW = new String("You have wandered and found a ");
Scanner autoi = new Scanner(System.in);
int autoint = 0;
//game
System.out.println("What is your name?");
Scanner scanN = new Scanner(System.in);
String name = scanN.nextLine();
System.out.println(""
+ "Hello, " + name + "!");
System.out.println("Would you like to start?\n1- Yes! 2- Exit.");
int YN = scanN.nextInt();
if (YN == 2) {
System.exit(0);
}
jump:
TimeUnit.MILLISECONDS.sleep(500);
System.out.println("Hello, " + name + " please select an action!");
System.out.println(auto);
autoint = autoi.nextInt();
if (autoint == 2) {
System.out.println("Health potions remaining: " + HPPOTRM );
System.out.println("Health points: " + PlayerHealth + "\n");
TimeUnit.SECONDS.sleep(2);
} else if (autoint == 3) {
System.out.println("Thanks for playing!");
TimeUnit.SECONDS.sleep(2);
System.exit(0);
}
if (autoint == 1) {
System.out.println(autoW + obj.getRandomList(list) + "!\n");
TimeUnit.MICROSECONDS.sleep(500);
System.out.println(autoA);
eaction = scanN.nextInt();
if (obj.getRandomList(list) == goblin); {
enemyhealth = goblinHP;
enemydmg = goblinDMG;
if (obj.getRandomList(list) == skeleton); {
enemyhealth = skeletonHP;
enemydmg = skeletonDMG;
if (obj.getRandomList(list) == witch); {
enemyhealth = witchHP;
enemydmg = witchDMG;
}
if (eaction == 1); {
enemyupdatedhealth = 5;
while(enemyupdatedhealth > 1);
{
enemyupdatedhealth = (enemyhealth - SwordDMG);
System.out.println("You have attacked dealing " + SwordDMG + ". The " + obj.getRandomList(list) + " has " + enemyupdatedhealth + " health remaining");
}
}```
答案 0 :(得分:-1)
我认为您应该在String enemy = obj.getRandomList(list)
之后创建一个变量if (autoint == 1)
因为当您稍后执行此操作时
if (obj.getRandomList(list) == goblin)
(实际上您在其中应使用removed
的分号)
它可能会返回另一个敌人。
如果我认错了,这里是固定的if (autoint == 1)
,请纠正我。
if (autoint == 1) {
String enemy = obj.getRandomList(list) ;
System.out.println(autoW + enemy + "!\n");
TimeUnit.MICROSECONDS.sleep(500);
System.out.println(autoA);
eaction = scanN.nextInt();
//actions depending on the enemy
if (enemy == goblin) {
enemyhealth = goblinHP;
enemydmg = goblinDMG;
} else if (enemy == skeleton) {
enemyhealth = skeletonHP;
enemydmg = skeletonDMG;
}else if (enemy == witch) {
enemyhealth = witchHP;
enemydmg = witchDMG;
}
//action if attack
if (eaction == 1){
enemyupdatedhealth = 5;
while(enemyupdatedhealth > 1) {
enemyupdatedhealth = (enemyhealth - SwordDMG);
System.out.println("You have attacked dealing " + SwordDMG + ". The " + obj.getRandomList(list) + " has " + enemyupdatedhealth + " health remaining");
}
}
当我输入内容时,我发现您遇到了严重的问题;和{}。该修补程序的while循环应该没有问题。 我坚持要您告诉我,如果我说正确的功能是否正确,因为我会说西班牙语,也许是我做错了方法。