软件开发与创新课设作业 C++五子棋的改良设计

一、来源
GitHub项目

二、运行环境及运行结果截图
运行环境:Windows 11 | visual studio 2022
运行结果截图:





可以实现基本的五子棋对弈功能

三、主要问题列表

  • 开局不能选持方
    main函数中增加条件判断,可根据输入结果选择ai和玩家谁先落子。

  • 结束后无法快速再来一局
    结束后利用MessageBox和outtextxy跳出游戏结束的窗口,让用户可以选择再来一局,用stk.pop清空用户输入,并关闭窗口,重置ai和玩家落子数据。

  • 界面太亮
    调色即可。

四、新代码
实现开局选子:int inition; cout << "请选择所执的子:" << endl; cout << "执黑:1 执白:2" << endl; cin >> inition;while (1) { if (inition == 2) { ai.Get_key_Setchess(mychs); //Al first set chess s.show(mychs, user); //show the map if (ai.gameOver(s, user)) goto Start; mychs.now = true; // now is you s.Mouse(mychs, user); // you secondly set the chess,set now = false s.show(mychs, user); if (mychs.gameOver(s, user)) goto Start; } else { mychs.now = true; s.Mouse(mychs, user); s.show(mychs, user); if (mychs.gameOver(s, user)) goto Start; ai.Get_key_Setchess(mychs); if (ai.gameOver(s, user)) goto Start; } }

实现再来一局:
if (who == 1) { MessageBox(0, _T("恭喜您胜利!"), _T("YES"),MB_ICONWARNING | MB_SYSTEMMODAL); Sleep(1000); setbkcolor(GREEN); cleardevice(); outtextxy(250, 200, _T("恭喜您胜利!")); outtextxy(250, 300, _T("请按任意键继续游戏...")); user.wincnt++; user.restcnt += 10; if (user.minsteps == 0) user.minsteps = steps; else user.minsteps = min(user.minsteps, steps); mciSendString(_T("close win"), NULL, 0, NULL); mciSendString(_T("open win.wav alias win"), NULL, 0, NULL); mciSendString(_T("play win"), NULL, 0, NULL); } else { MessageBox(0, _T("您失败了,不要灰心下次再来吧!!"), _T("NO"),MB_ICONWARNING | MB_SYSTEMMODAL); Sleep(1000); setbkcolor(GREEN); cleardevice(); outtextxy(250, 200, _T("您失败了,不要灰心下次再来吧!")); outtextxy(250, 300, _T("请按任意键继续游戏...")); mciSendString(_T("close det"), NULL, 0, NULL); mciSendString(_T("open defet.mp3 alias det"), NULL, 0, NULL); mciSendString(_T("play det"), NULL, 0, NULL); user.failcnt++; } user.Write(); int ch = _gettch(); while (!stk.empty()) stk.pop(); aiPos = 0; myPos = 0; closegraph();

调色:
setbkcolor(WHITE);

五、测试截图

  • 可自由选持方:



  • 获胜失败有窗口反馈:



  • 任意按键即可一键重新开始游戏

六、总结
我们在编程的过程中不能思维固化,试着换一个角度,从用户角度去体验程序,就能发现很多之前发现不了的不便之处,这就是我们努力优化程序体验的方向。软件工程从来不是单方的编程与设计,而是编程与用户体验的双向奔赴,只有培养逆向软件工程的思维,学会站在用户体验的角度上思考问题,才能够做出用户喜欢、使用便捷的产品。

热门相关:奈何老公太宠我   王妃不乖:独宠倾城妃   甜蜜隐婚:老公大人,宠上瘾   貌似纯洁   铁血大明