91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

C語言貪吃蛇代碼怎么寫

小億
122
2023-08-02 18:49:42
欄目: 編程語言

下面是一個簡單的C語言貪吃蛇的代碼示例:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#define WIDTH 20
#define HEIGHT 20
int snakeX[100], snakeY[100];  // 蛇身的位置
int snakeLength;  // 蛇身長度
int fruitX, fruitY;  // 水果的位置
enum eDirecton { STOP = 0, LEFT, RIGHT, UP, DOWN };  // 方向枚舉
enum eDirecton dir;  // 當前移動方向
// 初始化游戲
void Setup()
{
dir = STOP;
snakeX[0] = WIDTH / 2;
snakeY[0] = HEIGHT / 2;
snakeLength = 1;
fruitX = rand() % WIDTH;
fruitY = rand() % HEIGHT;
}
// 畫出當前游戲狀態
void Draw()
{
system("cls");
for (int i = 0; i < WIDTH + 2; i++)
printf("#");
printf("\n");
for (int i = 0; i < HEIGHT; i++)
{
for (int j = 0; j < WIDTH; j++)
{
if (j == 0)
printf("#");
if (i == snakeY[0] && j == snakeX[0])
printf("O");  // 蛇頭
else if (i == fruitY && j == fruitX)
printf("F");  // 水果
else
{
int snakeBody = 0;
for (int k = 1; k < snakeLength; k++)
{
if (snakeY[k] == i && snakeX[k] == j)
{
printf("o");  // 蛇身
snakeBody = 1;
}
}
if (!snakeBody)
printf(" ");
}
if (j == WIDTH - 1)
printf("#");
}
printf("\n");
}
for (int i = 0; i < WIDTH + 2; i++)
printf("#");
printf("\n");
}
// 處理輸入
void Input()
{
if (_kbhit())
{
switch (_getch())
{
case 'a':
dir = LEFT;
break;
case 'd':
dir = RIGHT;
break;
case 'w':
dir = UP;
break;
case 's':
dir = DOWN;
break;
case 'x':
exit(0);
break;
}
}
}
// 更新游戲狀態
void Logic()
{
int prevX = snakeX[0];
int prevY = snakeY[0];
int prev2X, prev2Y;
snakeX[0] += dir == RIGHT ? 1 : dir == LEFT ? -1 : 0;
snakeY[0] += dir == DOWN ? 1 : dir == UP ? -1 : 0;
if (snakeX[0] >= WIDTH) snakeX[0] = 0; else if (snakeX[0] < 0) snakeX[0] = WIDTH - 1;
if (snakeY[0] >= HEIGHT) snakeY[0] = 0; else if (snakeY[0] < 0) snakeY[0] = HEIGHT - 1;
for (int i = 1; i < snakeLength; i++)
{
prev2X = snakeX[i];
prev2Y = snakeY[i];
snakeX[i] = prevX;
snakeY[i] = prevY;
prevX = prev2X;
prevY = prev2Y;
}
if (snakeX[0] == fruitX && snakeY[0] == fruitY)
{
snakeLength++;
fruitX = rand() % WIDTH;
fruitY = rand() % HEIGHT;
}
}
int main()
{
Setup();
while (1)
{
Draw();
Input();
Logic();
Sleep(10);  // 控制游戲速度
}
return 0;
}

這是一個簡單的貪吃蛇游戲,使用了Windows API中的conio.h和windows.h庫來實現控制臺界面和按鍵監聽。游戲中使用箭頭鍵來控制蛇的移動方向,吃到水果后蛇的長度會增加。

0
蒙山县| 翁源县| 昭平县| 英超| 芜湖县| 乌拉特前旗| 濮阳市| 东阳市| 永靖县| 西充县| 四平市| 隆回县| 肃南| 通城县| 广河县| 太仓市| 宾阳县| 韩城市| 乌恰县| 肃北| 神池县| 东丰县| 苏尼特右旗| 嵊泗县| 平泉县| 石景山区| 九台市| 庆城县| 凯里市| 化州市| 永济市| 中西区| 新兴县| 启东市| 巧家县| 崇明县| 福贡县| 井陉县| 英德市| 孟村| 浦江县|