基本文字格斗游戏

基本文字格斗游戏

我对javascript很陌生,所以如果我有点慢,请原谅我。我一直在寻找一种可以在控制台上运行的基本文字格斗游戏。这个想法是首先要求用户输入他们的角色名称。我打算使用此:

console.log("Character name:");
var character_name = prompt("Character name:");

我使用的是repl.it,因此prompt实际上并未打印出字符串“字符名称:”,这就是为什么我使用console.log在控制台中看到它的原因。

在给角色命名后,我希望他们能够从三个不同的类别中进行选择:向导,骑士,弓箭手。我将以类似的方式进行操作:
console.log("Please choose your class: wizard, knight, rogue");
var character_class = prompt("Please choose your class: wizard, knight, archer");

if (character_class == "wizard"){
    var my_hero = wizard;
} else if (character_class == "knight"){
    var my_hero = knight;
} else (character_class == "archer");{
    var my_hero = archer;
}

var wizard = new Character(character_name,"wizard",50,15,8,10);
var knight = new Character(character_name,"knight",100,5,3,20);
var archer = new Character(character_name,"archer",75,7,5,25);

function Character(name,characterClass,health,damage,heal,dodge){
    this.name = name,
    this.characterClass = characterClass,
    this.health = health,
    this.damage = damage,
    this.heal = heal,
    this.dodge = dodge;
}

console.log(my_hero)

因此,我想做的是在“角色创建”阶段结束时,我希望能够调用my_hero并查看其统计信息。但是,当我执行此操作时,它将显示弓箭手的统计信息,如果选择的话,则不会显示向导/骑士的统计信息。这是我在控制台中看到的内容:
Character name:
 napp
Please choose your class: wizard, knight, archer
 wizard
{ name: 'napp', characterClass: 'archer', health: 75, damage: 7, heal: 5, dodge: 25 }

请记住,我是新手,随着更多问题的出现,此帖子可能会更改。感谢您的耐心配合,我们欢迎所有提示/建议。如果有更好的方法可以做到这一点,请不要犹豫。

最佳答案

我会选择构造器方法,但是更像这样

var Gandalf = new Character("Gandalf", "wizzard", 50, 15, 8);

function Character(name, characterClass, health, damage, heal){
    this.name = name,
    this.characterClass = characterClass,
    this.health = health,
    this.damage = damage,
    this.heal = heal,
    this.dodge = Math.random() * 100 + 1;
}

08-15 18:45