gpt4 book ai didi

javascript - 基于文本的rpg javascript练习项目

转载 作者:行者123 更新时间:2023-11-30 16:59:31 25 4
gpt4 key购买 nike

我被告知制作游戏是学习如何正确使用 javascript 的好方法,所以我开始了一个游戏,到目前为止,玩家会被提示创建一个英雄,然后根据其英雄为其分配属性type(magerouge, necromancer, warlock, or shaman) 但是,当我开始分配属性时,它总是说用户选择了一个死灵法师,无论他实际选择了什么类别。所以简而言之,我的函数“defaultAssign”出了点问题。我希望我正确地发布了这个问题,如果我发布不正确,请告诉我,以便我可以尝试修复它,这是我的第一个问题。这是我的代码:

var heroArray = [];

var yourHero ="";

var hero = {
characterType:"",
Damage:0,
Health:0,
Mana:0,
ManaRegenRate:0,
HealthRegenRate:0,
SpecialSkills:[]
};

var mainMenu = function(){

var nameCheck = prompt("What is your Character's Name?").toUpperCase() ;
for( var i = 0;i <= heroArray.length ; i++){

if (nameCheck === heroArray[i]){
alert("We have found your hero change this string later");
runGame(heroArray[i]);
}


else{

alert("You Must Create a Champion");
var heroName = prompt("What Will You Name Your Sorcerer!").toUpperCase;
characterCreator(heroName);
/*use a loop with a regular expression here to check if the name is avalible, if it is countinue, if not
prompt the user for another name
*/
}
/* run "gameSave" for particular hero
Run the main Game function and print to the console:
"Ah yes "+yourHerosNameHere+"," +hisOrHer+" tale echoes far and wide. We last spoke of his journey to"
+insertCurrentCityHere+" where "+heOrShe+" "mostRecentAction"."

*/
}
}

var characterCreator = function(yourHero){
yourHero = Object.create(hero);
yourHero.characterType = prompt("Choose your Character Type:\n"+
"MageRouge\n"+
"Warlock\n"+
"Shaman\n"+
"Necromancer").toUpperCase;
defaultAssign(yourHero.characterType)
}

function defaultAssign(playersType){


for (var j = 0 ; j <= 3 ; j++){
if (playersType === "MAGEROUGE"){

yourHero.Damage=25;
yourHero.Health=50;
yourHero.Mana=15;
yourHero.ManaRegenRate=1;
yourHero.HealthRegenRate=0.4;
yourHero.SpecialSkills=[["pickpocket",],["sneak",],["lockpick",]];

alert("Ahha a powerful Magerouge, choose your skills emphasis wisely,"
+" it could determine your Destiny...");
skillAssigner(yourHero);
break;
}
if(playersType === "WARLOCK"){

yourHero.Damage=50;
yourHero.Health=50;
yourHero.Mana=25;
yourHero.ManaRegenRate=0.6;
yourHero.HealthRegenRate=0.3;
yourHero.SpecialSkills=[["summonDemon",0],["bindDemon",0],["portal",0],["illusion",0]];

alert("Ahha a powerful Warlock, choose your skills emphasis wisely,"
+"it could determine your Destiny...");
skillAssigner(yourHero);
break;
}

if(playersType === "SHAMAN"){

yourHero.Damage=40;
yourHero.Health=50;
yourHero.Mana=30;
yourHero.ManaRegenRate=0;
yourHero.HealthRegenRate=0.6;
yourHero.SpecialSkills=[["weatherControl",0],["heal",0],["astralProjection",0]]

alert("Ahha a powerful Shaman choose your skills emphasis wisely,"
+"it could determine your Destiny...");
skillAssigner(yourHero);
break;
}

else if(playersType === "NECROMANCER") {

yourHero.Damage=60;
yourHero.Health=50;
yourHero.Mana=20;
yourHero.ManaRegenRate=0.8;
yourHero.HealthRegenRate=0.4;
yourHero.SpecialSkills=[["raiseDead",0],["petrify",0],["soulSap",0]];

alert("Ahha a powerful Necromancer choose your skills emphasis wisely,"
+"it could determine your Destiny...");

skillAssigner(yourHero);

break;

}

}

}
/*
create an array of hometowns for the main character to choose from

*/


function skillAssigner(yourHero){

for (var s = 0;s<3;s++){
var p = 0;
while( p < 10 ){
var n = prompt("How many points will you spend on "+yourHero.SpecialSkills[s]+"?");
yourHero.SpecialSkills[s][1] = n;
p +=n;
}
}
}



mainMenu();

最佳答案

在检查玩家类型是否为死灵法师的行中去掉 else。没有必要。

for 循环在函数 defaultAssign 中不是必需的(随着它的移除,break 也不是。)

最后,toUpperCase 是一个函数,因此您必须用括号调用它,toUpperCase()

解决这些问题会让您的代码正常工作。

您应该努力格式化您的代码(或找一个为您做这件事的编辑器)以提高它的可读性——这将帮助您发现错误。

关于javascript - 基于文本的rpg javascript练习项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29136002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com