首页
社区
课程
招聘
[原创]俄罗斯方块Dota版(附VC源码)
发表于: 2010-1-26 13:46 10871

[原创]俄罗斯方块Dota版(附VC源码)

2010-1-26 13:46
10871
do
{
	if (BFull=Clean())
		Sound(KillKeep+=BFull);
	if (BSame=CleanSame())
		Sound(KillKeep+=BSame);
}  
while (BSame||BFull);//当没有满行块和连续的相同图案块时才结束循环
for (int N=Length-2;N>=0;N--)
	for (int M=0;M!=Width;M++)      
		if (st_AllState[M][N]&&!st_AllState[M][N+1])  //不为空的且下面没有块才判断
		{
			BFall=false;
			Blank_LfRt=false;
			if (!M||M==Width-1)      
			{
				if (!M&&!st_AllState[M+1][N]||M==Width-1&&!st_AllState[M-1][N])
					Blank_LfRt=true;  
			}
			else if (!st_AllState[M-1][N]&&!st_AllState[M+1][N])
				Blank_LfRt=true;                
			CPoint *SP=NULL;
			m_hwnd==MainHwnd?SP=PlayerSame:SP=AISame;
			if (Blank_LfRt)                 //左右为空,直接下落
				BFall=true;
			else                        //左右不空,判断是否有地基
			{
				BFoundation=false;
				for (int l=M;l>=0;l--)      //判断左地基
				{
					if (!st_AllState[l][N])     
						break;
					if (st_AllState[l][N+1])
						BFoundation=true;
				}
				for (int r=M;r<=Width-1;r++)  //判断右地基
				{
					if (!st_AllState[r][N])     
						break;
					if (st_AllState[r][N+1])
						BFoundation=true;
				}
				if (!BFoundation)
					BFall=true;
			}
			for (int index=0;index<=SameIndex;index++)
			{
				if (M==SP[index].x&&N<=SP[index].y)
					BFall=true;
			}
		}
if (BFall)
{
	Repeat=true;         
	st_AllState[M][N+1]=st_AllState[M][N];
	st_AllState[M][N]=0;
	FallBlinkStruct *FBall=new FallBlinkStruct();
	if (!FBall)
		MessageBox(0,"内存不足",0,0);
	FBall->hwnd=m_hwnd;
	FBall->st_back=st_BackGround;
	FBall->CurP.x=M;
	FBall->CurP.y=N;
	CreateThread(NULL,NULL,FallBlink,(void*)FBall,NULL,NULL);
}
         }
		 if (Repeat)
			 Fall();
         }

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (15)
雪    币: 2362
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
呼呼  上期课程设计做的就是俄罗斯方块
你做的比我的好多了
2010-1-26 14:32
0
雪    币: 267
活跃值: (24)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
不错,谢谢分享!
2010-1-26 14:49
0
雪    币: 442
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
mark了

以后回来看~
2010-1-26 15:21
0
雪    币: 412
活跃值: (30)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
5
这个牛X。。。。
2010-1-26 15:28
0
雪    币: 88
活跃值: (25)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
顶兄弟一下!
2010-1-26 16:15
0
雪    币: 2362
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
玩了一会儿 崩溃了
然后满屏幕的乱绘图
2010-1-26 16:26
0
雪    币: 76
活跃值: (27)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
不会吧,什么情况。
2010-1-26 19:52
0
雪    币: 49
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
画面不错 加上连连看因素很有创意
但是游戏手感比一般俄罗斯差很多
比如没有下落到一定高度再改变方块左右横移填补缝隙的操作
在游戏里按了一下方向键下 方块直接到底 (建议按方向键下是加快下落速度而不是直接到底)
而且如果按方向键下时间过长 很容易出现问题
2010-1-27 00:11
0
雪    币: 76
活跃值: (27)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
那个快速下落的确没有实现好,手感的问题应该是我对多线程和程序的优化还掌握的不好,谢谢你的建议,我会努力改进了!!
2010-1-27 15:26
0
雪    币: 1450
活跃值: (35)
能力值: (RANK:680 )
在线值:
发帖
回帖
粉丝
11
试玩了 非常不错``
本地论坛备份一下
上传的附件:
2010-1-27 15:45
0
雪    币: 76
活跃值: (27)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
谢谢jackozoo大牛的支持
2010-1-27 15:51
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
13
支持,早就听说在写了,现在才放出来
2010-1-27 17:00
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
不错,我也来支持一下!
2010-1-27 18:37
0
雪    币: 145
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
支持下,学习下,顺便迈进普通会员行列
2010-1-28 00:00
0
雪    币: 200
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
呵呵  很有创意   支持!!!
2010-1-28 22:22
0
游客
登录 | 注册 方可回帖
返回
//