最近,把扫雷写完了。主要的功能其实早就实现了,美化控制台页面花费了我好多时间。感觉就跟网页前端一样,我现在已经完全是前端工程师的形状了。

=============================================================================
这里把美化控制台的相关命令列举一下。下面的这些函数要使用,必须包含在windows.h这个头文件中

system("pause");

实现按任意键继续的效果,这个功能我感觉挺适合控制台游戏的开发的

system("cls");

清空当前控制台的屏幕

void gotoxy(int x,int y){COORD c;c.X=x;c.Y=y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
}

gotoxy()这个函数可以指定printf的输出位置。y代表的是第多少行,x代表的是第多少列 (控制台的行的宽度是一个回车,列的宽度是一个空格)

int color(int c){//SetConsoleTextAttribute是API设置控制台窗口字体颜色和背景色的函数SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), c);        //更改文字颜色return 0;
}

color()这个函数可以改变控制台的的字体颜色,也可以改变控制台的背景颜色

void output_board(int i,int j,int chang,int kuan){//(i,j)表示边框的左上角//i代表第几行,j代表第几列 int last_line=i+kuan-1;int last_col=j+chang-1;int first_j=j;int first_i=i; for( ;i<=last_line;i++){//先遍历行 j=first_j;for(;j<=last_col;j++){//再遍历列 gotoxy(j,i);if(i==first_i||i==last_line){printf("-");}else if(j==first_j||j==last_col){printf("|");} }}gotoxy(0,0);//控制台输出位置归零
}
//输出效果为-----------|         ||         ||         |-----------

output_board()这个函数是我自己写的。写扫雷的时候,输出了大量的边框。所以,我就想把他直接封装起来。i代表第几行,j代表第几列,是边框的左上角(这个和上面的gotoxy参数的顺序不一样,是相反的).,可以自己定义边框的长宽

void output_squareboard(int i,int j,int chang,int kuan){//(i,j)表示边框的左上角//i代表第几行,j代表第几列//这个函数有bug,j和chang的奇偶性,有可能会导致最右边的边框输出不出来//但是,我懒得再排错了。出现右边框打印不出来的话,就自己换换j或者changint last_line=i+kuan-1;int last_col=j+chang-1;int first_j=j;int first_i=i; for( ;i<=last_line;i++){//先遍历行 j=first_j;for(;j<=last_col;j=j+2){//字符"■"占有两个空格的位置 //再遍历列 gotoxy(j,i);if(i==first_i||i==last_line){printf("■");}else if(j==first_j||j==last_col){printf("■");} }}gotoxy(0,0);//控制台的输出位置归零
}
//输出效果为■■■■■■■■■■■        ■■        ■■■■■■■■■■■

output_squareboard()函数是输出以 "■"围成的方框,"■"行和行之间的距离其实没有那么大,是紧靠在一起的,可以自己在控制台上试一下。
值得注意的是,"■"这个字符,在控制台上是占有两个字符的,所以在遍历列的时候,每次都要+2。这个函数实际上有一个bug,就是j和chang的奇偶性,有可能会导致最右边的边框输出不出来。但是我懒得排错了,如果出现了这种情况的话,你可以换一换j和chang的值

void SetSize(unsigned uCol,unsigned uLine){//指定控制台窗口的大小 ,代表了控制台的长度是ucol个空格,宽度是uline个回车 char cmd[64];sprintf(cmd,"mode con cols=%d lines=%d",uCol,uLine);system(cmd);
}

SetSize()函数可以指定控制台显示的大小:控制台的长度是ucol个空格,宽度是uline个回车

还有一个模板,这个模板是模仿网上一个C语言贪吃蛇博客上面的。

void menu(){//显示菜单int i,j;color(2);//绿色,输出"扫雷" printf("                                                                                                       \n");printf("                                                                                                       \n"); printf("                                                                                                       \n");printf("              _____    ______           ________                                    _________          \n");printf("              |    |  /        \\       /        \\          |     _________        ______|_______     \n");printf("              |    | /   ____    \\   /   ____    \\        _|__            |      |   \\  |   \\  |   \n");printf("              |    |/   /    \\    \\ /   /   \\    \\         |      ________|      |   \\  |   \\  | \n");printf("              |        /      |        /      \\    \\     __|__            |      ______________      \n");printf("              |      /        |      /         |    |      |      ________|      |______|______|       \n");printf("              |    |          |    |          |    |    ____    ___  ____        |______|______|       \n");printf("              |    |          |    |          |    |    |___|  |   |/ __  \\      / _____  \\          \n");printf("              |    |          |    |          |    |    ____   |     /   \\  \\   /  /____\\__\\       \n");printf("              |    |          |    |          |    |    |   |  |    |    |  |   |  \\_______           \n");printf("              |____|          |____|          |____|    |___|  |___ |    |__|    \\________/           \n");printf("                                                                                                       \n");printf("                                                                                                       \n");gotoxy(43,18);//淡蓝色,居中输出"C语言扫雷" color(11);printf("C 语 言 扫 雷");color(14);//白色,输出边框output_board(20,27,47,6);color(10);//绿色,输出游戏选项 gotoxy(35, 22);printf("1.开始游戏");gotoxy(55, 22);printf("0.退出游戏");gotoxy(29,27);//蓝色,输出游戏选项 color(3);printf("请选择[1 0]:[ ]");    //作者署名color(7); gotoxy(90,27);printf("by  cookie_plus");gotoxy(92,28);printf("未来科技有限公司");color(7);       // 恢复控制台的颜色gotoxy(0,0);    // 恢复控制台输出的位置
}

这个模板可以一直保留着,以后再写类似的程序的时候,可以直接把printf的内容换一下

====================================================================
参考博客:C语言贪吃蛇游戏的实现(一)

C语言美化控制台命令相关推荐

  1. UDK控制台命令概览

    控制台命令 文档概要: 本文档将覆盖各种游戏及编辑器控制台命令(命令在控制台侧进行输入). 文档变更记录:创建,并不断维护. 控制台命令 概述 命令列表 一般目的 调试 内存和性能 显示 渲染 贴图m ...

  2. r语言使用linux命令,技术|如何在 Ubuntu 上安装和使用 R 语言

    这个教程指导你如何在 Ubuntu 上安装 R 语言.你也将同时学习到如何在 Ubuntu 上用不同方法运行简单的 R 语言程序. R,和 Python 一样,它是在统计计算和图形处理上最常用的编程语 ...

  3. C语言变换控制台颜色

    C语言变换控制台颜色 我们都知道用C语言写的程序打开的控制台颜色默认为黑底白字,看的多了确实感觉乏味,那么可以改变颜色么?其实是可以的,有两种方法可以改变控制台颜色,一种是用 system() 调用 ...

  4. UE4控制台命令有哪些,什么意思?

    转自:https://www.52pojie.cn/thread-674880-1-1.html 官方文档: file:///D:/git/AirSim/Unreal/Environments/New ...

  5. C语言调用Cmd命令以及执行系统软件

    C语言调用Cmd命令以及执行系统软件 system("explorer.exe")文件夹管理器 system("explorer.exe c:");打开C盘 s ...

  6. C语言代替cmd命令

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105066506 C ...

  7. Linux系统安全与应用(二)——安全机制、安全控制、弱口令检测JR、网络扫描NMAP和控制台命令Netstat

    Linux系统安全与应用(二)--安全机制.安全控制.弱口令检测JR.网络扫描NMAP和控制台命令Netstat 一.使用sudo机制提升权限 1.su命令的缺点 2.sudo的用途和用法 3.配置s ...

  8. [转载] c语言中检查命令行参数_C中的命令行参数

    参考链接: Java中的命令行参数 c语言中检查命令行参数 Command line argument is a parameter supplied to the program when it i ...

  9. c语言程序命令行,ttyd(C语言编写的命令行程序) v1.3.1 免费版

    ttyd是一个C语言编写的命令行程序,可以把任意命令行程序分享到网页上操作,可以看做是个网页版的远程终端,支持 Linux.macOS 系统,还可以运行在 OpenWrt 之类的嵌入式系统上. 功能特 ...

最新文章

  1. 2006年下半年 网络工程师 上下午试卷【附带答案】
  2. 基于现有工程解读stm32的工程文件
  3. mysql基本操作 [http://www.cnblogs.com/ggjucheng/archive/2012/11/03/2752082.html]
  4. Quick BI 功能“炸弹”:即席分析、模板市场、企业微信免密登录等强势功能
  5. 《剑指offer》字符串的排列
  6. AES_ENCRYPT() 和 AES_DECRYPT()
  7. MyBatis 配制文件层次表
  8. JavaScript | JSON基本格式
  9. ie浏览器速度提升设置 关闭网页多媒体方法
  10. pytorch错误解决 | 错误‘Widget Javascript not detected. It may not be installed or enabled properly.‘
  11. java8 64x下载_jdk8 u102 64位下载
  12. Character,String相关方法,Int,double互相转换
  13. Scala中如何优雅的处理Null
  14. python基础随机数模块生成银行卡密码
  15. windows关机自动还原设置UWF
  16. Java微信小程序发送服务通知
  17. 忘记压缩包密码 python 暴力破解rar密码
  18. matlab仿真低通滤波,Matlab 低通Butterworth滤波仿真m文件
  19. 一种轻量化多尺度的遥感跨模态图文检索方法
  20. K1-K4分组控制LED

热门文章

  1. substratum android8,如何在没有root的情况下在Android Oreo上安装Substratum主题
  2. 如何将Excel表格中的数据粘贴到记事本中,且每列间距都为一个空格?
  3. 弱监督检测初识——Weakly Supervised Deep Detection Networks解读
  4. xml 入门 shema_02
  5. 螺旋传动设计系统lisp_螺旋传动的设计计算.pdf
  6. ZOC7-ssh工具配置快速登录执行命令
  7. 【开关电源】matlab/simulink入门
  8. webpack打包路径更改_webpack打包教程
  9. ubuntu下安装rtl8811cu/rtl8821cu网卡 Tplink WDN5200H网卡
  10. 记录你生活的点滴,体会分享的快乐