21点游戏要求做到设计出人和电脑对战的21点游戏,同时电脑既然作为另一个玩家,也就必须具备自主选择的意识,那么在21点中,需要电脑做出选择的也就是几个选项,一是牌点的比较,二是根据目前形势是否要牌的判断,三是自主判断A点作为几点更加合适,只有实现这三个目标,电脑玩家才能被成为比较智能的进行游戏,而不同情况下,电脑玩家如何选择是否要牌也就是一大难点。
关于设计
首先是在洗牌程序中避免繁杂洗牌,只用分别定义两个数组来进行“牌”和“空位”的交换就可以以此达到随机的目的,并且简洁易懂。然后是在发牌亮牌函数中,要让记牌器随发牌移动,同时要统计玩家手牌,这里我采用了for循环来达到目的,也就是在每次发牌之后自动让记牌器顺沿一位,这样就避免了多次书写记牌器移动,而玩家手上亮牌也可以用for循环,直接在i<5的情况下,不断自加然后亮出每一张现有的手牌(玩家手牌小于等于5)。还有在电脑判断是否要牌的情况,在主函数里加入true和false两个声明,分别定义要牌和不要牌,这样就大量减少了代码重复,同时也非常简洁明了,只需要判断当前状况后加上return true or false某一种情况即可。
最后是在程序中设计到的计算概