VSCode作业1:猜数字游戏和简单计数器(包含完整代码)

news2024/9/21 18:40:17

目录

猜数字游戏

一、使用‘random’函数获取随机数

二、 分情况讨论输入值大小情况

 三、HTML代码

 四、CSS样式及运行效果

 简单计数器(计时器)

一、使用‘setInterval’函数实现计数效果

二、使用’clearInterval‘函数实现暂停计数和重新计数效果 

三、HTML/CSS代码和运行效果


猜数字游戏

一、使用‘random’函数获取随机数

本题的关键在于利用‘random’函数获取随机数 ,但是‘random’方法获取的是[0,1)范围的随机数,这显然不太适合用来猜,所以我们一般把它乘以100,转换为整型,这样它的范围就是[0,100),这样就比较符合题意了,代码如下:

parseInt(Math.random(0,1)*100)

二、 分情况讨论输入值大小情况

这个题目的另一个关键点在于怎么才能使用户猜对数字,如果猜不对,那么这个游戏将没有意义,所以,对于用户的输入值,我们必须帮助用户进行判断大小,并进行提示,这样才是一个标准的写法,那判断的话,我们首先想到的就是if语句了,这题只需要考虑4种情况就行,代码示例如下:

 if (isNaN(num) || num < 1 || num > 100) {

                        this.result = "输入有误,请重新输入";

                        this.guess = "";

                    } else {

                        if (num === this.codekey) {

                            this.result = "恭喜你猜对了!!!";

                        }

                       。。。。。

                    }

 三、HTML代码

<body>
    <div id="root">
        <h1>猜数字游戏</h1>
        <div id="div_1">
            <input v-model="guess" type="text" @keyup.enter="doGuess"/>
        </div>
        <div id="div_2">
            <button @click="doGuess">提交</button>
        </div>
        <div id="div_3">
            <h1>{{result}}</h1>
        </div>

    </div>
    <script>
        Vue.config.productionTip=false;
        const vm = new Vue({
            el: '#root',
            data: {
                guess: "",
                result: "请输入一个1-100的整数",
                codekey: parseInt(Math.random(0,1)*100)
            },
            methods: {
                doGuess() {
                    var num = parseInt(this.guess);
                    if (isNaN(num) || num < 1 || num > 100) {
                        this.result = "输入有误,请重新输入";
                        this.guess = "";
                    } else {
                        if (num === this.codekey) {
                            this.result = "恭喜你猜对了!!!";
                        }
                        if(num > this.codekey){
                            this.result = "猜大了,请猜小一点!!!"
                            this.guess = "";
                        }
                        if(num < this.codekey){
                            this.result = "猜小了,请猜大一点!!!"
                            this.guess = "";
                        }
                    }
                }
            }
        })
    </script>
</body>

 四、CSS样式及运行效果

 下面我只是写了CSS样式简单示例,实际效果可以自行修改,不用拘于我所写的,写法有些重复,还有很大的优化空间,自行修改

<style>
        * {
            margin: 0;
            padding: 0;
        }

        #root {
            background-color: black;
            width: 600px;
            height: 400px;
            margin: 50px auto;
            color: white;
        }

        #div_1,
        #div_2,
        #div_3 {
            text-align: center;
            margin-top: 30px;
        }

        #div_3 {
            border: 2px solid white;
            width: 90%;
            height: 100px;
            margin: 30px auto;
            line-height: 90px;
        }

        input {
            width: 300px;
            height: 50px;
            font-size: 30px;
        }

        button {
            width: 100px;
            height: 50px;
            font-size: 30px;
        }
    </style>

 

 

 简单计数器(计时器)

一、使用‘setInterval’函数实现计数效果

要实现计数器,我们很容易联想到‘++’自增和for循环,如果在Java中我们能很简单的实现功能,但是VSCode中for的用法和Java中不一样,因此我们应该使用VSCode中的函数来 ‘setInterval’来实现功能。‘setInterval’函数可按照指定的周期(以毫秒计)来调用函数或计算表达式,意识就是你在‘setInterval’函数里面放个自增,设置时间为一秒,计数功能不就实现了嘛,示例代码如下:

time = setInterval(function () {

                        vm.counter++;

                    }, 100);

二、使用’clearInterval‘函数实现暂停计数和重新计数效果 

clearInterval () 方法将停止周期性执行的指定代码,对这些代码的操作是调用 setInterval () 方法 启动的。 

三、HTML/CSS代码和运行效果

CSS样式可以自己修改,这个样式较为简单,我就不分开写了,如下:

<head>
    <meta charset="UTF-8">
    <script src="vue.js"></script>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        #root {
            width: 880px;
            height: 350px;
            margin: 10px auto;
            background-color: aqua;
        }
    </style>
</head>

<body>
    <div id="root">
        <h1>{{counter}}</h1>
        <button v-on:click="start">开始计数</button>
        <button v-on:click="stop">停止计数</button>
        <button v-on:click="reset">重新计数</button>
    </div>
    <script>
        var vm = new Vue({
            el: "#root",
            data: {
                counter: 0,
            },
            methods: {
                start() {
                    time = setInterval(function () {
                        vm.counter++;
                    }, 100);
                },
                stop() {
                    clearInterval(time);
                },
                reset() {
                    clearInterval(time);
                    this.counter = 0;
                }
            }
        })
    </script>
</body>

 

 

 以上就是两个案例啦,如果对你有帮助的话,希望可以点点赞哈,谢谢啦

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/494612.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【机器学习】sklearn的集成学习用于图像分类从0到1,注意点和坑点

文章目录 前言1.需求分析1.1 场景1.2 解决方案 2. 代码2.1 提取特征2.2 构建分类器2.4 集成模型2.5 总的训练代码 3.fast api 封装4.总结 前言 深度学习崛起后&#xff0c;好像机器学习就没落了&#xff0c;但在固定场景下&#xff0c;还是很好用的。下面就是展厅项目的识别任…

解决Edge Dev更新后NewBing侧边栏消失的问题,并使用NewBing作画

文章目录 解决Edge Dev更新后NewBing侧边栏消失的问题&#xff0c;并使用NewBing作画问题来源操作步骤打开侧边栏步骤尝试让NewBing给出图像输出表情包或者其他图片使用NewBing作画 查看聊天记录插件 总结 解决Edge Dev更新后NewBing侧边栏消失的问题&#xff0c;并使用NewBing…

标签制作软件如何批量制作DotCode码

DotCode码是由不连续的点组成的二维条形码符号。设计的初衷是工业流水线上使用高速喷墨/激光打印机印刷产品有效期、批号以及序列号等。其尺寸是灵活可变的&#xff0c;可以根据货品表面的大小来调整印刷。下面带大家一起看一下在标签制作软件中如何批量制作&#xff1a; 打开…

STM32F4_十进制和BCD码的转换

目录 前言 1. BCD码 2. BCD码和十进制转换的算法 前言 最近在学习STM32单片机&#xff08;不仅仅是32&#xff09;的RTC实时时钟系统的过程中&#xff0c;需要配置时钟的时间、日期&#xff1b;这些都需要实现BCD码和十进制之间进行转换。这里和大家一起学习BCD码和十进制之…

C++函数必备简单知识

目录 1、函数的定义与声明 &#xff08;1&#xff09;定义 &#xff08;2&#xff09;声明 2、指针传参 3、引用 4、函数的引用传参 5、函数重载 overlord &#xff08;1&#xff09;参数数量不同 &#xff08;2&#xff09;参数类型不同 6、避免overlord歧义 7、内…

Opencv+Python图像像素处理

目录 二值图像的像素访问、修改 单个像素访问、修改 多个像素修改 彩色图像&#xff08;三维数组&#xff09; 像素访问、修改 BGR模式 像素访问、修改 二值图像的像素访问、修改 单个像素访问、修改 import numpy as np import cv2 as cv # 使用Numpy库中的函数zeros()可…

springboot登录验证

案例-登录认证 已经实现了部门管理、员工管理的基本功能&#xff0c;但是大家会发现&#xff0c;但没有登录&#xff0c;就直接访问到了Tlias智能学习辅助系统的后台。 这是不安全的&#xff0c;今天的主题就是登录认证。 最终要实现的效果就是用户必须登录之后&#xff0c;才…

Spark学习笔记【shuffle】

本文基本上是大数据处理框架Apache Spark设计与实现的Shuffle部分的学习。以及Spark基础知识Bambrow Shuffle解决啥问题 上游和下游&#xff0c;不同stage&#xff0c;不同的task之间是如何传递数据的。ShuffleManager管理ShuffleWrite和ShuffleRead 分为两个阶段&#xff1…

基于JavaWeb实现的寻码网文章资讯管理系统

一、技术结构 前端&#xff1a;html ajax 后端&#xff1a;SpringBootMybatis-plus 环境&#xff1a;JDK1.8 | Mysql | Maven | Redis 二、功能简介 数据库与代码截图 后端管理-登录页 后端管理-首页 后端管理-文章管理-发布文章 后端管理-文章管理-文章列表 后端管理-文…

Vue快速入门,常用指令,生命周期

Vue常用指令 案例&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"…

MySQL一次大量内存消耗的跟踪

GreatSQL社区原创内容未经授权不得随意使用&#xff0c;转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本&#xff0c;使用上与MySQL一致。文章来源&#xff1a;GreatSQL社区原创 线上使用MySQL8.0.25的数据库&#xff0c;通过监控发现数据库在查询一个视图(80张表的u…

【网络进阶】WebSocket协议

文章目录 1. Web实时技术的应用2. WebSocket协议介绍2.1 WebSocket的工作原理2.2 优点2.3. 使用场景2.4 实现细节 3. WebSocket服务器实现3.1 客户端代码&#xff08;HTML & JavaScript&#xff09;3.2 服务器端代码&#xff08;C&#xff09;3.3 测试结果 1. Web实时技术的…

Qt 智能指针介绍: QSharedPointer、QWeakPointer 、QScopedPointer 、QPointer(附实例)

文章目录 1. 概述2. Qt 中有几种智能指针&#xff1f;2.1 QSharedPointer 实例2.2 QSharedPointer 与 QWeakPointer 实例2.3 QScopedPointer 实例2.4 QPointer 实例 1. 概述 在使用动态内存分配的情况下&#xff0c;需要确保对象的所有权正确地被管理和转移。使用智能指针可以…

【HarmonyOS】【FAQ】HarmonyOS应用开发相关问题解答(一)

【前提简介】 本文档主要总结HarmonyOS开发过程中可能遇到的一些问题解答&#xff0c;主要围绕HarmonyOS展开&#xff0c;包括但不限于不同API版本HarmonyOS开发、UI组件、DevEco Studio、Gitee示例代码等&#xff0c;并将持续更新哦。 【官方FAQ】 【FAQ】HarmonyOS应用及服…

(十二)地理数据库创建——基本组成项及数据加载

地理数据库创建——基本组成项及数据加载 目录 地理数据库创建——基本组成项及数据加载 1.建立数据库中的基本组成项1.1建立要素数据集1.2建立要素类1.2.1建立简单要素类1.2.2建立关系表 1.3建立关系表 2.向地理数据库加载数据2.1导入数据2.1.1导入Shapefile2.1.2导入dBASE 表…

数据结构:顺序表的增、删,查、改实现

1.概念 顺序表是用一段 物理地址连续 的存储单元依次存储数据元素的线性结构&#xff0c;一般情况下采用数组存 储。在数组上完成数据的增删查改。 2.分类 顺序表一般可以分为&#xff1a; 2.1 静态顺序表&#xff1a;使用定长数组存储元素 这样会造成空间给多了浪费&#x…

ThreadLocal初探

一、ThreadLocal介绍 一、官方介绍 从Java官方文档中的描述&#xff1a;ThreadLocal类用来提供线程内部的局部变量&#xff0c;这种变量在多线程环境下访问&#xff08;通过get和set方法访问&#xff09;时&#xff0c;能够保证各个线程的变量相对独立于其他线程内的变量。Thr…

apple pencil必须要买吗?性价比平替电容笔排行榜

要知道&#xff0c;真正的苹果原装Pencil&#xff0c;价格实在是太贵了&#xff0c;普通的消费者根本买不起。所以&#xff0c;有没有可能出现一种平替的、功能一模一样的、与苹果Pencil一样的电容笔呢&#xff1f;这倒也是。国产的平替笔和苹果Pencil的笔相比&#xff0c;并没…

Wireless-Sensor-Network-master_WSN_无线传感网络(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 近年来&#xff0c;随着对等网络、云计算和网格计算等分布式环境的发展&#xff0c;无线传感器网络&#xff08;WSN&#xff0…

10分钟吃透,python操作mysql数据库的增、删、改、查

大家好&#xff0c;我是csdn的博主&#xff1a;lqj_本人 这是我的个人博客主页&#xff1a; lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…