终于写完21点程序了,但是程序的AI部分不知道如何测试有人帮忙测试BUG吗?另外鸣谢在编程中各个阶段帮助偶的人.
traso 2008-08-23 12:33:47 终于靠自己一点一滴的吧程序编程完了.
在此做个总结并鸣谢帮助过偶的人.
鸣谢名单:
fallening
laiwing
被淘汰面试的时候的帖子
帖子地址http://topic.csdn.net/u/20080725/13/01f17e30-12a4-4d65-8a40-cb11a259335f.html
飞雪
freedomzcd
关于while作于域的帖子
http://topic.csdn.net/u/20080819/16/37e5f8b8-8a4b-4b13-bbe8-02eb0eba7f6a.html
内存错误(数组越界)
mxw5495
http://topic.csdn.net/u/20080820/17/421ceadc-eba2-47d4-b7a3-c79373cdf240.html
另外不知道该何如测试游戏中的AI.
不知道高手是如何测试的?都靠运行程序来测试吗?
有朋友帮忙测试的吗?
另外贴出当时自己写的程序流程设计书:
游戏规则:
游戏开始先由系统指定庄家并开始发牌,玩家分别与庄家对抗。发牌后,玩家先要牌力争使自己接近21点且不“爆牌”,即“不超过21点”,为胜利.玩家选择完毕后,轮到庄家按照规则要牌,庄家结束选择后按照双方的牌点是否接近21点判断输赢。
2-9:牌面数值与分值相同。
10、J、Q、K:均为10分值.
A:可为1或者11分值,当计算11分值时会爆牌,则自动记为1分值。
庄家与玩家同点或同爆时庄家胜利.
21点VS爆点时 赔率加倍.
*****************************************************************************
游戏流程设定:
玩家胜利计数器playerwin=0;//判断是否使用作弊AI
电脑胜利计数器ownerwin=0;
牌组初始化:把52张扑克牌赋值到数组b[52]上.
计数器a=0;
AI计数器a4=16 a5=36; a5为牌卡大于4的牌卡数量、a4为牌卡小于5的牌卡数量.
0,初始化庄家数组owner[5],初始化玩家数组player[5].
1,给庄家1张牌(暗)发牌函数(*owner).if(b[a]>4)a5--;else a4--; //AI计数判断,每次发牌加入AI计数判断下同如2所示
计数器a++
2,给玩家1张牌.发牌函数(*player) if(b[a]>4)a5--;else a4--; //AI计数判断
计数器a++
3,玩家下注.(玩家输入交互)
4,给玩家1张牌 发牌函数(*player) 计数器a++
5,玩家决定:a:要牌(if(点数计算(*player)>21)玩家判负 goto 9;else 给玩家发牌 goto 6)计数器a++;b:goto 7
//点数判断函数(*char) 略.
//发牌函数()略
6, 庄家决定:a:要牌(if(playerwin>ownerwin) 作弊AI();else 判断AI() ) //玩家赢的比我多我就赖皮 ^ _ ^
(if(点数计算(*owner)>21) goto 8;else 给玩家发牌 goto 7)计数器a++;b:goto 8
8,比较玩家与庄家的点数决定胜负.if((点数计算(*player)>点数计算(*owner))ownerwin++;
else playerwin++;
9,牌余判断 if(计数器a>=42) goto 牌组初始化; else goto 0 //2人玩此游戏所以是a>=42;3人玩次游戏则是37