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

文章目录

    • 前言
    • 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 mainimport ("fmt""math/rand""time"
)func main() {// 默认是true,开始第一次游戏playAgain := truefor playAgain {playGame()// 更新playAgain的值playAgain = askPlayAgain()}fmt.Println("游戏结束!")
}/*** 进行一次猜数字游戏*/
func playGame() {// 生成一个1到100之间的随机数rand.Seed(time.Now().UnixNano())toGuess := rand.Intn(100) + 1fmt.Println("请猜一个1到100之间的数字:")for {// 读取用户的输入var guess intfmt.Scanln(&guess)// 检查猜测结果if guess == toGuess {fmt.Println("恭喜你,猜对了!")break} else if guess < toGuess {fmt.Println("太小了,请再试一次")} else {fmt.Println("太大了,请再试一次")}}
}/*** 询问用户是否再次开始游戏*/
func askPlayAgain() bool {var playAgain stringfmt.Print("是否再次开始游戏?(输入Y或y继续,其他任意键退出): ")fmt.Scanln(&playAgain)// 当输入Y或y时,返回true,否则返回falsereturn 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 randomdef play_game():# 生成一个1到100之间的随机数secret_number = random.randint(1, 100)print("请猜一个1到100之间的数字:")while True:# 提示玩家输入guess = int(input("请输入你的猜测:"))# 检查猜测结果if guess == secret_number:print("恭喜你,猜对了!")breakelif guess < secret_number:print("太小了,请再试一次。")else:print("太大了,请再试一次。")def ask_play_again():play_again = input("是否再次开始游戏?(输入Y或y继续,其他任意键退出): ")return play_again.lower() == "y"def main():play_again = Truewhile 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.hqwc.cn/news/22168.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jmeter的常用设置(二)【处理乱码问题】

文章目录 前言一、察看结果树响应结果是乱码_解决方法 方法一&#xff1a;在察看结果树之前添加 后置处理器 中的 “BeanShell PostProcessor” 来动态修改结果处理编码方法二&#xff1a;在配置文件中修改二、使用步骤 1.引入库2.读入数据总结 前言 接口测试中遇到的各种问题…

【Leetcode】42.接雨水(困难)

一、题目 1、题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例1: 输入:height = [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6…

opencv-04 像素处理

opencv-04 像素处理 在 OpenCV 中&#xff0c;最小的数据类型是无符号的 8 位数。因此&#xff0c;在 OpenCV 中&#xff0c;实际上并没有二值图像这种数据类型&#xff0c;二值图像经常是通过处理得到的&#xff0c;然后使用0表示黑色&#xff0c;使用 255 表示白色。 可以将…

数据结构初阶--排序1

目录 前言冒泡排序思路代码实现 选择排序思路代码实现 插入排序思路代码实现 希尔排序思路代码实现 堆排序思路向上调整建堆向下调整建堆 代码实现 前言 排序在我们的日常生活中无处不在&#xff0c;比如对若干个学生的期末成绩&#xff0c;可以依据姓氏&#xff0c;学号&…

C# Linq 详解二

目录 概述 七、OrderBy 八、OrderByDescending 九、Skip 十、Take 十一、Any 十二、All C# Linq 详解一 1.Where 2.Select 3.GroupBy 4.First / FirstOrDefault 5.Last / LastOrDefault C# Linq 详解二 1.OrderBy 2.OrderByDescending 3.Skip 4.Take 5.Any 6.All C#…

WebSocket从入门到精通

WebSocket 是什么&#xff1f; WebSocket是HTML5规范提出的一种协议&#xff1b;目前除了IE浏览器&#xff0c;其他浏览器都基本支持。它是一种协议&#xff0c;万变不离其宗&#xff0c;也是基于TCP协议的&#xff0c;和HTTP协议是并存的两种协议。HTML5 Web Sockets规范定义了…

SpringBoot 整合RabbitMQ

SpringBoot 整合 RabbitMQ 概念 2007 年发布&#xff0c;是一个在 AMQP(高级消息队列协议)基础上完成的&#xff0c;可复用的企业消息系统&#xff0c;是当前最主流的消息中间件之一。 RabbitMQ是一个由erlang开发的AMQP&#xff08;Advanced Message Queue 高级消息队列协议…

gma 2 教程(二)数据操作:3. 支持生成的栅格格式信息

为了方便了解和选择输出栅格格式、配置高级创建选项&#xff0c;下表列出了gma可以生成&#xff08;复制/创建/转换&#xff09;的所有栅格格式的主要信息&#xff1a; 格式名生成模式支持数据类型扩展名多维栅格支持色彩映射表支持的数据类型多波段支持压缩模式AAIGrid复制By…

微擎后台getshell,低权限也可以

/web/index.php?csite&aeditor 这个文件可以编辑html&#xff0c;然后前台会解析成php 没测试最新版 比如编辑专题&#xff1a;/web/index.php?csite&aeditor&dopage&multiid0 上架抓包 改html内容为php 复制前台url 访问之 博客原文&#xff1a; 微擎后…

4、Kubernetes 架构、理解 k8s 架构

kubeadm 用于初始化 Cluster。 kubectl 是 Kubernetes 命令行工具。通过 kubectl 可以部署和管理应用,查看各种资源,创建、删除和更新各种组件。 kubelet 运行在 Cluster 所有节点上,负责启动 Pod 和容器。 Kubernetes Cluster 由 Master 和 Node 组成,节点上运行着若干 Ku…

Python——— 面向对象

&#xff08;一&#xff09;初识面向对象 Python完全采用了面向对象的思想&#xff0c;是真正面向对象的编程语言&#xff0c; 完全支持面向对象的基本功能&#xff0c;例如&#xff1a;继承、多态、封装等。 Python 支持面向过程、面向对象、函数式编程等多种编程范 式。 Pyth…

6.2Java EE——Spring的入门程序

下面通过一个简单的入门程序演示Spring框架的使用&#xff0c;要求在控制台打印“张三&#xff0c;欢迎来到Spring”&#xff0c;实现步骤具体如下。 1、在IDEA中创建名称为chapter06的Maven项目&#xff0c;然后在pom.xml文件中加载需使用到的Spring四个基础包以及Spring依赖…