让openai写个贪吃蛇搭建的chatgpt
让Openai 写个贪吃蛇,这个代码对吗?大神给分析一下,这个是自己搭建的chatgpt。目前这个智能Ai 确实有很多的功能
#include
#include
#include
#define ROW 10
#define COL 10
//定义枚举类型,表示蛇身和食物的状态
enum Status{EMPTY, FOOD, BODY};
//定义蛇节点结构体
typedef struct Node
{
int x;
int y;
struct Node *next;
}Node;
//定义蛇结构体
typedef struct Snake
{
Node *head;
Node *tail;
int len;
}Snake;
//定义地图结构体
typedef struct Map
{
int arr[ROW][COL];
int food_x;
int food_y;
}Map;
//定义方向枚举类型
enum Direction{UP, DOWN, LEFT, RIGHT};
//函数声明
void init_map(Map *map);
void init_snake(Snake *snake);
void draw_map(Map *map);
void draw_snake(Snake *snake);
void move_snake(Snake *snake, Map *map, enum Direction dir);
void create_food(Map *map);
int main()
{
Map map;
Snake snake;
//初始化地图
init_map(&map);
//初始化蛇
init_snake(&snake);
//游戏循环
while(1)
{
//绘制地图
draw_map(&map);
//绘制蛇
draw_snake(&snake);
//接收用户输入的方向
enum Direction dir;
printf("请输入上下左右指令:");
scanf("%d", &dir);
//蛇移动
move_snake(&snake, &map, dir);
//判断蛇是否吃到食物
if(map.arr[snake.head->x][snake.head->y] == FOOD)
{
//蛇增长
Node *new_node = (Node *)malloc(sizeof(Node));
new_node->x = snake.tail->x;
new_node->y = snake.tail->y;
new_node->next = NULL;
snake.tail->next = new_node;
snake.tail = new_node;
snake.len++;
//重新生成食物
create_food(&map);
}
//判断蛇是否撞墙或自己
if(snake.head->x == 0 || snake.head->x == ROW-1 ||
snake.head->y == 0 || snake.head->y == COL-1 ||
map.arr[snake.head->x][snake.head->y] == BODY)
{
printf("Game Over! ");
break;
}
//清屏
system("clear");
}
return 0;
}
//初始化地图
void init_map(Map *map)
{
//将地图元素全部置为EMPTY
for(int i=0; iarr[i][j] = EMPTY;
}
}
//随机生成食物
srand((unsigned int)time(NULL));
map->food_x = rand() % (ROW-2) + 1;
map->food_y = rand() % (COL-2) + 1;
map->arr[map->food_x][map->food_y] = FOOD;
}
//初始化蛇
void init_snake(Snake *snake)
{
//创建蛇头
Node *head = (Node *)malloc(sizeof(Node));
head->x = 1;
head->y = 1;
head->next = NULL;
snake->head = head;
snake->tail = head;
snake->len = 1;
//创建蛇身
Node *cur = head;
for(int i=2; i<=4; i++)
{
Node *new_node = (Node *)malloc(sizeof(Node));
new_node->x = 1;
new_node->y = i;
new_node->next = NULL;
cur->next = new_node;
cur = new_node;
snake->len++;
}
snake->tail = cur;
}
//绘制地图
void draw_map(Map *map)
{
//绘制边界
for(int i=0; iarr[i][j] == EMPTY)
printf(" ");
else if(map->arr[i][j] == FOOD)
printf("@");
else if(map->arr[i][j] == BODY)
printf("#");
}
printf("* ");
}
//绘制边界
for(int i=0; ihead;
while(cur != NULL)
{
//将蛇身元素置为BODY
map->arr[cur->x][cur->y] = BODY;
cur = cur->next;
}
}
//蛇移动
void move_snake(Snake *snake, Map *map, enum Direction dir)
{
//备份蛇头
Node *head = (Node *)malloc(sizeof(Node));
head->x = snake->head->x;
head->y = snake->head->y;
head->next = NULL;
//根据方向改变蛇头坐标
switch(dir)
{
case UP:
head->x--;
break;
case DOWN:
head->x++;
break;
case LEFT:
head->y--;
break;
case RIGHT:
head->y++;
break;
}
//更新蛇头
snake->head->x = head->x;
snake->head->y = head->y;
snake->head->next = head
#OpenAI#
#ChatGPT#
你是如何做读书笔记的呢?我是一名读书写作爱好者,今年已经累计阅读了60几本书,写了30多篇读后感,我就说一下我自己的写读书笔记的经验吧。一鱼骨笔记鱼骨笔记,就是利用鱼骨图来做读书笔记,你可以看下鱼骨笔记术
创业该怎样起步?创业怎么起步,创业做什么好,其实在我们创业前都考虑过的,也许也制定一些的目标。但却不知从何下手,能否解决苦恼和困惑而顺利创业呢,那就是找到了创业的机会,找到创业的项目。创业怎么起步
转债暴雷怎么办?目前见过最大的暴雷债辉丰转债,公司一度被St,债价长期70多元,正股触发回售条款,企业要以100多元收购持债人可转债,一直担心它违约,70多没买,结果人家完美履约,后悔死,雷只对股
金华当年为什么会建立横店影视城?首先声明一点,当年建立横店影视城的想法,是当时横店集团创始人徐文荣的想法,虽然这其中金华有过相关扶持,但主要归功于徐文荣。当时横店很穷,有着出门看见八面山,薄粥三餐度极寒的惨状,为
是什么让你坚持玩头条的?头条人才可多了,不然也不会看到一些优秀的人才,跟一些优质的评论,还有神奇的图片。头条上的人才众多,说话又好听,还有就是收入都非常高。头条上最精彩的评论,句句是经典,诙谐幽默一现在人
柳传志会被追责吗?追责肯定会被追责,关键是追责到那一种程度。是严苛追责,还是例行公事走过场,那就要看以后发生的情况了。柳传志是一名著名的民营企业家,又有改革先锋大名支撑,不是随便任何人都可以动的,这
为什么我看了那些机械专业被劝退的人,有点觉得未来无望?本人机械工程及自动化专业机电一体化方向毕业六年,坑里已经待了六年了,说机械好就业这不可否认,但还是要劝劝各位,千万不要学机械。1。机械专业学习压力大。说说课程吧,高数,线代,概率统
女孩学什么专业好就业?这个问题要看女孩的思维是否敏溆,智商高的可学财径医务科技这些发展潜力大,稳定安全。个人觉得以你自己的喜好选择相对应的专业,发展个人尚长是两全其美的事。而且也发挥了你的才能取得酬劳女
有胃病的人一定不能吃哪些水果?多吃蔬菜水果真的好吗?我们可能忽略了胃的感受。对于胃肠功能不好的人吃一些生冷的食物下肚,每几分钟肚子就叽里咕噜的叫唤,疼的疼,拉的拉。我妈就是很典型的胃肠功能不好,但是还挺爱吃水果
为什么有些人现在对保险还带有偏见,这种偏见是怎么形成的?交了近二十年的意外附加重疾保险金说好的在我六十岁时可一次性拿到两万元人民币事前我女儿打了平安客服电话人家说那两万元反款须在我身故之后领取唉呦太堵心了早知如此何必当初无奈我嘱附孩子们
退休后打算自驾新疆西藏,1015万左右买啥车好呢?我去过新疆,西藏今年打算去,估计不能有时间了。喜欢玩的话,退休可以常年玩了。如果就为了西藏新疆,没必要特意选个车,啥车都行。啥车都能去。如果想找功能车,我可以给你推荐。退休如果是夫