C语言版彩色版贪吃蛇

C语言版彩色版贪吃蛇
代码如下

#include <stdio.h>
#include <windows.h>
#include <conio.h>
#include <malloc.h>
#include <time.h>
#include <stdlib.h>
void setmouth(int x, int y);//设置光标
void background();//背景生成
void setcolour(int a);//设置颜色
void init();//初始化
void hidemouth();//隐藏光标
void startfood();//初始创建食物
void startsnack();//初始创建小蛇
void snackmove(int,int);//小蛇移动
int checksnack(int);//小蛇碰撞检测
void snackdie();//小蛇死亡
void showing();//输出最新的show
void screenRefresh(int);//屏幕刷新
void newfood();//创建新食物
void updategoal();//更新得分
int movedire(int,int);//获取小蛇的移动方向
int snacklength = 3;//小蛇长度
int snackhead=2;//蛇头
int snacktail=0;//蛇尾
int MaxLine = 40, MaxLie = 40;//定义最大行数,列数
//结构体保存各个事物的属性
struct map {
   
	int colour;
	int kind;
	char *display;
}
show[40][40], //展示地图
wall = {
    0x6C,1,"■" },//墙体
livearea = {
    0x7F,2,"□" },//小蛇活动区域
food = {
    0x7C,3,"★" },//食物
snack = {
    0x7A,4,"●" };//小蛇蛇体的属性
 
struct SnackMap
{
   
	int x;
	int y;
	
}SnackSite[100],FoodSite;
 
/***************************************
                主程序
****************************************/
 
int main()
{
   
	int olddirection='w'; //初始键盘信号
	int newdirection =0;//获取键盘信号
	init();//初始化
 
	setmouth(60, 0);
	setcolour(0xF0);
	printf("\n得分:");
	printf("%d\n", snacklength - 3);
	printf("请切换为英文输入法\n");
	printf("W A S D键分别表示:上 左 下 右\n");
	printf("      Copyright [2020.12.13] by [/^Mike^/]        ");
	
	while (1) {
   
		if (_kbhit()) {
     //检测缓冲区中是否有数据
			newdirection = tolower(_getch());  //将缓冲区中的数据以字符的形式读出
			if (newdirection == 27) {
   
				break;
			}
			else {
   
				//获取小蛇新的移动方向
				newdirection=movedire(olddirection, newdirection);
				if (newdirection != olddirection)
				{
   
					olddirection = newdirection;
				}
			}
		}
		screenRefresh(newdirection);
		Sleep(10);
	}
	return 0;
}
//更新得分
void updategoal()
{
   
	setcolour
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值