windows7下载站提供最新Win7系统下载,Ghost Win7旗舰版下载,win7激活工具

软件教程激活工具游戏攻略seo

windows7旗舰版
当前位置:主页 > 技术开发教程 >

用VC编程完成“幸运52”猜价格游戏

发布时间:2020-09-08 来源:win7旗舰版 浏览量:

文/王桢

  看过中央电视台李咏主持的“幸运52”的观众一定不会忘记一个有趣的环节——“看商品猜价格”,整个过程紧张、扣人心弦,让人有一种很强的参与感。想上电视台?不太容易,编个程序自己玩玩,是个好主意。快快试一下吧!

  游戏设计规则


  按“开始游戏”后,商品展台将出现一款产品,计时器开始计时,必须在一分钟内猜出商品的价格。将所猜的价格输入到编辑框中,按回车键或[确认输入]键,计算机将对输入值进行判断,给出三种结果,即“高了”、“低了”及“完全正确”。根据提示做下一步判断,如果判断正确,则给出下一件商品,直到耗时结束。除了时间限制,限制每种商品竞猜的次数不超过十五次。要想过关可不那么容易!

  原理及功能实现

  本程序可以分成几个功能模块,游戏启动模块、计时模块、提交答案模块、商品显示模块。下面具体介绍一个各模块的功能。

  成员变量:

  int Imagecounter; //控制计时器

  int random[9]; //实现记忆已选商品

  int totalnum=0; //控制猜价次数

  int tmprandom; //标识当前商品号

  int recordersuccess; //标识猜对次数

  IDI_time1~IDI_time13代表了每隔5秒的各种计时器状态图标ID号;

  IDI_commondity1~IDI_commondity10代表以上十种商品的图标ID号;

  1、游戏启动模块

  该模块的启动是对应于图1中的[开始游戏]按钮,主要是设置计时时钟,初始化一些变量参数,并激活价格输入编辑控件框,同时为玩家随机调入第一件商品。

  2、计时模块

  它利用发送的WM_TIMER消息,来处理关于游戏计时方面的事务,在该消息的响应函数OnTimer()中处理每隔5秒的图标动态调入,这样在对话框界面上会出现时钟,直观地提示玩家用时量,当出现超时,计时器消失,输入编辑控件转成非激活状态,同时弹出一个对话框提示。

  3、提交答案模块

  该模块的启动是对应于图1中的[确定输入]按钮,它负责处理用户输入的价格,并将它同商品的实际价格比较,并做出提示。如果正确,它将调用“商品显示模块”再次在商品展台上显示另一种商品,在这个模块中我们加入了对一件商品所猜次数的记录,并做出了相应的处理,这也是为了增加游戏的难度。

  //判断结果

  void CMyguessDlg::Onyes()

  {

   double tmpinputprice,tmprealprice;

   char tmpcharinputprice[10],*end;

   CString mystate;

   //将对话框输入传给它所捆绑的变量

   totalnum++;

   UpdateData(TRUE);

   m_digitalcontrol.SetFocus();

   m_digitalcontrol.SetSel(0,-1,FALSE);

   //如果没有输入价格则提示出错

   if(m_mydigital=="")

   {

  MessageBox("请输入您猜的价格!","猜价格",MB_OK);

  return ;

   }

   //真实价格可以用API函数直接转换

   tmprealprice=strtod(priceandname[tmprandom][0],&&end);

   //首先将CString型转成Char型,再由Char型转成Double类型;

   for(int i=0;i

  tmpcharinputprice[i]=m_mydigital.GetAt(i);

   tmpinputprice=strtod(tmpcharinputprice,&&end);

  //如果15次没有猜中,中止游戏

  if(totalnum<=15){

  //做价格判断!

  if(tmpinputprice>tmprealprice)

  {mystate="高了!";}

  else if(tmpinputprice

  {mystate="低了!";}

  else

  {

  //完全正确后应作新的商品猜价处理!初始化并保存一些设置

  MessageBox("完全正确!","猜价格",MB_OK);

  //记录猜中的次数;

  recordersuccess++;

  continueguess();

  return ;

  }

  //......此处略,读者应加入判断结果显示代码;

   }

   else

   {

  MessageBox("对不起,您已超过允许次数了!","警告提示",MB_OK);

  return ;

   }

  m_digitalcontrol.SetFocus();

  m_digitalcontrol.SetSel(0,-1,FALSE);

  }

  4、商品显示模块

  如果玩家在没有超时或超次数的情况下猜对了价格,那么在“提交答案模块”中将调用这一模块,它会显示出下一个不同的商品,同时调用“游戏启动模块”。

  我们用random[9]数组来记录商品的号,用recordersuccess来记录猜中的次数,对不同的次数作相应的商品选择的处理,以达到显示不同的商品的目的。

  结束语

  本程序还可以做更进一步修改,比如现在的商品及价格都是以一种硬代码的方式写入程序之中这样显得不太灵活,读者可以设计一个“加入商品”的功能项,另外还可以加上一个难度设置,对时间和所猜的次数作一些动态调整,这些工作就留给聪明的读者自己实现吧!
关键词: 用VC编程完成“幸运52”猜价格游戏 
我要分享:

相关推荐

本站发布的ghost系统仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,否则后果自负,请支持购买微软正版软件!

如侵犯到您的权益,请及时通知我们,我们会及时处理。

Copyright @ 2018 win7下载站(http://www.win7pc.cn) 版权所有  xml地图 邮箱: