探索Vue.js的无限可能 —— vuejs-challenges
<template>
<div id="app">
<h1>Vue.js 游戏:数字猜谜游戏</h1>
<div v-if="!isGameOver">
<p>猜猜看:我想的是哪个位于 1 到 100 之间的数字?</p>
<input type="number" v-model.number="userGuess">
<button @click="checkGuess">提交猜测</button>
</div>
<div v-else>
<h2 v-if="isWinner">恭喜你,猜中了!</h2>
<h2 v-else>真遗憾,你没有猜中。正确的数字是:{{ secretNumber }}</h2>
<button @click="startNewGame">开始新游戏</button>
</div>
</div>
</template>
<script>
export default {
name: 'App',
data() {
return {
secretNumber: Math.floor(Math.random() * 100) + 1,
userGuess: null,
isGameOver: false,
maxTries: 7,
tries: 0,
};
},
computed: {
isWinner() {
return this.userGuess === this.secretNumber;
}
},
methods: {
checkGuess() {
this.tries += 1;
if (this.tries <= this.maxTries) {
if (this.isWinner) {
this.isGameOver = true;
} else if (this.userGuess > this.secretNumber) {
alert('猜测的数字大了!');
} else {
alert('猜测的数字小了!');
}
} else {
this.isGameOver = true;
alert('抱歉,次数用尽。');
}
},
startNewGame() {
this.secretNumber = Math.floor(Math.random() * 100) + 1;
this.userGuess = null;
this.tries = 0;
this.isGameOver = false;
}
}
};
</script>
<style>
#app {
text-align: center;
margin-top: 60px;
}
input {
margin: 10px;
padding: 5px;
font-size: 20px;
}
button {
margin: 10px;
padding: 10px;
font-size: 20px;
}
</style>
这段代码实现了一个简单的数字猜谜游戏。用户有7次机会来猜测一个位于1到100之间的随机数字,每次猜测后,应用会提示用户猜测的结果是大了还是小了。如果用户猜中了数字,或者次数用尽,游戏结束,用户可以选择开始一个新的游戏。这个游戏的核心功能包括随机数生成、用户猜测的记录、输胜/失败的判定,以及游戏状态的控制。
评论已关闭