开元棋牌,开元棋牌官方网站,开元棋牌APP下载
扑克牌是一种大众化的游戏牌,日常生活中我们为了娱乐消遣经常用之来进行一些小游戏,如红心大战,斗地主,活龙等,多种多样。
十点半是这些游戏中一种比较简单的玩法。这个程序模仿了十点半的各个过程,将游戏在程序运行中表示其玩法过程。
(一)游戏规则:游戏可为两人或多人,但不超过八人。本游戏中选了人与电脑及四人间的玩法为例。第一轮玩家依次取一张牌,之后玩家根据自己牌的总点数,选择继续要牌或不要牌,但一旦选择不要牌以后就不能再要牌。玩家牌的总点数一旦超过10.5,不能再要牌,J,Q,K算为半点。如果玩家牌的总点数都大于或小于10.5,点大者胜;如果有大于也有小于10.5,则点数最小者赢。
(二)任何一张纸牌都有其本身的属性:花色,数值及起其所代表的点数。为将这些特征表示出来,特定义一个结构体数组来表示一副扑克牌,由于十点半游戏中不需要大小王,故可以定义如下:
(三)不论何种扑克游戏都有其必经的三个步骤:一是有一副牌(即牌的初始化)二是洗牌,三是发牌。这三个步骤在程序中通过三个函数来实现:
由于多维数组形如a[][]中第一个下标之中可以没有数字,如果有只能是确定的数,所以通过二维数组来建立一个可供任意人数游戏的想法不成立。
为了达到以上目的,我在程序中使用了一个宏定义#define N 5,当需要改变游戏的人数时候,只要改变N的值即可,这样,这个问题就通过宏定义解决了。
优点:使用电脑程序使得十点半游戏可以在电脑上模拟进行,并且可以在原理上满足任意人数的游戏,但由于一副扑克牌只有五十四张,所以人数不应该超过八人。同时,通过程序可以直接明白是何人赢得游戏。
缺点:虽然程序可以在宏定义的处理下进行一定任意人数的游戏,但是毕竟每次需要更换游戏人数时都要去修改N的值,比较麻烦,并不能直接进行任意人数的游戏。另外,在人数在二人以上时,我们只能从各人的点数,通过游戏规则来判断胜者为谁,程序没有直接输出,这是需要改进的。
020-88888888