資源簡(jiǎn)介
tkdz.cpp
代碼片段和文件信息
#include?
#include?
#include??
???????????????????????????//里規(guī)格:長(zhǎng)39*2=78?(真坐標(biāo))(假坐標(biāo)寬為39)??高39
???????????????????????????//外規(guī)格:長(zhǎng)41*2=82?(真坐標(biāo))(假坐標(biāo)寬為41)??高41
#define?UP????1
#define?DOWN??2
#define?LEFT??3
#define?RIGHT?4
#define?MAX_LEVEL?8
#define?BULLET_NUM?20
#define?MAX_LIFE?4
?
//程序中未寫入函數(shù)參數(shù)表中且未說(shuō)明的變量只有map二維數(shù)組level_info數(shù)組和level???
?
/*
??????此程序中涉及的xy類的坐標(biāo)值,分為以下兩種:?????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????
假坐標(biāo):這里的坐標(biāo)指的是以一個(gè)■長(zhǎng)度為單位的坐標(biāo),而不是真正的coord坐標(biāo)?(用于map數(shù)組的坐標(biāo))?????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????
真坐標(biāo):頭文件自帶的坐標(biāo)結(jié)構(gòu)coord中的坐標(biāo)(也可以說(shuō)是控制臺(tái)里的真正坐標(biāo)值)?????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????
??區(qū)別:縱坐標(biāo)y兩值一致,假橫坐標(biāo)x值與真正coord橫坐標(biāo)(真坐標(biāo))關(guān)系是?x?*?2?=?coord?橫坐標(biāo)????
????????????????????????????????????????????????????????????????????????????????????????????????????????????
??coord橫坐標(biāo)既指GoTo函數(shù)中的x參數(shù)因?yàn)楸境绦蛴螒蚪缑嬉砸粋€(gè)■長(zhǎng)度為基本單位,????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????
??可以說(shuō)涉及的coord橫坐標(biāo)全是偶數(shù)。既假坐標(biāo)要變真坐標(biāo)(變真坐標(biāo)才能發(fā)揮真正作用),橫坐標(biāo)須乘以2????????????????????????????????????
???????????????????????????????????????????????????????????
*/
typedef?struct?????????????//這里的出現(xiàn)次序指的是一個(gè)AI_tank變量中的次序,游戲共有四個(gè)AI_tank變量
{??????????????????????????//∵設(shè)定每個(gè)AI_tank每種特殊坦克只出現(xiàn)一次?∴fast_tank?&?firm_tank?最多出現(xiàn)次數(shù)不超過(guò)1
int?fast_tank_order;???//fast_tank出現(xiàn)的次序(在第fast_tank_order次復(fù)活出現(xiàn)從第0次開始),且每個(gè)AI_tank只出現(xiàn)一次
int?firm_tank_order;???//firm_tank出現(xiàn)的次序,同上
}?LevInfo;?????????????????//關(guān)卡信息(準(zhǔn)確說(shuō)是該關(guān)出現(xiàn)的坦克信息)
LevInfo?level_info?[MAX_LEVEL]?=?{{-1-1}{3-1}{-13}{23}{23}{23}{23}{23}};???//初始化,-1代表沒有該類型坦克
?
?
typedef?struct??????//子彈結(jié)構(gòu)體
{
int?xy;????????//子彈坐標(biāo)假坐標(biāo)
int?direction;??//子彈方向變量
bool?exist;?????//子彈存在與否的變量1為存在,0不存在
bool?initial;???//子彈是否處于建立初狀態(tài)的值,1為處于建立初狀態(tài),0為處于非建立初狀態(tài)
bool?my;????????//區(qū)分AI子彈與玩家子彈的標(biāo)記0為AI子彈,1為玩家(我的)子彈
}?Bullet;
Bullet?bullet?[BULLET_NUM];??//考慮到地圖上不太可能同時(shí)存在20顆子彈,所以數(shù)組元素設(shè)置20個(gè)
?
?
typedef?struct??????//坦克結(jié)構(gòu)體
{
int?xy;????????//坦克中心坐標(biāo)
int?direction;??//坦克方向
int?color;??????//顏色參方向數(shù),1到6分別代表不同顏色,具體在PrintTank函數(shù)定義有說(shuō)明
int?model;??????//坦克圖案模型,值為123,分別代表不同的坦克圖案0為我的坦克圖案,AI不能使用
int?stop;???????//只能是AI坦克使用的參數(shù),非0代表坦克停止走動(dòng)0為可以走動(dòng)
int?revive;?????//坦克復(fù)活次數(shù)
int?num;????????//AI坦克編號(hào)(固定值,為常量,初始化函數(shù)中定下)0~3
int?CD;?????????//發(fā)射子彈冷卻計(jì)時(shí)
bool?my;????????//是否敵方坦克參數(shù),我的坦克此參數(shù)為1為常量
bool?alive;?????//存活為1,不存活為0
}??Tank;
Tank?AI_tank[4]??my_tank;??//my_tank為我的坦克,Ai_tank?代表AI坦克
?
//∵所有的函數(shù)都有可能對(duì)全局變量map進(jìn)行讀寫(改變),
//∴函數(shù)中不另說(shuō)明是否會(huì)對(duì)全局變量map讀寫
//基本操作與游戲輔助函數(shù)
void?GoToxy(int?xint?y);????//光標(biāo)移動(dòng)
void?HideCursor();???????????//隱藏光標(biāo)
void?keyboard?();????????????//接受鍵盤輸入
void?Initialize();???????????//初始化(含有對(duì)多個(gè)數(shù)據(jù)的讀寫)
void?Stop();?????????????????//暫停
void?Getmap();???????????????//地圖數(shù)據(jù)存放與獲取
void
評(píng)論
共有 條評(píng)論