还记得我发的小白第一篇吗?上面记载了一些简单的随机数控制台程序的需求。
毕竟这也算得上是小小的游戏吧,除了一些必要的机制之外,自然需要像文章那般润色。现在,这篇文章将会分享一些有关的代码。各位如果有更好的方法,欢迎在评论区发表看法。
颜色
每个人都不希望看到一成不变的黑色在控制台这里,那么,如何输出有颜色的文字呢?如何更改控制台背景色呢?
其中一种方法可以直接在printf()语句里加一些转义符号。颜色的控制通过ESC字符( 33)加”[“加颜色代码加”m”实现。ESC的ASCII码是十进制的27,八进制的033( 33)。听上去很懵,没关系,举个栗子就好啦
这里搬上一个最全的例子:
printf(“ 33[1;40;32m color!!! 33[0m hellon”);
33 声明了转义序列的开始,然后是 [ 开始定义颜色。后面的 1 定义了高亮显示字符。然后是背景颜色,这里面是40,表示黑色背景。接着是前景颜色,这里面是32,表示绿色。我们用 33[0m 关闭转义序列, 33[0m 是终端默认颜色。而下面的代码会产生什么结果呢?
printf(" 33[36m********** 猜猜随机数2.5 ************n 33[0m");
printf("************** 进入游戏请按:1 *****************n");
printf("************** 游戏说明请按:2 *****************n");
printf("*************** 退出请按:3 ******************n");
printf("**************************************************n");
这是结果
其中这里可以通过调整36m来调整字体颜色。
/*颜色列表如下:
none = " 33[0m"
black = " 33[0;30m"
dark_gray = " 33[1;30m"
blue = " 33[0;34m"
light_blue = " 33[1;34m"
green = " 33[0;32m"
light_green -= " 33[1;32m"
cyan = " 33[0;36m"
light_cyan = " 33[1;36m"
red = " 33[0;31m"
light_red = " 33[1;31m"
purple = " 33[0;35m"
light_purple = " 33[1;35m"
brown = " 33[0;33m"
yellow = " 33[1;33m"
light_gray = " 33[0;37m"
white = " 33[1;37m"
字背景颜色范围:40--49 字颜色: 30--39
40: 黑 30: 黑
41:红 31: 红
42:绿 32: 绿
43:黄 33: 黄
44:蓝 34: 蓝
45:紫 35: 紫
46:深绿 36: 深绿
47:白色 37: 白色 */
其实调整颜色的方式不止一种,但是这种是小白学会的第一种方法。还是很有纪念意义的。
定点输出
这个主要可以记录猜测过程中的步数等等。如果不拘泥于这个随机数,还可以挂一个人物姓名,生命,时间等等在界面中不变的量。但是我们总不能输出其他东西的时候空两格来输出这些。所以,这时候就需要我们通过调整控制台光标坐标来达到定点输出的效果。
比如此处的最佳记录
这里小白直接分享调整坐标的代码吧,通过调整坐标,我们就可以在控制台范围内输出任何东西。
void zuobiao(int x,int y){
COORD rd;
rd.X = x;
rd.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), rd);
}
//但是怎么用呢?
zuobiao(58,9);
printf("最佳记录:剩余%d次就猜中了。",count);
//酱紫就行啦,是不是很简单呢?
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。