贪吃蛇的实现)"/>
c语言练习100(贪吃蛇的实现)
贪吃蛇的实现
先实现主界面,后续将会不断完善。(逐渐添加更多的功能)
test.c
#define _CRT_SECURE_NO_WARNINGS
#include"snake.h"
void Test() {Snake snake = { 0 };//创建贪吃蛇//1.游戏开始 - 初始化游戏GameStart(&snake);//2.游戏运行 - 游戏的正常运行过程//GameRun(&snake);//3.游戏结束 - 游戏的善后(释放资源)//GameEnd(&snake);
}
int main() {//设置程序本地化setlocale(LC_ALL, "");Test();return 0;
}
snake.c
#define _CRT_SECURE_NO_WARNINGS
#include"snake.h"
//设置光标的位置
void SetPos(short x,short y) {COORD pos = { x,y };HANDLE hOutput = NULL;//获取标准输出的句柄(用来表示不同设备的数值)hOutput = GetStdHandle(STD_OUTPUT_HANDLE);//设置标准输出上光标的位置为posSetConsoleCursorPosition(hOutput, pos);
}
void WelComeToGame() {//定位光标SetPos(40, 15);printf("欢迎来到贪吃蛇小游戏\n");SetPos(40, 25);system("pause");//pause为暂停命令
}
void GameStart(pSnake ps) {//控制台窗口的设置system("mode con cols=100 lines=30");system("title 贪吃蛇");//光标隐藏掉HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);//隐藏光标操作CONSOLE_CURSOR_INFO CursorInfo;GetConsoleCursorInfo(hOutput, &CursorInfo);//获取控制台光标信息CursorInfo.bVisible = false;//隐藏控制台光标SetConsoleCursorInfo(hOutput, &CursorInfo);//设置控制台光标状态//打印欢迎界面WelComeToGame();
}
snake.h
#pragma once
#include<locale.h>
#include<stdlib.h>
#include<Windows.h>
#include<stdbool.h>
#include<stdio.h>
enum GAME_STATUS {OK,END_NORMAL,KILL_BY_WALL,KILL_BY_SELF
};
enum DIRECTION
{UP=1,DOWN,LEFT,RIGHT
};
typedef struct SnakeNode
{int x;int y;struct SnakeNode* next;
}SnakeNode, *pSnakeNode;
//蛇的结构
typedef struct Snake
{pSnakeNode _pSnake;//指向贪吃蛇头结点的指针pSnakeNode _pFood;//指向食物结点的指针int _Score;//贪吃蛇累计总得分int _FoodWeight;//一个食物的得分int _SleepTime;//每走一步休息的时间enum DIRECTION _Dir;//描述蛇的方向enum GAME_STATUS _Status;//游戏的状态
}Snake, *pSnake;
//1.游戏开始 - 初始化游戏
void GameStart(pSnake ps);
//2.游戏运行 - 游戏的正常运行过程
void GameRun(pSnake ps);
//3.游戏结束 - 游戏的善后(释放资源)
void GameEnd(pSnake ps);
//游戏开始的欢迎界面
void WelComeToGame();
更多推荐
c语言练习100(贪吃蛇的实现)
发布评论