c语言怎么在编码时改变颜色,怎么给贪吃蛇换一个颜色 怎么改 代码如下
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
#include
#include
#include //windows編程頭文件
#include
#include //控制臺輸入輸出頭文件
#ifndef __cplusplus
typedef char bool;
#define false 0
#define true 1
#endif
//將光標移動到控制臺的(x,y)坐標點處
void gotoxy(int x, int y)
{
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
#define SNAKESIZE 100//蛇的身體最大節數
#define MAPWIDTH 78//寬度
#define MAPHEIGHT 24//高度
//食物的坐標
struct {
int x;
int y;
}food;
//蛇的相關屬性
struct {
int speed;//蛇移動的速度
int len;//蛇的長度
int x[SNAKESIZE];//組成蛇身的每一個小方塊中x的坐標
int y[SNAKESIZE];//組成蛇身的每一個小方塊中y的坐標
}snake;
//繪制游戲邊框
void drawMap();
//隨機生成食物
void createFood();
//按鍵操作
void keyDown();
//蛇的狀態
bool snakeStatus();
//從控制臺移動光標
void gotoxy(int x, int y);
int key = 72;//表示蛇移動的方向,72為按下“↑”所代表的數字
//用來判斷蛇是否吃掉了食物,這一步很重要,涉及到是否會有蛇身移動的效果以及蛇身增長的效果
int changeFlag = 0;
int sorce = 0;//記錄玩家的得分
int i;
void drawMap()
{
//打印上下邊框
for (i = 0; i <= MAPWIDTH; i += 2)//i+=2是因為橫向占用的是兩個位置
{
//將光標移動依次到(i,0)處打印上邊框
gotoxy(i, 0);
printf("■");
//將光標移動依次到(i,MAPHEIGHT)處打印下邊框
gotoxy(i, MAPHEIGHT);
printf("■");
}
//打印左右邊框
for (i = 1; i < MAPHEIGHT; i++)
{
//將光標移動依次到(0,i)處打印左邊框
gotoxy(0, i);
printf("■");
//將光標移動依次到(MAPWIDTH, i)處打印左邊框
gotoxy(MAPWIDTH, i);
printf("■");
}
//隨機生成初試食物
while (1)
{
srand((unsigned int)time(NULL));
food.x = rand() % (MAPWIDTH - 4) + 2;
food.y = rand() % (MAPHEIGHT - 2) + 1;
//生成的食物橫坐標的奇偶必須和初試時蛇頭所在坐標的奇偶一致,因為一個字符占兩個字節位置,若不一致
//會導致吃食物的時候只吃到一半
if (food.x % 2 == 0)
break;
}
//將光標移到食物的坐標處打印食物
gotoxy(food.x, food.y);
printf("*");
//初始化蛇的屬性
網頁鏈接= 3;
網頁鏈接= 200;
//在屏幕中間生成蛇頭
snake.x[0] = MAPWIDTH / 2 + 1;//x坐標為偶數
snake.y[0] = MAPHEIGHT / 2;
//打印蛇頭
gotoxy(snake.x[0], snake.y[0]);
printf("■");
//生成初試的蛇身
for (i = 1; i < snake.len; i++)
{
//蛇身的打印,縱坐標不變,橫坐標為上一節蛇身的坐標值+2
snake.x[i] = snake.x[i - 1] + 2;
snake.y[i] = snake.y[i - 1];
gotoxy(snake.x[i], snake.y[i]);
printf("■");
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的c语言怎么在编码时改变颜色,怎么给贪吃蛇换一个颜色 怎么改 代码如下的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言如何发现错误在哪里,二个C语言例子
- 下一篇: python实例化次数怎么算,我需要一个