您现在的位置是:首页 > 文章详情

《跟老卫学仓颉编程语言开发》实战:猜数字游戏

日期:2025-03-26点击:26

以前中央电视台财经频道推出过一档大型演播室互动娱乐节目《购物街》,该节目里面包含了一个叫做“高了低了”的游戏环节。笔者非常喜爱这个游戏。这个游戏环节设置了八个百元价位左右的商品,首先选手要选择编号1-8的商品,之后猜这个商品的价格。在选手猜价格的过程中,主持人会给出高了、低了的提示,直到帮助选手猜出正确价格为止。之后继续选择,以此类推,直到30秒时间到为止。

本节所要介绍的猜数字游戏也是类似的,程序给出一个1到100之间的随机整数,让用户猜。用户猜一个数并输入到程序,然后程序会提示猜测是大了还是小了。如果猜对了,它会打印祝贺信息并退出。

本节通过仓颉语言,来开发一个简单的猜数字游戏,综合运用了流程控制、标准输入、字符串的操作、整型的比较等知识。

本节示例可以在“guessing_game”应用下找到。

输入数字

在程序界面输入数字代表用户猜数字的实现。如何实现在程序界面输入数字?这里就需要用到std.console包,该模块包含许多在执行输入和输出时需要的常见操作。

import std.console.* // 标准输入流(stdIn)读取一行 let line = Console.stdIn.readln() var lineStr = line.getOrThrow(); 

上述代码实现了通过标准输入(stdIn)读取一行文本的功能。当然,还需要将读入的本文,转为整型数字,代码如下:

import std.convert.* // 字符串转为整型 let guess: Int64 = Int64.parse(lineStr); println("You guessed: ${guess}"); 

convert包提供从字符串转到特定类型的Convert系列函数。上述例子中,Int64.parse()接口用于实现将Int64类型字面量的字符串转换为Int64值的相关操作函数。

比较大小

比较大小的流程控制,可以采用前面章节所学习的if-else语句,代码如下:

// 被猜的数字 let secret_number = 41; // 比大小 if (guess == secret_number) { println("You win!"); break; } else if (guess < secret_number) { println("Too small!"); } else { println("Too big!"); } 

上述代码,比较输入的数字guess与被猜的数字secret_number比较大小。

  • 如果guess小于secret_number,则提示输入的数字太小了;
  • 如果guess大于secret_number,则提示输入的数字太大了;
  • 如果guess等于secret_number,则说明猜中,退出程序。

循环输入

如果没有猜中,程序应该支持循环输入。这里,我们用到了while循环。完整程序代码如下:

/// 猜数字游戏 import std.console.* import std.convert.* main() { println("Guess the number! 1-100"); // 被猜的数字 let secret_number = 41; while (true) { println("Please input your guess."); // 标准输入流(stdin)读取一行 let line = Console.stdIn.readln() var lineStr = line.getOrThrow(); // 字符串转为整型 let guess: Int64 = Int64.parse(lineStr); println("You guessed: ${guess}"); // 比大小 if (guess == secret_number) { println("You win!"); break; } else if (guess < secret_number) { println("Too small!"); } else { println("Too big!"); } } } 

运行效果

运行程序,输入数字进行猜测,运行效果如下:

Guess the number! 1-100 Please input your guess. 3 You guessed: 3 Too small! Please input your guess. 50 You guessed: 50 Too big! Please input your guess. 45 You guessed: 45 Too big! Please input your guess. 35 You guessed: 35 Too small! Please input your guess. 40 You guessed: 40 Too small! Please input your guess. 42 You guessed: 42 Too big! Please input your guess. 41 You guessed: 41 You win! 

参考引用

免费开源书《跟老卫学仓颉编程语言开发》,源码见:https://github.com/waylau/cangjie-programming-language-tutorial

原文链接:https://my.oschina.net/waylau/blog/18008388
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章