爱心吃豆-源码
程序代码:#include <graphics.h>
#include <math.h>
#include "myinclude.h"
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
#define HOME 0x4700
#define END 0x4f00
#define SPACE 0x3920
#define ESC 0x011b
#define ENTER 0x1c0d
#define N 6/*敌人的数量*/
struct PLay
{
double x;/*图形模式下的具体坐标*/
double y;
int i,j;/*转化后的坐标*/
int life;/*生命*/
int mode;/*判断8种样子*/
int move;/*判断是否按键移动*/
int flag;/*当跟踪性的敌人只有一个方向可走时,调用chang时需要变下方向*/
}play,amy[N];
char str[10];
int tbfPLAY[30][30];/*显示玩家*/
int tbfAMY[30][30];/*敌人1*/
int tbfAMY1[30][30];/*敌人2*/
int tbfFOOD[30][30];/*食物*/
int tbfWALL[30][30];/*墙壁*/
int score;/*得分*/
int WINNUM;/*要多少分才过关的标志*/
int GUAN;/*第几关的标志*/
double SPEED=9.0;/*地图中,0是食物,2是墙壁,-1空地*/
int MAP2[14][20]={2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,-1,0,0,0,0,0,0,-1,0,0,0,0,-1,-1,-1,0,0,0,2,
2,0,0,2,2,2,2,2,2,-1,-1,2,2,2,2,2,2,0,0,2,
2,0,-1,0,0,-1,-1,0,0,-1,0,-1,0,-1,0,-1,-1,0,0,2,
2,0,2,2,2,0,0,-1,0,2,0,0,-1,-1,0,2,2,2,0,2,
2,-1,-1,0,-1,-1,0,2,0,-1,0,0,2,-1,0,0,-1,-1,-1,2,
2,-1,-1,0,0,2,0,2,0,-1,-1,0,2,0,0,2,-1,2,0,2,
2,-1,-1,0,-1,2,0,2,2,2,0,-1,2,0,0,2,-1,2,0,2,
2,2,2,0,-1,2,0,2,-1,-1,0,-1,2,-1,-1,2,-1,-1,0,2,
2,0,-1,0,0,2,0,2,2,2,2,2,2,0,-1,2,0,2,0,2,
2,-1,2,0,0,2,0,0,-1,-1,-1,0,-1,-1,0,2,0,2,0,2,
2,0,-1,-1,-1,2,0,0,-1,-1,-1,0,0,-1,-1,2,0,-1,0,2,
2,-1,-1,-1,-1,-1,-1,2,-1,0,-1,-1,-1,-1,-1,0,0,-1,0,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};/*第一关的地图*/
int MAP3[14][20]={2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,-1,0,0,-1,-1,-1,0,0,-1,0,-1,-1,-1,-1,0,0,0,0,2,
2,0,2,0,2,2,0,2,0,2,-1,2,2,0,0,2,2,0,0,2,
2,-1,0,0,-1,-1,-1,0,0,0,-1,-1,0,-1,-1,-1,0,2,0,2,
2,-1,2,-1,2,0,-1,-1,0,0,-1,0,-1,-1,0,2,0,0,0,2,
2,0,2,0,2,-1,0,2,0,0,-1,0,2,0,0,2,0,0,0,2,
2,0,2,0,2,-1,0,0,-1,-1,-1,0,2,-1,0,2,0,2,0,2,
2,0,0,0,2,-1,0,2,0,0,-1,0,2,0,-1,2,0,-1,0,2,
2,-1,2,0,2,-1,0,2,0,0,-1,0,2,0,0,2,0,2,0,2,
2,-1,2,0,2,0,0,2,2,2,0,0,2,0,0,2,0,2,0,2,
2,-1,0,0,0,0,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,0,2,0,2,
2,0,2,2,0,2,0,2,0,2,0,2,2,2,0,0,2,2,0,2,
2,0,-1,-1,-1,0,0,-1,-1,0,0,-1,-1,0,0,0,-1,-1,-1,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};/*第二关的地图*/
int MAP[14][20]={2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,
2,-1,2,0,-1,-1,0,0,0,2,0,0,0,0,0,0,0,0,2,2,
2,-1,-1,0,0,0,2,-1,-1,0,0,0,2,2,2,0,0,0,-1,2,
2,-1,-1,0,0,0,-1,-1,2,2,0,2,2,2,2,2,0,0,-1,2,
2,-1,-1,0,2,0,-1,-1,2,2,-1,2,2,2,2,2,2,0,-1,2,
2,-1,2,0,2,2,2,2,2,2,2,-1,2,2,2,2,2,0,-1,2,
2,-1,-1,0,0,2,2,2,2,2,2,2,2,2,2,2,0,0,-1,2,
2,-1,-1,0,0,0,0,2,2,2,-1,-1,-1,-1,0,2,2,0,-1,2,
2,-1,-1,2,0,0,0,0,0,2,2,2,0,0,0,0,0,0,-1,2,
2,-1,-1,0,2,2,0,0,0,0,2,0,0,2,0,2,0,0,-1,2,
2,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,2,-1,-1,2,
2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};/*第三关的地图*/
void Init();/*图形驱动*/
void Close();/*图形驱动*/
void GameBegain();/*开始选择画面*/
void DrawBrick(int,int);/*画砖*/
void DrawFirst();/*开始画面*/
void GamePlay();/*游戏具体函数*/
void DrawFood(int,int);/*画食物*/
void ClrPlay();/*去掉玩家或敌人原来的地方*/
void AmyClr(int n);/*去掉敌人原来的地方*/
void TbfMode();/*玩家的变化*/
void AmyMode(int n);/*敌人的变化*/
void AmyMode1(int n);/*跟踪性敌人的变化*/
void AmyClockTime(int);/*控制时间间断*/
void AmyModeChange(int);/*敌人移动*/
void AmyModeChange1(int);/*敌人跟踪移动*/
void PlayModeChange();/*玩家自动变化*/
int UMove(int);/*四个方向单独判断是否敌人可以移动*/
int DMove(int);
int RMove(int);
int LMove(int);
void Ugo(int);/*四发方向敌人的直线移动*/
void Dgo(int);
void Rgo(int);
void Lgo(int);
int AmyRight(int);/*判断敌人是否碰到死路*/
int PUMove();/*四个方向判断玩家是否可以走路*/
int PDMove();
int PRMove();
int PLMove();
void PUgo();/*四发方向玩家的直线移动*/
void PDgo();
void PRgo();
void PLgo();
int PlayRight();/*判断玩家是否碰到死路*/
void GameWin();/*胜利*/
void GameOver();/*游戏失败*/
void PrintScore();
void Chinese();/*显示中文*/
void MapCopy(int (*a)[20],int (*b)[20]);/*转换地图*/
void TongJi();/*计算要多少分才可以过关*/
void main()
{
Init();
GameBegain();
GamePlay();
Close();
}
void Chinese()/*显示中文*/
{
int i;
char str[]={
/* 以下是 '吃' 的 48点阵宋体 字模,288 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,
0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,
0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,
0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x70,
0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,
0x00,0x01,0x00,0xE0,0x00,0x00,0x0C,0x03,
0x80,0xE0,0x00,0x00,0x0F,0xFF,0xC0,0xC0,
0x00,0x40,0x0E,0x03,0x81,0x80,0x00,0xE0,
0x0E,0x03,0x81,0xFF,0xFF,0xF0,0x0E,0x03,
0x83,0x00,0x00,0x00,0x0E,0x03,0x83,0x00,
0x00,0x00,0x0E,0x03,0x86,0x00,0x00,0x00,
0x0E,0x03,0x84,0x00,0x00,0x00,0x0E,0x03,
0x8C,0x00,0x00,0x00,0x0E,0x03,0x98,0x00,
0x00,0x00,0x0E,0x03,0x90,0x00,0x18,0x00,
0x0E,0x03,0xA0,0x00,0x3C,0x00,0x0E,0x03,
0xC7,0xFF,0xFE,0x00,0x0E,0x03,0x80,0x00,
0x78,0x00,0x0E,0x03,0x80,0x00,0xF0,0x00,
0x0E,0x03,0x80,0x00,0xE0,0x00,0x0E,0x03,
0x80,0x01,0xC0,0x00,0x0E,0x03,0x80,0x03,
0x80,0x00,0x0E,0x03,0x80,0x07,0x00,0x00,
0x0E,0x03,0x80,0x0F,0x00,0x00,0x0F,0xFF,
0x80,0x1E,0x00,0x00,0x0E,0x03,0x80,0x1C,
0x00,0x00,0x0E,0x03,0x80,0x38,0x00,0x00,
0x0E,0x03,0x80,0x70,0x00,0x40,0x0E,0x03,
0x00,0xE0,0x00,0x40,0x0E,0x00,0x01,0xE0,
0x00,0x60,0x0C,0x00,0x01,0xC0,0x00,0x60,
0x00,0x00,0x03,0x80,0x00,0x60,0x00,0x00,
0x07,0x00,0x00,0x60,0x00,0x00,0x07,0x00,
0x00,0x60,0x00,0x00,0x07,0x00,0x00,0x60,
0x00,0x00,0x07,0x00,0x00,0x70,0x00,0x00,
0x07,0x00,0x00,0xF8,0x00,0x00,0x03,0xFF,
0xFF,0xF0,0x00,0x00,0x01,0xFF,0xFF,0xF0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '豆' 的 48点阵宋体 字模,288 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
0x07,0x80,0x03,0xFF,0xFF,0xFF,0xF8,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,
0x00,0x00,0x08,0x00,0x00,0x30,0x00,0x00,
0x1C,0x00,0x00,0x3F,0xFF,0xFF,0xFE,0x00,
0x00,0x38,0x00,0x00,0x1C,0x00,0x00,0x38,
0x00,0x00,0x18,0x00,0x00,0x38,0x00,0x00,
0x18,0x00,0x00,0x38,0x00,0x00,0x18,0x00,
0x00,0x38,0x00,0x00,0x18,0x00,0x00,0x38,
0x00,0x00,0x18,0x00,0x00,0x38,0x00,0x00,
0x18,0x00,0x00,0x38,0x00,0x00,0x18,0x00,
0x00,0x38,0x00,0x00,0x18,0x00,0x00,0x3F,
0xFF,0xFF,0xF8,0x00,0x00,0x38,0x00,0x00,
0x18,0x00,0x00,0x38,0x00,0x00,0x18,0x00,
0x00,0x38,0x00,0x01,0x00,0x00,0x00,0x04,
0x00,0x01,0x80,0x00,0x00,0x03,0x00,0x01,
0xE0,0x00,0x00,0x03,0x80,0x03,0xE0,0x00,
0x00,0x01,0xC0,0x03,0xC0,0x00,0x00,0x00,
0xC0,0x03,0x80,0x00,0x00,0x00,0xE0,0x07,
0x00,0x00,0x00,0x00,0xF0,0x07,0x00,0x00,
0x00,0x00,0x70,0x06,0x00,0x00,0x00,0x00,
0x70,0x0C,0x00,0x00,0x00,0x00,0x70,0x0C,
0x00,0x00,0x00,0x00,0x60,0x18,0x00,0x60,
0x00,0x00,0x00,0x10,0x00,0xF0,0x3F,0xFF,
0xFF,0xFF,0xFF,0xF8,0x10,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};









