第一问
- 对打游戏
- 有两个人,下称玩家
- 每个人都有血值
- 有攻击力
- 没有防御力
- 有名字
- 可以互相对打
- 游戏开始,双方互殴,你一下我一下,直到一人死亡,打印出xx被打败了。
- 只需要写核心逻辑,不需要考虑界面。
要解决这个问题,实现方式有很多种,实现的环境也可以很不同。这里我使用了js最简便的方式来解决这个问题。即直接使用一个html页面来承载js逻辑代码,通过浏览器运行。
新建一个html网页,在页面上添加一个按钮,用于控制游戏的开始。
<body>
<button id="start">开始游戏</button>
</body>
设置页面dom元素加载完成后才执行js逻辑代码
<script>
window.onload = function(){
};
</script>
按照题目要求创建玩家类,并提供攻打的方法
<script>
window.onload = function(){
function Player(name){
this.name = name;
this.blood_values = 100;
this.attack = parseInt(Math.random()*20);
}
Player.prototype.fight = function(player){
player.blood_values -= this.attack;
};
};
</script>
给页面按钮元素添加点击方法:
var start = document.getElementById('start');
start.onclick = function(){
};
按照要求,游戏开始,玩家开始互相殴打,一人一下,直到一人死亡。那么就是说,只要两个人的血值都大于零,就要一直互相殴打。并且任何一个玩家在殴打另一个玩家之前都需要进行判断他自己是否已经死亡,只有在没有死亡的情况下才能殴打他人。实现代码如下:
start.onclick = function(){
var player1 = new Player("张三"),
player2 = new Player("李四");
while(player1.blood_values > 0 && player2.blood_values > 0){
if(player1.blood_values > 0){
player1.fight(player2);
}
if(player2.blood_values > 0){
player2.fight(player1);
}
}
};
当其中一个玩家死亡,推出殴打环节是,我们需要判断是那个玩家死亡,并在控制台输出对应玩家失败的信息。可以通过直接判断玩家血值实现:
if(player1.blood_values <= 0){
console.log(player1.name + "被打败了!");
}
if(player2.blood_values <= 0){
console.log(player2.name + "被打败了!")
}
效果如图: