首页
会员中心
到顶部
到尾部
VC毕业设计

十二生肖的俄罗斯方块智力游戏-论文VC144

时间:2020/10/13 21:13:55  作者:  来源:  查看:0  评论:0
内容摘要: 一.项目名称 十二生肖俄罗斯方块二.开发背景:俄罗斯方块是一个很低古老的一个小游戏,到但今日它还有很大的魅力。三.技术路线或工作原理:采用的软件及开发平台Micosoft Visual ++6.0http://www.16sheji8.cn/项目的总体方案1.生成方块模块...
一.项目名称
十二生肖俄罗斯方块
二.开发背景:
俄罗斯方块是一个很低古老的一个小游戏,到但今日它还有很大的魅力。
三.技术路线或工作原理:
采用的软件及开发平台
Micosoft Visual ++6.0http://www.16sheji8.cn/
项目的总体方案
1.生成方块模块。通过随机函数生成随机数来确定生成方块的种类。
2.键盘输入模块。通过消息映射来处理各种从键盘传入的信息。包括方块左走,右走,快速下降和变形。
3.得分模块。当方块下到底后判断玩家有没得分。
4.游戏数据记录模块。保存方块的个数和地点。
5.游戏结束模块。判断游戏是否已经结束。
四.算法描述(程序部分源码或伪代码)
1.在CMy1View.h开始时加入:
#define heng 15
#define shu 30
#define size 20
2.在类CMy1View中增加成员变量:
 BITMAP bmfange;
 BITMAP bmbeijing;
 CBitmap bbeijing;
 CBitmap bfange;
 int score;     得分
 int y;        活动方块的Y坐标
 int x;        活动方块的X坐标
 int yanshi;    活动方块的方向式样
 int huodon;   活动方块的种类
 int fange[shu+2][heng+2];   记录游戏中每个方格中有没方块和方块的种类
3.在类CMy1View中增加成员函数:
 void getscore();   计算得分
 void gameover();   判断是否游戏结束
 void changeyanshi();   改变活动方块的方向式样
 void goright();       活动方块向右走
 void goleft();   活动方块向左走
 void godown();  活动方块响下走
 void gaiweizhi(int r); 改变活动方块的位置,用于函数goright(),goleft(),godown中
 void shengcheng();  生成新的活动方块
由于函数的内容过大,函数具体内容请老师见于工程
4,在类CMy1View修改函数CMy1View::CMy1View():
CMy1View::CMy1View()
{
 // TODO: add construction code here
 for(int i=1;i<=heng;i++)
 {
  for(int j=1;j<=shu;j++)http://www.16sheji8.cn/
   fange[j][i]=0;
  fange[0][i]=9;
  fange[shu+1][i]=9;
 }
 for(int k=0;k<shu+2;k++)
 {
  fange[k][0]=9;
  fange[k][heng+1]=9;
 }
 score=0;
 bfange.LoadBitmap(IDB_fange);
 bfange.GetBitmap(&bmfange);
 bbeijing.LoadBitmap(IDB_beijing);
 bbeijing.GetBitmap(&bmbeijing);
}
5,在类CMy1View中修改函数CMy1View::OnDraw(CDC* pDC):
void CMy1View::OnDraw(CDC* pDC)
{
 CMy1Doc* pDoc = GetDocument();
 ASSERT_VALID(pDoc);
 // TODO: add draw code for native data here
 CDC mdc;
 mdc.CreateCompatibleDC(NULL);
 mdc.SelectObject(&bbeijing);
 pDC->BitBlt(0,0,bmbeijing.bmWidth,bmbeijing.bmHeight,&mdc,0,0,SRCCOPY);
 CFont font;
 font.CreateFont(40,0,0,0,FW_NORMAL,FALSE,FALSE,0,GB2312_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_DONTCARE,"华文行楷");
    CFont *pOldFont=pDC->SelectObject(&font);
 pDC->SetBkMode(TRANSPARENT);
 pDC->SetTextColor(RGB(255,0,0));
 CString str;
 str.Format("%d",score);
 pDC->TextOut((heng+4)*size/2,(shu+2)*size+size/2,str);
 pDC->SelectObject(pOldFont);
 mdc.SelectObject(&bfange);
 for(int j=0;j<shu+2;j++)
  for(int i=0;i<heng+2;i++)http://www.16sheji8.cn/
  {
   if(fange[j][i]!=0&&fange[j][i]!=9)
   {
    pDC->BitBlt((i+1)*size,(shu-j+2)*size,size,size,&mdc,(fange[j][i]<9?(fange[j][i]-1):(fange[j][i]-11))*size,0,SRCCOPY);
   }
  


相关评论
广告联系QQ:45157718 点击这里给我发消息 电话:13516821613 杭州余杭东港路118号雷恩国际科技创新园  网站技术支持:黄菊华互联网工作室 浙ICP备06056032号