中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
得荣县| 长泰县| 堆龙德庆县| 颍上县| 桃园市| 玉门市| 武安市| 纳雍县| 文水县| 宁乡县| 洪雅县| 西青区| 新民市| 东乌珠穆沁旗| 南召县| 大渡口区| 弥渡县| 黑水县| 宜丰县| 武川县| 凤庆县| 遂川县| 张家川| 房产| 仁寿县| 瑞安市| 临湘市| 磴口县| 民乐县| 金门县| 卢氏县| 新平| 侯马市| 上饶市| 广昌县| 恩平市| 宜宾市| 湄潭县| 海口市| 贺州市| 红安县|