通过实现一个简单的 JavaScript 猜数字大小的游戏,介绍如何进行布局样式处理
JavaScript 猜数字大小是一个非常简单、却又经典的游戏,可以锻炼玩家的逻辑思维能力。在这个游戏中,电脑会随机生成一个数字,玩家需要根据提示逐步猜出正确的数字。接下来,我们将通过实现一个简单的 JavaScript 猜数字大小游戏来介绍如何进行布局样式处理。
HTML 结构
首先,我们需要在 HTML 中定义游戏所需要的元素。根据游戏的功能,我们需要三个核心元素:显示区域、输入区域和按钮区域。其中,显示区域用于展示游戏的提示信息和玩家的猜测结果,输入区域用于接收玩家输入的数字,按钮区域用于触发游戏的开始和重置操作。
<div class="game"> <div class="display"> <p id="message">Guess a number between 1 and 100</p> <p id="result"></p> </div> <div class="input"> <input type="text" id="guess" placeholder="Enter your guess..."> <button id="submit">Submit</button> </div> <div class="buttons"> <button id="start">Start</button> <button id="reset">Reset</button> </div> </div>
由于我们需要进行样式处理,因此在每个元素上都添加了相应的类名。下面,我们将使用 CSS 对这些元素进行布局和样式处理。
CSS 样式
对于游戏的布局样式处理,主要考虑以下几个方面:页面居中显示,宽度自适应,显示区域和输入区域的上下间距,以及按钮区域的水平间距。
.game { display: flex; flex-direction: column; justify-content: center; align-items: center; height: 100vh; } .display, .input, .buttons { margin-bottom: 20px; } .input { display: flex; justify-content: center; align-items: center; } #guess { width: 200px; margin-right: 10px; } .buttons button { margin-left: 10px; }
首先,我们将游戏的根元素设置为一个 flex container,使得游戏元素可以竖直居中显示在页面中央。同时,游戏的高度设置为 100vh,使得在不同的设备上都可以占据整个屏幕。
其次,我们通过设置元素的上下外边距来实现显示区域、输入区域和按钮区域的间距效果。具体来说,我们将它们之间的间距设置为 20px。
然后,我们设置输入区域为一个 flex container,并水平居中显示。与此同时,我们设置输入框的宽度为 200px,并在其右侧添加一个按钮。这样,在页面较小的设备上,也不会出现因输入框过长而导致布局错乱的情况。
最后,我们将按钮区域的按钮之间的水平间距设置为 10px,使得它们之间的间距更加紧凑。
JavaScript 交互
最后,我们需要编写 JavaScript 代码,来实现游戏的交互逻辑。这个部分相对来说比较简单,主要是根据玩家的输入和电脑生成的随机数进行比较,并给出相应的提示信息。
// Generate a random number between 1 and 100 let target = Math.floor(Math.random() * 100) + 1; // Get the input field, submit button, and result messages let guessField = document.getElementById("guess"); let submitButton = document.getElementById("submit"); let resultMessage = document.getElementById("result"); // Event listener for submit button submitButton.addEventListener("click", function() { // Get the player's guess let guess = parseInt(guessField.value); if (guess === target) { // The player guessed correctly! resultMessage.innerHTML = "Congratulations! You win!"; } else if (guess > target) { // The player guessed too high resultMessage.innerHTML = "Too high. Try again!"; } else { // The player guessed too low resultMessage.innerHTML = "Too low. Try again!"; } // Clear the input field guessField.value = ""; }); // Event listener for start button document.getElementById("start").addEventListener("click", function() { target = Math.floor(Math.random() * 100) + 1; document.getElementById("message").innerHTML = "Guess a number between 1 and 100"; resultMessage.innerHTML = ""; }); // Event listener for reset button document.getElementById("reset").addEventListener("click", function() { guessField.value = ""; document.getElementById("message").innerHTML = "Guess a number between 1 and 100"; resultMessage.innerHTML = ""; });
在上面的代码中,我们首先使用 Math.random() 方法生成一个随机数,并使用 parseInt() 方法将玩家的输入转换成整数。接着,根据玩家的输入和随机数进行比较,并给出相应的提示信息。同时,我们还编写了事件监听器来处理开始、提交和重置操作。
总结
在本篇文章中,我们通过实现一个简单的 JavaScript 猜数字大小游戏,介绍了如何进行布局样式处理。具体来说,我们使用了 flexbox 和一些常用的 CSS 属性,实现了居中显示、宽度自适应和间距设置等效果。对于不同设备的适配问题,我们也进行了一些简单的处理。最后,我们还编写了 JavaScript 代码来实现游戏的交互逻辑。希望这篇文章能够对大家有所帮助,也欢迎大家多多尝试,进一步探索 CSS 布局和 JavaScript 交互的更多玩法。
相关文章:
通过实现一个简单的 JavaScript 猜数字大小的游戏,介绍如何进行布局样式处理
JavaScript 猜数字大小是一个非常简单、却又经典的游戏,可以锻炼玩家的逻辑思维能力。在这个游戏中,电脑会随机生成一个数字,玩家需要根据提示逐步猜出正确的数字。接下来,我们将通过实现一个简单的 JavaScript 猜数字大小游戏来介…...
Java设计模式(二十二)策略模式
一、概述 策略模式是一种行为型设计模式,它允许在运行时选择算法的行为。策略模式通过将算法封装成独立的策略类,使得它们可以相互替换,而不影响使用算法的客户端。这样可以使客户端代码与具体算法的实现细节解耦,提高了代码的可…...
【沐风老师】一步一步教你在3dMax中进行UVW贴图和展开UVW的方法
将简单或程序材质应用于对象并不难。但是当表面需要在其上显示某种纹理时,它会变得更加复杂。任何纹理贴图都放在材质的 Diffuse 插槽中,但渲染的结果可能无法预测。这就是为什么我们需要了解 3DMAX 如何将纹理应用于 3D 对象,什么是 UVW 贴图…...
Redis主从复制(搭建集群的一种方式)【故障转移,内存,回收】
做一个伪集群 配置文件: daemonize yes port 7777 logfile .redis-7777.log dir ./ bind 0.0.0.0启动6666 and 7777 现在设置主从表 但是有个问题我把服务器停掉 关系就会解除 还可以手动解除 slaveof no one 命令 配置Sentinel(哨兵&#…...
专业专注,极致体验,高端隐形智能晾衣机品牌邦先生官宣浙江卫视知名主持人沈涛为品牌代言人
5月11日,高端隐形晾衣架领导品牌邦先生正式宣布,浙江卫视知名主持人沈涛为品牌代言人,以更高标准的晾晒,共同迎接智能晾晒大时代,用科技力量创造美好智慧家居生活。 专业实力品牌邦先生王牌主持沈涛 作为浙江卫视的“王…...
SpringCloud使用SkyWalking实现分布式链路追踪1
文章目录 一、MicrometerTracingBrave(Sleuth)链路追踪1、MicrometerTracingBrave和Zipkin的概论2、Docker搭建Zipkin服务3、MicrometerTracingBrave和Zipkin实现链路追踪 二、SkyWaking服务的安装与使用1、SkyWalking的概论2、Java探针的环境搭建3、Java探针实现日志监控4、Sk…...
【牛客刷题专栏】0x28:JZ30 包含min函数的栈(C语言编程题)
前言 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏:个人CSDN牛客刷题专栏。 题目来自:牛客/题库 / 在线编程 / 剑指offer: 目录 前言问…...
聚焦丨酷雷曼荣列XRMA联盟成员单位
自“元宇宙”概念兴起之初,酷雷曼VR所属北京同创蓝天云科技有限公司就积极布局、探索和实践。2022年12月,酷雷曼VR成功加入虚拟现实与元宇宙产业联盟(XRMA),正式被接纳为联盟成员单位,意味着酷雷曼公司将进…...
物联网架构和技术:如何实现物物互联和智能化控制
第一章:引言 物联网是一种新兴的技术领域,通过将物理设备、传感器和软件等连接起来,可以实现设备之间的互联互通,让各种设备可以进行数据交换和智能化控制。在这个数字化时代,物联网已经成为了连接万物的关键技术之一…...
Linux系统查看CPU信息命令cat /proc/cpuinfo详细说明
Linux操作系统服务器如何查看CPU处理器信息?使用命令cat /proc/cpuinfo可以查看CPU详细信息,包括CPU核数、逻辑CPU、物理CPU个数、CPU是否启用超线程等,阿里云服务器网分享Linux服务器查看CPU信息命令: 目录 Linux服务器查看CPU…...
RK3588旗舰32T人工智能多网口边缘智能网关交换机
32T边缘智能网关发布,助力多行业数字化升级,运维降本增效,搭载RK3588旗舰芯 搭载瑞芯微RK3588芯片的边缘智能网关XM-RK3588,算力可扩展至32T,适用于电力能源、智慧交通、智慧城市、智慧安防、智慧医疗、工业互联网等领…...
一行代码绘制高分SCI火山图
一、概述 在近半年中,我读了很多的高分SCI文章,很多文章中都有多种不同的火山图,包括「普通的火山图、渐变火山图、以及包含GO通路信息的火山图」! 经过一段时间的文献阅读和资料查询,终于找到了一个好用而且简单的包…...
chmod是什么?cron是什么?
chmod 和 cron 是 Unix 和类 Unix 系统(如 Linux)的常用命令。 chmod:这是一个命令行工具,用于更改文件或目录的权限。在 Unix 和类 Unix 系统中,每个文件和目录都有一个访问权限集,该集定义了哪些用户可以…...
励志长篇小说《周兴和》书连载之三 十五岁时做父亲
十五岁时做父亲 周兴和的父亲一天天更衰老了。 他母亲身体也越来越是消瘦。近一两年来,她常常感到全身无力、胸口发堵、心慌气紧、吞咽困难,做什么事都力不从心了。 这时,他母亲不知是心血来潮,还是她预感到了什么,出…...
文件一直处于修改状态 git checkout 无法还原的问题解决方法
问题描述 最近在 RT-Thread 时,使用 Git 回退版本验证问题,后来 git pull 拉取最新代码后,发现里面有几个文件,一直为【修改】状态,并且无法还原,git checkout xxx git reset --hard 都用了,依旧…...
Julia入门-3、Julia包管理工具
文章目录 0、Julia 的包管理工具是Pkg1、使用Julia包管理工具过慢 0、Julia 的包管理工具是Pkg Julia 的包管理工具是Pkg,可以用于安装、更新、卸载和管理 Julia 中的软件包。以下是一些常用的 Pkg命令: Pkg.add("Package"):安装一…...
选择正确的 Azure 存储服务
Azure Storage 是 Microsoft 基于云的存储解决方案,提供了全面的现代存储服务。在本文中,我们将探讨各种可用的服务及其特定用例,使您能够选择最适合您需求的服务。 Azure Blob 存储 Azure Blob 存储是一项功能强大且可缩放的存储服务&…...
隐语团队研究成果再创佳绩,两篇论文分别被USENIX ATC‘23和IJCAI‘23接收!
“USENIX ATC年度技术会议”(USENIX ATC,USENIX Annual Technical Conference)是计算机系统领域的顶级学术会议之一。本年度 USENIX ATC’23将于7月10日至12日在美国波士顿召开。本次会议共投稿353篇论文,接收65篇,…...
美团数据指标体系搭建实战
在美团商家版中,美团为商家搭建的数据指标体系,很好的指导了商家的经营发展方向以及提供经营状况概览。 本文通过体验美团商家版经营数据子功能,对美团商家版数据指标体系搭建的情况做出一个概述。 美团商家版的店铺子功能下,…...
prometheus实战之五:飞书通知告警
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 《prometheus实战》系列链接 prometheus实战之一:用ansible部署prometheus实战之二:使用常见指标prometheus实战之三:告警…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
Web后端基础(基础知识)
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...
c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...
OD 算法题 B卷【正整数到Excel编号之间的转换】
文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的:a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...
