用VC编程实现“幸运52”猜价格游戏
2008-11-13 19:31:17 来源:WEB开发网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来记录猜中的次数,对不同的次数作相应的商品选择的处理,以达到显示不同的商品的目的。
结束语
本程序还可以做更进一步修改,比如现在的商品及价格都是以一种硬代码的方式写入程序之中这样显得不太灵活,读者可以设计一个“加入商品”的功能项,另外还可以加上一个难度设置,对时间和所猜的次数作一些动态调整,这些工作就留给聪明的读者自己实现吧!
更多精彩
赞助商链接