Javascript实现一个冒险小游戏
由
Deepseek提供支持
广告
游戏的目标是探索整个岛屿,解开其隐藏的秘密,尽可能多地收集宝藏和物品。然后玩家需要谨慎决策,因为某些选择可能会导致健康值下降或错过重要的奖励。最终,玩家可以选择离开岛屿,结束冒险,或者继续探索,发现更多的神秘之处。
// 创建一个更丰富的文字冒险游戏
// 博客: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
温馨提示 : 非特殊注明,否则均为©李联华的博客网原创文章,本站文章未经授权禁止任何形式转载;来自:俄亥俄州·哥伦布 ,欢迎您的访问!
文章链接:https://www.lilianhua.com/javascript-implementation-of-an-adventure-mini-game.html
文章链接:https://www.lilianhua.com/javascript-implementation-of-an-adventure-mini-game.html
English (US)
Español (ES)
Português (PT)
Français (CA)
Español (MX)
Español (VE)
Español (CO)
Español (AR)
Português (BR)
Quechua (PE)
Guaraní (PY)
简体中文 (ZH)
繁體中文 (HK)
日本語 (JP)
한국어 (KR)
हिन्दी (HI)
Pilipino (PH)
ไทย (TH)
Tiếng Việt (VN)
Bahasa Melayu (MY)
Bahasa Indonesia (ID)
বাংলা (BD)
اردو (PK)
සිංහල (LK)
ភាសាខ្មែរ (KH)
English (UK)
Français (FR)
Deutsch (DE)
Italiano (IT)
Русский (RU)
Nederlands (NL)
Türkçe (TR)
Polski (PL)
Svenska (SE)
Norsk (NO)
Dansk (DK)
Suomi (FI)
Ελληνικά (GR)
Čeština (CZ)
Magyar (HU)
Română (RO)
Български (BG)
Српски (RS)
Українська (UA)

