游戏c语言编程(c语言入门基础100题)


还记得我发的小白第一篇吗?上面记载了一些简单的随机数控制台程序的需求。

毕竟这也算得上是小小的游戏吧,除了一些必要的机制之外,自然需要像文章那般润色。现在,这篇文章将会分享一些有关的代码。各位如果有更好的方法,欢迎在评论区发表看法。


颜色

每个人都不希望看到一成不变的黑色在控制台这里,那么,如何输出有颜色的文字呢?如何更改控制台背景色呢?

其中一种方法可以直接在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        ************n33[0m");
		printf("**************  进入游戏请按:1   *****************n");
		printf("**************  游戏说明请按:2   *****************n");
		printf("***************    退出请按:3   ******************n");
		printf("**************************************************n");

C语言游戏——随机数(部份代码)

这是结果

其中这里可以通过调整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: 白色  */

其实调整颜色的方式不止一种,但是这种是小白学会的第一种方法。还是很有纪念意义的。

定点输出

这个主要可以记录猜测过程中的步数等等。如果不拘泥于这个随机数,还可以挂一个人物姓名,生命,时间等等在界面中不变的量。但是我们总不能输出其他东西的时候空两格来输出这些。所以,这时候就需要我们通过调整控制台光标坐标来达到定点输出的效果。C语言游戏——随机数(部份代码)

比如此处的最佳记录

这里小白直接分享调整坐标的代码吧,通过调整坐标,我们就可以在控制台范围内输出任何东西。

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); 
//酱紫就行啦,是不是很简单呢?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论