输出贪吃蛇背景(地图)
这一节使用循环来输出贪吃蛇的背景(地图),最终效果如下图:
红色空心方框表示边框,绿色实心方框表示贪吃蛇的活动区域。
代码如下:
红色空心方框表示边框,绿色实心方框表示贪吃蛇的活动区域。
代码如下:
#include <stdio.h> #include <conio.h> #include <windows.h> int main(){ int width = 30, height = width; //宽度和高度 int x, y; //x、y分别表示当前行和列 HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); //设置窗口大小 system("mode con: cols=64 lines=32"); //打印背景,按行输出 for(x=0; x<width; x++){ for(y=0; y<height; y++){ if(y==0 || y==width-1 || x==0 || x==height-1){ //输出边框 SetConsoleTextAttribute(hConsole, 4 ); printf("□"); }else{ //贪吃蛇活动区域 SetConsoleTextAttribute(hConsole, 2 ); printf("■"); } } printf("\n"); } //暂停 getch(); return 0; }程序的关键是两层嵌套的循环。x=0 时,内层循环执行30次,输出第0行;x=1 时,内层循环又执行30次,输出1行。以此类推,直到 x=30,外层循环不再执行(内存循环当然也就没机会执行),输出结束。
注意,□和■虽然都是单个字符,但它们不在ASCII码范围内,是宽字符,占用两个字节,用 putchar 等输出ASCII码(一个字节)的函数输出时可能会出现问题,所以作为字符串输出。我们将在宽字符一节中重点讲解。