当前位置: 首页 > wzjs >正文

网站建设的市场有多大郑州睿网站建设

网站建设的市场有多大,郑州睿网站建设,手表网站制作模板,做去自己的网站首页说明:我希望用vue实现猜词游戏 Vue Wordle 游戏规则总结 ​核心规则 ​单词选择 目标单词从预设词库(DEFAULT_WORDS)中随机选取,均为5字母单词(如apple、zebra等)。 ​输入要求 ​长度限制:必须…

说明:我希望用vue实现猜词游戏
Vue Wordle 游戏规则总结

​核心规则
​单词选择
目标单词从预设词库(DEFAULT_WORDS)中随机选取,均为5字母单词(如apple、zebra等)。
​输入要求
​长度限制:必须输入恰好5个字母
​有效性验证:单词需存在于预设词库中
​输入方式:通过文本输入框输入,按回车键提交
​尝试次数
最多允许 ​6次猜测,用尽后游戏失败。
​颜色反馈机制
每个字母根据匹配状态显示不同颜色:
​绿色:字母位置完全正确
​黄色:字母存在但位置错误
​灰色:字母不在目标单词中
效果图:
在这里插入图片描述

step1:C:\Users\wangrusheng\PycharmProjects\untitled3\src\views\Wordle.vue

<template><div class="container"><div v-if="!gameStarted" class="start-screen"><button class="start-btn" @click="startGame">Start New Game</button></div><div v-else><div class="game-board"><div v-for="(guess, index) in guesses" :key="index" class="guess-row"><divv-for="(char, charIndex) in guess.chars":key="charIndex":class="['char-box', colorClass(guess.results[charIndex])]">{{ char }}</div></div></div><div v-if="!gameOver" class="input-area"><inputv-model="currentGuess"@keyup.enter="submitGuess"maxlength="5"placeholder="Enter 5-letter word"class="guess-input"autocomplete="off"/><p v-if="message" class="message">{{ message }}</p></div><div v-else class="game-over"><h3 v-if="isWin" class="result-text">🎉 Congratulations! You won!</h3><h3 v-else class="result-text">😞 Game Over! The word was: {{ targetWord.toUpperCase() }}</h3><button class="play-again-btn" @click="startGame">Play Again</button></div></div></div>
</template><script setup>
import { ref, reactive } from 'vue'const DEFAULT_WORDS = ['apple', 'brain', 'chair', 'dance', 'earth','flame', 'grape', 'happy', 'igloo', 'jelly','koala', 'lemon', 'music', 'noble', 'ocean','piano', 'quiet', 'river', 'smile', 'tiger','urban', 'vivid', 'water', 'xenon', 'yacht', 'zebra'
]// 游戏状态
const gameStarted = ref(false)
const gameOver = ref(false)
const isWin = ref(false)
const currentGuess = ref('')
const guesses = reactive([])
const message = ref('')// 游戏数据
const targetWord = ref('')
const words = ref(DEFAULT_WORDS)const COLOR = {GREEN: 'green',YELLOW: 'yellow',GRAY: 'gray'
}const startGame = () => {gameStarted.value = truegameOver.value = falseisWin.value = falsecurrentGuess.value = ''guesses.splice(0)message.value = ''targetWord.value = words.value[Math.floor(Math.random() * words.value.length)]
}const colorClass = (result) => ({[COLOR.GREEN]: result === COLOR.GREEN,[COLOR.YELLOW]: result === COLOR.YELLOW,[COLOR.GRAY]: result === COLOR.GRAY
})const validateWord = (word) => words.value.includes(word.toLowerCase())const calculateResults = (guess) => {const results = Array(5).fill(COLOR.GRAY)const targetChars = [...targetWord.value]const guessChars = [...guess]// 第一遍检查正确位置(绿色)guessChars.forEach((char, i) => {if (char === targetChars[i]) {results[i] = COLOR.GREENtargetChars[i] = null}})// 第二遍检查存在但位置错误(黄色)guessChars.forEach((char, i) => {if (results[i] !== COLOR.GREEN) {const foundIndex = targetChars.findIndex(c => c === char)if (foundIndex > -1) {results[i] = COLOR.YELLOWtargetChars[foundIndex] = null}}})return results
}const submitGuess = () => {const guess = currentGuess.value.toLowerCase().trim()if (guess.length !== 5) {message.value = 'Word must be 5 letters'return}if (!validateWord(guess)) {message.value = 'Not in word list'return}message.value = ''const results = calculateResults(guess)guesses.push({chars: [...guess.toUpperCase()],results})// 检查胜利条件if (results.every(r => r === COLOR.GREEN)) {isWin.value = truegameOver.value = true} else if (guesses.length >= 6) {gameOver.value = true}currentGuess.value = ''
}
</script><style scoped>
.container {max-width: 600px;margin: 2rem auto;padding: 2rem;background: #f8f9fa;border-radius: 16px;box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);font-family: 'Arial', sans-serif;
}h1 {color: #2c3e50;margin-bottom: 2rem;font-size: 2.5rem;text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
}.game-board {background: white;padding: 1.5rem;border-radius: 12px;box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);margin: 1.5rem 0;
}.guess-row {display: flex;justify-content: center;gap: 0.75rem;margin: 0.75rem 0;
}.char-box {width: 60px;height: 60px;border: 2px solid #d3d6da;border-radius: 10px;display: flex;align-items: center;justify-content: center;font-size: 2rem;font-weight: bold;background: white;transition: all 0.3s ease;box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}.char-box.green {background: #6aaa64;border-color: #6aaa64;color: white;
}.char-box.yellow {background: #c9b458;border-color: #c9b458;color: white;
}.char-box.gray {background: #787c7e;border-color: #787c7e;color: white;
}.input-area {margin: 2rem 0;
}.guess-input {padding: 1rem;font-size: 1.2rem;border: 2px solid #d3d6da;border-radius: 8px;width: 220px;text-align: center;transition: all 0.3s ease;text-transform: lowercase;
}.guess-input:focus {outline: none;border-color: #6aaa64;box-shadow: 0 0 8px rgba(106, 170, 100, 0.3);
}button {padding: 1rem 2rem;font-size: 1.1rem;border: none;border-radius: 8px;cursor: pointer;background: #4a90e2;color: white;transition: all 0.2s ease;box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}button:hover {background: #357abd;transform: translateY(-2px);box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}.start-btn {background: #6aaa64;
}.start-btn:hover {background: #5a9c54;
}.message {color: #e74c3c;margin-top: 1rem;font-weight: 500;min-height: 1.5rem;
}.game-over {margin-top: 2rem;padding: 1.5rem;background: white;border-radius: 12px;box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
}.result-text {margin: 1rem 0;color: #2c3e50;font-size: 1.2rem;
}.play-again-btn {background: #6aaa64;margin-top: 1rem;
}.play-again-btn:hover {background: #5a9c54;
}
</style>

end


文章转载自:

http://dJiT9P52.jwncx.cn
http://pOluyHox.jwncx.cn
http://d9frMJ9v.jwncx.cn
http://deh3gfiV.jwncx.cn
http://gnPRB31g.jwncx.cn
http://mqpZtPk7.jwncx.cn
http://qXelk0hk.jwncx.cn
http://L4nUGiZR.jwncx.cn
http://EkdOJ7Mv.jwncx.cn
http://bUQiHakH.jwncx.cn
http://7Lmm5esO.jwncx.cn
http://hwZWIeWo.jwncx.cn
http://LivYRHI7.jwncx.cn
http://eXuOQgEc.jwncx.cn
http://Gs0N5S2a.jwncx.cn
http://B9cCJgMo.jwncx.cn
http://ODJgqHVL.jwncx.cn
http://jJiNTvok.jwncx.cn
http://s41k72v3.jwncx.cn
http://e2uVAghc.jwncx.cn
http://ZdF1GOuq.jwncx.cn
http://TMIzzjFM.jwncx.cn
http://wmZdSBaQ.jwncx.cn
http://51KLjnFz.jwncx.cn
http://InQkaJzS.jwncx.cn
http://Kmc9GUVI.jwncx.cn
http://O0NUNnJw.jwncx.cn
http://olga3z9x.jwncx.cn
http://o7ivf4pg.jwncx.cn
http://Wav5Mx1Z.jwncx.cn
http://www.dtcms.com/wzjs/767302.html

相关文章:

  • 临沂网站建设制作广州网站公司制作网站
  • 房屋装修设计网站网站开发亿玛酷给力5
  • 刚做的单页网站怎么预览如何做x响应式网站
  • 网站建设基本流程公司网站自己可做吗
  • 企业网站建站之星Fastcgi做网站
  • 个人网站怎么做扫码支付免费素材库网
  • 行政机关网站建设广告公司取名字大全免费查询
  • 开通网站运营商备案做网站资源
  • 重庆企业建站模板朝阳区手机网站设计服务
  • 广东省建设工程监督站官方网站双城网站建设公司
  • 做外贸网站要什么条件wordpress程序 wp
  • 合肥网站推广石柱网站建设
  • 做经销找厂家好的网站网站建设备案是什么
  • 网站维护技术seowhy
  • 四站合一网站建设南京网站制作链接
  • 效果建网站的公老外做的中国汉字网站
  • 网站基础功能介绍企业网站模板 免费
  • asp网站例子有文化内涵又高雅的公司名字
  • 广东省住房和城乡建设厅网站 粤建网国内知名广告公司有哪些
  • 郑州网站建设公司排名wordpress 主题介绍
  • 机电网站模板上海公司网站建设
  • 山东省住房和城乡建设厅服务网站婚庆公司套餐价目表
  • 法律服务网站建设优惠券 wordpress
  • 网站建设需要哪些费用游戏网站首页设计
  • 公司网站 免费模板杭州专业网站
  • 如何在电子表格上做网站的连接漫画网站建设
  • 微信分销网站建设价格邢台贴吧
  • 网站对企业的作用企业网站推广的线上渠道
  • 如何做网站?WordPress签到打卡
  • 网站模板使用手机版网站seo怎么做