对原有项目的改进
首先,本次版本在原有基础上增加了登录界面,登录后方可进行游戏,这样可以便于以后多轮游戏结果可视化显示及数据分析。
而后,我们修改了新的游戏规则,每个用户每次可以提交两个数字,其他规则一样,这样一来,用户们可以通过2个数字的相互补足来获取胜利,也可以通过恶意调整另外一个数字来干扰其他用户的判断,这样增加了游戏的趣味性。
具体实现
登录界面:
登录失败
登录成功后会进入游戏界面。
新增游戏界面(每人输入两个数字)
代码
load.cpp
用户登录
void load::OnBnClickedOk()
{
CString sun, spwd;
GetDlgItemText(IDC_EDIT1, sun);
GetDlgItemText(IDC_EDIT2, spwd);
if (!sun.CompareNoCase(_T("user")) && !spwd.CompareNoCase(_T("admin")))
{
MessageBox(_T("登录成功"));
EndDialog(0);
}
else
{
MessageBox(_T("密码错误"));
}
}
newgoldDlg.cpp
新规则中表的初始化
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES);//在最左侧添加勾选框,选中一整行
m_list.InsertColumn(0, _T("玩家数字(1)"),0,200);
m_list.InsertColumn(1, _T("玩家数字(2)"),0,200);
m_list.InsertColumn(2, _T("玩家得分"),0,200);
增加两个玩家数字
void CnewgoldDlg::OnBnClickedButtonadd()
{
// TODO: 在此添加控件通知处理程序代码
adddlg dlg;
dlg.DoModal();
int ncount = m_list.GetItemCount();
m_list.InsertItem(ncount,dlg.snumber);
}
修改玩家的两组数据
void CnewgoldDlg::OnBnClickedButtonupdate()
{
// TODO: 在此添加控件通知处理程序代码
for (int i = 0; i < m_list.GetItemCount(); i++)
{
BOOL state = m_list.GetCheck(i);
if (state)
{
adddlg dlg;
dlg.DoModal();
m_list.SetItemText(i,0,dlg.snumber);
m_list.SetItemText(i,1,dlg.snumber2);
}
}
}
adddlg.cpp
获得玩家输入的数值
void adddlg::OnBnClickedButtonok()
{
// TODO: 在此添加控件通知处理程序代码
GetDlgItemText(IDC_EDIT_number,snumber);
GetDlgItemText(IDC_EDIT_number2, snumber2);
EndDialog(0);
}
游戏效果
小结
我们希望通过修改原本较为简单的游戏规则来提高游戏的趣味性,使得用户在进行游戏时可以考虑更多的策略,目前项目还有更多可改进的地方,比如多轮游戏结果可视化显示及数据分析等方面,这样优化可以使得用户从对多轮游戏结果的分析中汲取教训,寻求更有效的获胜之道。