Javascript实现一个冒险小游戏
游戏的目标是探索整个岛屿,解开其隐藏的秘密,尽可能多地收集宝藏和物品。然后玩家需要谨慎决策,因为某些选择可能会导致健康值下降或错过重要的奖励。最终,玩家可以选择离开岛屿,结束冒险,或者继续探索,发现更多的神秘之处。
// 创建一个更丰富的文字冒险游戏
// 博客:ooize.com
// 定义玩家对象
const player = {
name: '',
health: 100,
items: [],
location: '起始点'
};
// 欢迎玩家
alert('欢迎来到神秘岛屿的冒险!');
// 获取玩家姓名
player.name = prompt('请输入你的名字:');
// 开始冒险
alert(`你好,${player.name}!你发现自己置身于一个神秘的岛屿上。`);
// 主游戏循环
while (player.health > 0) {
const choice = prompt(`你现在在${player.location},你想要做什么?(探索/休息/离开)`).toLowerCase();
switch (choice) {
case '探索':
explore();
break;
case '休息':
rest();
break;
case '离开':
leave();
break;
default:
alert('无效的选择,请重新输入。');
}
}
// 探索函数
function explore() {
const encounter = Math.random();
if (encounter < 0.3) {
// 发现物品
const foundItem = prompt('你发现了一件神秘的物品!是否要捡起它?(是/否)').toLowerCase();
if (foundItem === '是') {
const item = generateItem();
player.items.push(item);
alert(`你捡起了${item}!`);
} else {
alert('你决定不捡起物品。');
}
} else if (encounter < 0.6) {
// 遭遇怪物
const damage = Math.floor(Math.random() * 30) + 10;
player.health -= damage;
alert(`你遭遇了一只怪物,你受到了${damage}点伤害!你现在的健康值为${player.health}。`);
} else {
// 探索事件
const event = Math.random();
if (event < 0.2) {
exploreMaze();
} else if (event < 0.4) {
communicateWithNatives();
} else if (event < 0.6) {
solvePuzzle();
} else if (event < 0.7) {
visitWitch();
} else if (event < 0.8) {
findTreasure();
} else if (event < 0.9) {
fightDragon();
} else {
exploreCave();
}
}
}
// 探索迷宫
function exploreMaze() {
player.location = '迷宫';
alert('你发现了一个神秘的迷宫,你决定进去探索。');
const success = Math.random() < 0.5; // 50%的成功率
if (success) {
alert('你成功地走出了迷宫,并发现了一处隐藏的宝藏!');
const coins = Math.floor(Math.random() * 50) + 10;
player.items.push(`${coins} 金币`);
} else {
alert('你在迷宫中迷失了方向,费尽九牛二虎之力才最终找到出口,但什么都没有发现。');
}
player.location = '迷宫入口';
}
// 与原住民交流
function communicateWithNatives() {
player.location = '原住民村落';
alert('你遇到了岛上的原住民,他们似乎友好且乐意与你交流。');
const trade = prompt('他们提议与你交换一些东西,你愿意吗?(是/否)').toLowerCase();
if (trade === '是') {
alert('你与原住民进行了交易,并获得了一些有用的物品!');
const item = generateItem();
player.items.push(item);
alert(`你获得了${item}!`);
} else {
alert('你决定不进行交易。');
}
player.location = '原住民村落';
}
// 解谜
function solvePuzzle() {
player.location = '神秘遗迹';
alert('你发现了一处古老的遗迹,上面刻着一个神秘的谜题。');
const answer = prompt('你能解开这个谜题吗?请输入你的答案:');
if (answer.toLowerCase() === '秘密') {
alert('恭喜你,你成功解开了谜题,并获得了一件神秘的宝物!');
const item = generateItem();
player.items.push(item);
alert(`你获得了${item}!`);
} else {
alert('很遗憾,你的答案是错误的。');
}
player.location = '神秘遗迹';
}
// 拜访女巫
function visitWitch() {
player.location = '女巫小屋';
alert('你找到了一个隐藏在树林中的小屋,里面住着一位神秘的女巫。');
const potion = prompt('女巫提供给你一瓶神秘的药水,你想要喝吗?(是/否)').toLowerCase();
if (potion === '是') {
const healing = Math.floor(Math.random() * 30) + 10;
player.health += healing;
alert(`你喝下了药水,感觉身体得到了治愈,你的健康值增加了${healing}点!你现在的健康值为${player.health}。`);
} else {
alert('你拒绝了女巫的药水。');
}
player.location = '女巫小屋';
}
// 发现宝藏
function findTreasure() {
player.location = '宝藏地点';
alert('你发现了一个隐藏的宝藏地点,里面有丰富的财宝!');
const coins = Math.floor(Math.random() * 100) + 50;
player.items.push(`${coins} 金币`);
alert(`你获得了${coins} 金币!`);
player.location = '宝藏地点';
}
// 与龙战斗
function fightDragon() {
player.location = '龙穴';
alert('你勇敢地进入了龙的巢穴,准备与它一决生死!');
const dragonHealth = 200;
let dragonAttack = Math.floor(Math.random() * 50) + 20;
while (player.health > 0 && dragonHealth > 0) {
const playerAttack = Math.floor(Math.random() * 30) + 10;
dragonHealth -= playerAttack;
if (dragonHealth <= 0) {
alert('你成功地击败了恶龙,夺得了宝藏!');
const treasure = generateItem();
player.items.push(treasure);
alert(`你获得了${treasure}!`);
break;
}
player.health -= dragonAttack;
alert(`你受到了龙的攻击,受到了${dragonAttack}点伤害!你的健康值为${player.health}。`);
}
if (player.health <= 0) {
alert('你被龙击败了,冒险结束。');
}
player.location = '龙穴';
}
// 探索洞穴
function exploreCave() {
player.location = '洞穴';
alert('你发现了一个深邃的洞穴,里面似乎隐藏着一些秘密。');
const event = Math.random();
if (event < 0.5) {
alert('你在洞穴中发现了一个神秘的宝箱,里面有丰富的财宝!');
const coins = Math.floor(Math.random() * 50) + 20;
player.items.push(`${coins} 金币`);
alert(`你获得了${coins} 金币!`);
} else {
alert('你不小心触发了洞穴中的陷阱,受到了一些伤害。');
const damage = Math.floor(Math.random() * 30) + 10;
player.health -= damage;
alert(`你受到了${damage}点伤害!你的健康值为${player.health}。`);
}
player.location = '洞穴';
}
// 休息函数
function rest() {
player.location = '安全地点';
const healing = Math.floor(Math.random() * 30) + 10;
player.health += healing;
alert(`你找到了一个安全的地方休息,你的健康值恢复了${healing}点!你现在的健康值为${player.health}。`);
player.location = '安全地点';
}
// 离开函数
function leave() {
const decision = prompt('你确定要离开这个神秘的岛屿吗?(是/否)').toLowerCase();
if (decision === '是') {
alert('你离开了岛屿,冒险结束。');
player.health = 0; // 结束游戏循环
} else {
alert('你决定留在岛上继续探险。');
}
}
// 生成随机物品
function generateItem() {
const items = ['魔法药水', '宝藏地图', '魔法武器', '神秘护身符', '古老的奇石', '龙之鳞片'];
const randomIndex = Math.floor(Math.random() * items.length);
return items[randomIndex];
}
演示:
https://demo.8i5.net/tanxian.html
温馨提示 : 非特殊注明,否则均为©李联华的博客网原创文章,本站文章未经授权禁止任何形式转载;IP地址:3.142.194.55,归属地:俄亥俄州Dublin ,欢迎您的访问!
文章链接:https://www.ooize.com/javascript-implementation-of-an-adventure-mini-game.html
文章链接:https://www.ooize.com/javascript-implementation-of-an-adventure-mini-game.html