猜数字小游戏但多语言版本(C、Java、Golang、python、JavaScript)

news2025/1/5 9:14:25

文章目录

    • 前言
    • C语言版本
      • 语法风格
      • 应用领域
      • C 语言实现猜数字小游戏
    • Java语言版本
      • 语法风格
      • 应用领域
      • Java语言实现猜数字小游戏
    • GO语言版本
      • 语法风格
      • 应用领域
      • GO语言实现猜数字小游戏
    • python版本
      • 语法风格
      • 应用领域
      • python语言实现猜数字小游戏
    • JavaScript版本
      • 语法风格
      • 应用领域
      • JavaScript实现猜数字小游戏

前言

最近去学了一下JavaScript,然后想着把我学过的这几门语言都复习一下基础语法,然后咱们实现一个猜数字的小游戏。顺便简单说一下这5门语言的语法风格和应用领域。

游戏规则通常如下:一方选择一个秘密数字,并告诉其他人猜的数字的范围。其他人根据给定的范围猜一个数字,然后由选择秘密数字的人告诉他们猜的数字是太高还是太低,直到有人猜到秘密数字为止。猜数字的人可以通过不断提问来缩小猜测的范围,以便更快地猜到正确的答案。

C语言和Java版本只用了一个main函数,全都写在一起了适合刚接触编程没几个小时的;go语言和python用了函数封装,逻辑更加清楚,适合学到了函数思想的;JavaScript版本用html还写了一个页面,也是一个前端初学者练习的一个小小项目。

C语言版本

语法风格

  • C语言是一种低级语言,注重效率和对硬件的直接访问。
  • 它使用分号作为语句结束符,使用花括号表示代码块。
  • C语言具有基本的控制结构,如条件语句(if-else)和循环结构(for、while)。
  • C语言的语法相对较为简洁,但对程序员要求较高。

应用领域

  • 系统级编程:C语言在操作系统、编译器、驱动程序和嵌入式系统等领域扮演着重要角色。它可以直接访问硬件,并具有较低的开销和更高的执行效率。
  • 嵌入式系统:C语言是嵌入式系统开发的首选语言之一。由于其能够与硬件进行良好的交互,开发者可以利用C语言编写控制、监测和操作嵌入式设备的代码。
  • 游戏开发:C语言在游戏开发中广泛使用。由于游戏通常对性能要求较高,使用C语言可以直接控制底层资源,并优化代码以实现更好的性能。
  • 编译器开发:C语言本身是通过编译器进行编译的,因此编写编译器时,C语言通常是首选语言。C语言的表达力和灵活性使其成为开发编译器前端和后端的理想选择。

C 语言实现猜数字小游戏

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main() {
    // 设置编码格式(为我是用clion敲的所以加了这行,用VS的话把这行删了)
    system("chcp 65001");
    // 以时间戳作为随机数种子
    srand((unsigned int) time(NULL));
    // 生成随机数
    int random = rand() % 100 + 1;
    // 猜数字
    int guess = 0;
    while (1) {
        printf("请输入你猜的数字: ");
        scanf("%d", &guess);
        // 判断是否相等
        if (guess == random) {
            printf("恭喜你猜对了!\n");
            // 选择是否重新开始游戏
            printf("是否重新开始游戏? 输入1继续,其他任意键退出");
            int choice = 0;
            scanf("%d", &choice);
            if (choice == 1) {
                // 重新开始游戏
                random = rand() % 100 + 1;
                continue;
            } else {
            	printf("游戏结束!");
				return 0;
            }

        }
        // 判断大小
        if (guess > random) {
            printf("你猜的数字大了!\n");
        } else {
            printf("你猜的数字小了!\n");
        }
    }
}

Java语言版本

语法风格

  • Java是一种面向对象的高级语言,具有严格的语法和强制类型检查。
  • 它使用大括号表示代码块,并使用分号结束语句。
  • Java要求所有的代码都必须包含在类中,拥有面向对象的特性,如封装、继承和多态。
  • Java有丰富的类和接口库,提供了广泛的功能和开发支持。

应用领域

  • 企业应用开发:Java在企业级应用开发中得到广泛应用。Java提供了丰富的企业级框架和库,如Spring和Java EE,用于开发大规模、高性能和可靠的企业应用程序。
  • Android应用开发:Java是Android应用开发的主要语言。Android平台基于Java,并提供了Java API和开发工具包(SDK)用于开发各种类型的移动应用程序。
  • Web应用开发:Java通过Java Servlet和JavaServer Pages(JSP)技术,以及各种Web框架(如Spring MVC、Struts和JSF)支持Web应用程序的开发。Java的强大的服务器端功能使其成为构建高性能和可扩展的Web应用的理想选择。
  • 大数据技术:Java在大数据领域中扮演着重要角色。Hadoop、Spark和Flink等流行的大数据处理框架使用Java作为主要开发语言,因为Java具有良好的并发性和可扩展性。

Java语言实现猜数字小游戏

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        // 生成一个1-100的随机数
        int random = (int) (Math.random() * 100 + 1);
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.print("请输入你猜的数字:");
            int guessNumber = sc.nextInt();
            // 判断用户输入的数字和随机数是否相等
            if(guessNumber == random){
                System.out.println("恭喜你,猜中了!");
                // 选择是否继续游戏
                System.out.println("是否继续游戏?(输入y或者Y继续,其他任意键退出)");
                String answer = sc.next();
                if(answer.equals("y")){
                    random = (int) (Math.random() * 100 + 1);
                    continue;
                }else {
                    System.out.println("游戏结束!");
                    return;
                }
            }
            if(guessNumber > random){
                System.out.println("你猜的数字大了");
            }else{
                System.out.println("你猜的数字小了");
            }
        }
    }
}

GO语言版本

语法风格

  • Golang是一种静态类型的编译型语言,注重简洁性和效率。
  • 它使用大括号表示代码块,但没有要求使用分号结束语句。
  • Golang具有垃圾回收机制和并发编程的内置支持。
  • Golang的语法简洁明了,减少了冗余和复杂性。

应用领域

  • 网络编程:Go语言原生支持并发编程和网络编程,使其成为开发高性能网络应用和分布式系统的理想选择。Go的轻量级协程(goroutine)和通道(channel)机制使并发编程变得简单而高效。
  • 服务器端开发:由于Go语言的并发性和性能优势,它在服务器端开发领域中非常受欢迎。许多大型互联网公司都在使用Go语言构建高性能的Web服务器、API服务和微服务架构。
  • 云计算和容器技术:Go语言在云计算和容器技术领域得到广泛应用。例如,Docker和Kubernetes这样的容器编排工具就是使用Go语言开发的,因为Go的高性能和并发性使其能够处理大规模的容器化应用程序。
  • 分布式系统:Go语言对于构建分布式系统和大规模数据处理应用非常适合。它的并发原语和简洁的语法使开发者能够轻松地编写高效、可扩展和可靠的分布式应用程序。

GO语言实现猜数字小游戏

package main

import (
	"fmt"
	"math/rand"
	"time"
)

func main() {
	// 默认是true,开始第一次游戏
	playAgain := true

	for playAgain {
		playGame()
		// 更新playAgain的值
		playAgain = askPlayAgain()
	}

	fmt.Println("游戏结束!")
}

/**
 * 进行一次猜数字游戏
 */
func playGame() {
	// 生成一个1到100之间的随机数
	rand.Seed(time.Now().UnixNano())
	toGuess := rand.Intn(100) + 1

	fmt.Println("请猜一个1到100之间的数字:")

	for {
		// 读取用户的输入
		var guess int
		fmt.Scanln(&guess)

		// 检查猜测结果
		if guess == toGuess {
			fmt.Println("恭喜你,猜对了!")
			break
		} else if guess < toGuess {
			fmt.Println("太小了,请再试一次")
		} else {
			fmt.Println("太大了,请再试一次")
		}
	}
}

/**
 * 询问用户是否再次开始游戏
 */
func askPlayAgain() bool {
	var playAgain string
	fmt.Print("是否再次开始游戏?(输入Y或y继续,其他任意键退出): ")
	fmt.Scanln(&playAgain)
	// 当输入Y或y时,返回true,否则返回false
	return playAgain == "Y" || playAgain == "y"
}

python版本

语法风格

  • Python是一种解释型语言,具有简洁而易读的语法。
  • 它使用缩进来表示代码块,而不是使用大括号或关键字。
  • Python是一种动态类型语言,无需显式声明变量类型。
  • Python有大量的第三方库和模块,用于各种用途,如数据科学、机器学习和Web开发。

应用领域

  • 数据科学和机器学习:Python在数据科学和机器学习领域非常受欢迎。它提供了丰富的库和工具,如NumPy、Pandas、Scikit-learn和TensorFlow,用于数据分析、机器学习建模和深度学习等任务。
  • Web开发:Python通过框架如Django和Flask,成为构建Web应用程序和网站的流行选择。它提供了快速开发和易于维护的解决方案,具有良好的可扩展性和安全性。
  • 自动化脚本和任务:Python在自动化脚本和任务自动化方面表现出色。它可以用于编写脚本、自动化日常任务、处理文件和数据等。
  • 科学计算和工程:Python在科学计算和工程领域中得到广泛应用。它的数学库(如NumPy和SciPy)和可视化库(如Matplotlib和Seaborn)使其成为进行数值计算、模拟和可视化的理想选择。

python语言实现猜数字小游戏

import random

def play_game():
    # 生成一个1到100之间的随机数
    secret_number = random.randint(1, 100)

    print("请猜一个1到100之间的数字:")

    while True:
        # 提示玩家输入
        guess = int(input("请输入你的猜测:"))

        # 检查猜测结果
        if guess == secret_number:
            print("恭喜你,猜对了!")
            break
        elif guess < secret_number:
            print("太小了,请再试一次。")
        else:
            print("太大了,请再试一次。")

def ask_play_again():
    play_again = input("是否再次开始游戏?(输入Y或y继续,其他任意键退出): ")
    return play_again.lower() == "y"

def main():
    play_again = True

    while play_again:
        play_game()
        play_again = ask_play_again()

    print("游戏结束!")

if __name__ == "__main__":
    main()

JavaScript版本

语法风格

  • JavaScript是一种脚本语言,主要用于网页前端开发。
  • 它使用大括号表示代码块,使用分号结束语句,但分号通常是可选的。
  • JavaScript具有灵活的语法,可以进行动态类型和函数式编程。
  • JavaScript广泛应用于网页交互、动态效果和服务器端开发(通过Node.js)。

应用领域

  • 前端开发:JavaScript是前端开发的核心语言,用于开发交互式的网页和Web应用程序。它可以操作HTML和CSS,实现动态内容、用户交互和响应式设计。
  • 网页应用程序:JavaScript通过框架如React、Angular和Vue.js,用于开发复杂的单页面应用程序(SPA)和动态网页。这些框架提供了组件化开发、状态管理和路由等功能。
  • 移动应用开发:通过使用框架如React Native和Ionic,JavaScript可以用于开发跨平台的移动应用程序。这些框架将JavaScript代码转换为原生UI组件,实现了一次编写,多平台部署。
  • 后端开发:Node.js是建立在JavaScript运行时上的服务器端开发框架。JavaScript可以用于编写高性能的后端应用程序、API和服务器端逻辑。

JavaScript实现猜数字小游戏

请添加图片描述

<!DOCTYPE html>
<html>

<head>
    <title>猜数字游戏</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            text-align: center;
            margin-top: 100px;
        }
    </style>
</head>

<body>
    <h1>猜数字游戏</h1>
    <p>请猜一个1到100之间的数字。</p>
    <input type="number" id="guessInput">
    <button id="guessButton"></button>
    <p id="message"></p>
    <button id="playAgainButton">再玩一次</button>

    <script>
        
        const messageElement = document.getElementById("message");
        const guessInput = document.getElementById("guessInput");
        const guessButton = document.getElementById("guessButton");
        const playAgainButton = document.getElementById("playAgainButton");

        let secretNumber;
        let attempts;

        function generateSecretNumber() {
            secretNumber = Math.floor(Math.random() * 100) + 1;
            attempts = 0;
            messageElement.textContent = "";
            guessInput.disabled = false;
            guessInput.value = "";
            guessButton.disabled = false;
            playAgainButton.style.display = "none";
        }

        function checkGuess() {
            const guess = parseInt(guessInput.value);

            if (isNaN(guess) || guess < 1 || guess > 100) {
                messageElement.textContent = "请输入有效的1到100之间的数字。";
                return;
            }

            attempts++;

            if (guess === secretNumber) {
            	// 如果你猜的时候不小心点了两下,会默认你猜了同样的数字
                messageElement.textContent = `恭喜你,猜对了!你用了${attempts}次尝试。`;
                guessInput.disabled = true;
                guessButton.disabled = true;
                playAgainButton.style.display = "block";
            } else if (guess < secretNumber) {
                messageElement.textContent = "太小了,请再试一次。";
            } else {
                messageElement.textContent = "太大了,请再试一次。";
            }
        }

        guessButton.addEventListener("click", checkGuess);
        playAgainButton.addEventListener("click", generateSecretNumber);

        generateSecretNumber();
    </script>
</body>

</html>

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

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

相关文章

【雕爷学编程】Arduino动手做(160)---HLK-V20离线语音模块3

37款传感器与模块的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&#x…

Python中绘制正弦波形、余弦波形及其复合波形的应用举例

Python中绘制正弦波形、余弦波形及其复合波形的应用举例 使用python进行绘图是其重要功能之一&#xff0c;本文讲解使用python进行正弦余弦波及其复合波形的绘制方法。 一、绘制正弦波 程序 import numpy as np import matplotlib.pyplot as plt tnp.arange(-10,10,0.1) yn…

NavigationStack, Toolbar 的使用

1. NavigationStack 导航堆栈的使用&#xff0c;NavigationView 已过时 1.1 实现 /// 导航堆栈 (懒加载) iOS 16 版本 新特性 struct NavigationStackBootcamp: View {let fruits ["Apple", "Orange", "Banana"]//["one","two…

信贷系统开发设计基础(二)

目录 架构演进篇 01 信贷架构演进概述 02 单体架构案例简介 03 单体系统群架构案例分析 04 微服务案例分析 架构演进篇 01 信贷架构演进概述 02 单体架构案例简介 03 单体系统群架构案例分析 04 微服务案例分析 总结&#xff1a; ---------------------------------------…

MySQL数据库管理——用户管理(二)

文章目录 一.表结构(增加字段)1.创建表结构2.复制数据表2.1 复制格式2.2 克隆表 3.清空表&#xff0c;删除表内的所有数据4.创建临时表 二.MySQL中6种常见的约束1.外键的定义2.创建外键约束作用3.创建主表blue4.创建从表Icecream5.为主表blue添加一个主键约束。主键名建议以&qu…

复习第四课 C语言-分支语句和循环

目录 【1】字符输入输出 【2】C语言下的垃圾字符回收 【3】分支语句 【4】循环 练习&#xff1a; 【1】字符输入输出 按字符的输入输出 int getchar(void); 功能&#xff1a;从终端输入一个字符 参数&#xff1a;无 返回值&#xff1a;输入字符的ASCII值int putchar(int…

中信银行西安分行举办金融助力外贸企业“走出去“高端论坛

7月14日&#xff0c;中信银行西安分行联合中国出口信用保险公司陕西分公司、西安市工商联举办"智汇西安、信融全球"——金融助力外贸企业"走出去"高端论坛。该论坛紧跟“加快建设贸易强国”的战略指引&#xff0c;以创新金融服务助力外贸企业融入高水平对外…

ConfigMap/Secret:配置、定制我的应用

首先你要知道&#xff0c;应用程序有很多类别的配置信息&#xff0c;但从数据安全的角度来看可以分成两类&#xff1a; 一类是明文配置&#xff0c;也就是不保密&#xff0c;可以任意查询修改&#xff0c;比如服务端口、运行参数、文件路径等等。另一类则是机密配置&#xff0…

VTK 种子小部件 SeedWidget

Part1 vtkSeedWidget介绍 vtkSeedWidget 用于在场景中放置多个种子点。种子点可用于诸如连通性&#xff0c; 区域生长分割算法之&#xff0c;分割等。 效果图&#xff1a; vtkSeedWidget默认交互操作&#xff1a; 1. 鼠标点击widget上空白位置放置种子点 2. 鼠标移入种子点&am…

【测试开发】测试用例的设计方法

目录 一. 测试用例的基本要素 二. 测试用例的设计方法 1. 测试用例设计的万能公式 水杯测试用例 2. 基于需求的设计方法 邮箱注册测试用例 3. 等价类方法 有效等价类和无效等价类 等价类思想设计测试用例步骤 4. 边界值方法 边界值思想设计测试用例步骤 5. 判定表方法…

51单片机的智能交通控制系统【含仿真+程序+演示视频带原理讲解】- 未完稿

51单片机的智能交通控制系统【含仿真程序演示视频带原理讲解】 1、系统概述2、核心功能3、仿真运行及功能演示4、程序代码 1、系统概述 该系统由AT89C51单片机、LED灯组、数码管组成。通过Protues对十字路口红绿灯控制逻辑进行了仿真。 每个路口包含了左转、右转、直行三条车道…

SpringCloud Alibaba——Nacos1.x作为注册中心的原理

目录 一、原理二、原理步骤图解 一、原理 使用Http发送注册查询服务提供方列表定时拉取 (每10秒)检测到服务提供者异常&#xff0c;基于UDP协议推送更新定时心跳 (5秒)&#xff0c;检测服务状态定时心跳任务检查集群数据同步任务使用Distro 二、原理步骤图解 Nacos1.x作为注…

python的浅拷贝和深拷贝

1、结论 python中的拷贝有以下三种 变量的赋值操作 只是形成两个变量,实际上还是指向同一个对象 浅拷贝 Python拷贝一般都是浅拷贝&#xff0c;拷贝时&#xff0c;对象包含的子对象内容不拷贝&#xff0c;因此&#xff0c;源对象与拷贝对象会引用同一个子对象 深拷贝 使用co…

【C++】开源:Web文件服务器

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍开源项目——Web文件服务器。 无专精则不能成&#xff0c;无涉猎则不能通。。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#x…

代码随想录day17

110. 平衡二叉树 首先是明白什么是平衡二叉树&#xff1a; 一棵高度平衡二叉树定义为&#xff1a; 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 然后&#xff0c;区别二叉树的高度和深度&#xff1a; 二叉树的高度&#xff1a;从叶子节点到根节点 二叉树的…

【C语言】多组输入

C系列文章目录 目录 C系列文章目录 一、什么是多组输入&#xff1f; 二、如何使用多组输入 2.1&#xff0c;试题举例讲解 2.2&#xff0c;错误解法 2.3&#xff0c;我们实现多组输入的思路 2.4&#xff0c;第一种正确的解法 2.5&#xff0c;第二种正确的解法 2.6&…

Exchange 服务器监控工具

Microsoft Exchange Server 是个消息与协作系统&#xff0c;提供了通常所需要的全部邮件服务功能&#xff0c;可以被用来构架应用于企业、学校的邮件系统或免费邮件系统。包括从电子邮件、会议安排、团体日程管理、任务管理、文档管理、实时会议和工作流等丰富的协作应用&#…

基于PyQt5的图形化界面开发——打砖块

目录 0. 前言1. 砖块类定义2. 挡板类定义3. 碰撞检测4. 小球和游戏初始化5. 完整代码6. 运行效果演示7. Pyinstaller 编译exe程序PyQt5 0. 前言 本文使用 PyQt5实现一个打砖块小游戏 操作系统&#xff1a;Windows10 专业版 开发环境&#xff1a;Pycahrm Comunity 2022.3 Pyt…

自学成为一名顶级黑客(网络安全)

一、自学网络安全学习的误区和陷阱 1.不要试图先成为一名程序员&#xff08;以编程为基础的学习&#xff09;再开始学习 行为&#xff1a;从编程开始掌握&#xff0c;前端后端、通信协议、什么都学。 缺点&#xff1a;花费时间太长、实际向安全过渡后可用到的关键知识并不多。…

加密与解密 解密篇 逆向分析技术 (一) 栈/调用约定

目录 逆向是什么 32位软件逆向技术 1.启动函数 2.函数 函数的识别 函数的参数 利用栈进行传递 下面是通过esp来寻址 通过寄存器来传递参数 例子 例子 函数的返回值 例子 例子 逆向是什么 将可执行程序反汇编 通过分析反汇编代码来理解其代码功能&#xff08;各个…