资源简介
这是一个用 C 语言设计的连连看小游戏,这个资源里面不仅有程序源代码,而且还有详细的 PPT 说明文档,对于刚开始接触游戏设计的编程爱好者来说,可以提供一定的帮助。
这个程序只是一个构思的框架,界面不是特别华丽,但是对于需要理解编程思路的人来说,一样是一个不错的起点。
代码片段和文件信息
// MatchIt.cpp : 小游戏《连连看》基本框架
//
// 版本:0.3
//
// 制作:马森阳
//
// 制作时间:2013.2.16 - 2013.3.5
//
// 详细内容请参阅程序目录下的 PPT 说明。
//
// http://hi.baidu.com/masenyang
#include “stdafx.h“
/*定义标题栏*/
#define title “连连看 V0.3,C 语言版“
/*定义真假宏*/
#define FALSE 0
#define TRUE 1
/*定义行列数*/
#define ROW 8
#define COL 10
/*定义图案种类数*/
#define TOTAL 20
/*定义无效标识*/
#define NONE 0
/*定义特殊按键*/
#define BAK 0x08
#define ENT 0x0d
#define ESC 0x1b
#define SPC 0x20
/*声明程序中的类*/
class Matchit; //连连看类,设计游戏基本操作框架
class LangPack; //语言包类,用于游戏中的信息提示
/*定义 连连看 类*/
class Matchit{
protected:
int pic[TOTAL]; //图案集合
int stack[ROW*COL]; //卡堆
int board[ROW+2][COL+2]; //游戏板
int cursor_Rcursor_C; //光标位(行、列)
int select_Rselect_C; //选定位(行、列)
int cur_Level; //当前级别(EASY NORMAL HARD)
int cur_Stage; //当前关卡(0~10)
int rem_Card; //剩余卡片数
int rem_Time; //剩余时间量
int rem_Hint; //剩余提示数
int rem_Life; //剩余生命值
char hint_Msg[64]; //游戏过程中的提示信息
public:
/*类的构造方法*/
Matchit(){
int ij;
for(i=0;i pic[i]=i+1;
}
for(i=0;i
stack[i]=NONE;
}
for(j=0;j
for(i=0;i board[j][i]=NONE;
}
}
cur_Level=0;
cur_Stage=0;
rem_Card=rem_Time=rem_Hint=rem_Life=0;
cursor_R=cursor_C=NONE;
select_R=select_C=NONE;
strcpy(hint_Msg““);
}
/*游戏之前的待命状态*/
int standby(){
char k;
int f=FALSE;
system(“cls“);
puts(title);
putchar(‘\n‘);
puts(“请选择游戏级别:(测试版只提供初级)“);
puts(“[ 1 ] 初级“);
puts(“[ ESC ] 退出游戏“);
printf(“选择:“);
do{
k=getch();
switch(k){
case ‘1‘:
cur_Level=1;
cur_Stage=0;
rem_Life=5;
rem_Hint=10;
starter();
f=TRUE;
break;
case ESC:
f=FALSE;
break;
}
}while(k!=‘1‘ && k!=ESC);
return f;
}
/*游戏开始前的准备工作*/
void starter(){
int ijkcf;
int n=ROW*COL;
srand(unsigned(time(0)));
for(i=0;i
stack[i]=pic[i%TOTAL];
}
for(j=1;j<=ROW;j++){
for(i=1;i<=COL;i++){
c=rand()%n;
board[j][i]=stack[c];
n--;
for(k=c;k stack[k]=stack[k+1];
}
}
}
rem_Card=ROW*COL;
f=is_Legal();
if(!f) discard();
cursor_R=cursor_C=1;
select_R=select_C=0;
strcpy(hint_Msg“游戏开始,请按屏幕下方的提示进行操作。“);
}
/*游戏进行中*/
int playing(){
int f=FALSE;
display();
do{
if(rem_Card==0){
f=ending_Next();
break;
}
else if(!is_Legal() && rem_Life==0){
f=ending_Dead();
break;
}
else if(!is_Legal() && rem_Life>0){
discard();
rem_Life--;
strcpy(hint_Msg“【注意】牌局出现无解画面,自动扣除一点生命值进行洗牌。“);
display();
}
f=key_Press();
}while(f);
return f;
}
/*游戏过程中读取按键内容进行相应操作,通过返回值决定是否退出程序*/
int key_Press(){
cha
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-03-08 21:38 Matchit\
目录 0 2013-03-08 21:38 Matchit\Debug\
文件 184414 2013-03-08 21:38 Matchit\Debug\Matchit.exe
文件 304396 2013-03-08 21:38 Matchit\Debug\Matchit.ilk
文件 37278 2013-03-08 21:38 Matchit\Debug\Matchit.obj
文件 227632 2013-02-28 17:40 Matchit\Debug\Matchit.pch
文件 517120 2013-03-08 21:38 Matchit\Debug\Matchit.pdb
文件 2331 2013-02-28 17:40 Matchit\Debug\StdAfx.obj
文件 41984 2013-03-08 21:38 Matchit\Debug\vc60.idb
文件 61440 2013-03-08 21:38 Matchit\Debug\vc60.pdb
文件 14786 2013-03-08 21:38 Matchit\Matchit.cpp
文件 4548 2013-02-28 17:38 Matchit\Matchit.dsp
文件 539 2013-02-28 17:38 Matchit\Matchit.dsw
文件 50176 2013-03-08 21:38 Matchit\Matchit.ncb
文件 53760 2013-03-08 21:38 Matchit\Matchit.opt
文件 1330 2013-03-08 21:38 Matchit\Matchit.plg
文件 1214 2013-02-28 17:38 Matchit\ReadMe.txt
文件 294 2013-02-28 17:38 Matchit\StdAfx.cpp
文件 768 2013-02-28 17:40 Matchit\StdAfx.h
文件 364544 2013-03-08 21:36 Matchit\《连连看》说明.ppt
相关资源
- 八皇后问题,vc源码。小游戏。
- 圈住小猫 点击远点圈住小猫 捉猫猫源
- qt做一个贪吃蛇小游戏
- labview制作扫雷小游戏以及简易计算器
- 300多套微信运营H5小游戏集合包
- 吃金豆小游戏 课程设计
- cocos creator 跳一跳
- cocos creator连连看游戏
- 安卓贪吃蛇小游戏初学者
- wx小程序坦克.zip
- 搭桥类的小游戏
- H5小游戏-H5答题游戏
- 用flash as3.0制作的小游戏
- windows系统的蜘蛛纸牌
- 小游戏labview
- 2048小游戏完整项目源码.zip
- 一个3D投球的小游戏
- appinventor小游戏源码
- Appinventor的2048安卓小游戏,足够简易
- QT小游戏《2048》源码含大量注释
- js写财神爷接元宝小游戏
- Flash打靶游戏源码.rar
- 微信小游戏分包加载demo
- 微信小程序小游戏-贪吃蛇demo
- QT 小游戏 加农炮 源码 +教程刚刚把源
- flash小游戏接水果及源码
- S5P4418裸机系列教程之小游戏
- 汇编语言小游戏
- 扎气球小游戏flash
- 连连看小游戏
评论
共有 条评论