作战2000论坛
标题:
求助编程高手一个21点牌游戏的C++程序啊!!急!急!小弟拜谢
[打印本页]
作者:
8wy164745
时间:
2009-12-10 17:30
标题:
求助编程高手一个21点牌游戏的C++程序啊!!急!急!小弟拜谢
各位程序高手啊。。求助一个21点牌的C++程序。小弟拜谢!!具体题目要求如下:
设计一个
21
点的游戏,游戏规则如下:
两个玩家,一个是人,一个是电脑。首先由电脑随机派两张牌给人类玩家(牌不能重复,牌的表示方式为
花色牌号,如红桃
8
),然后玩家通过自己判断再选择是否继续要牌。如果要,则继续随机派给玩家一张牌,若此时所有牌的点数之和大于
21
,则判断玩家为输,如果不是,则玩家可以继续选择要牌与否。如果不要牌,则人类玩家阶段结束。轮到电脑。电脑阶段与玩家阶段基本相同。电脑首先自己要两张牌,然后由电脑自己判断是否继续要牌,判断的最重要依据是刚好赢人类玩家就收手。而输赢是按照两家的点数与牌数,赢的一方是点数较大的一方,若点数相同,则取牌数量更多的一方胜,若牌数也一样,则不分胜负。
点数的计算方式为:不论花色(红桃,黑桃,梅花,方块),数字牌(
2
到
10
)按照数字算,
A
按照
1
来算,
J
,
Q
,
K
均算成
0.5
点。
3.
提示
:
1.
由于牌是不能重复,可以把纸牌当成一个全局数组,
2.
细分程序为各种功能的函数,可以大致分成这几个函数:洗牌(将玩家手中的牌收回),发牌(随机发给玩家一张牌),显示牌号(将数组映射成相应的扑克牌),玩家阶段(包括发牌,要牌,判断是否超过
21
点了),电脑阶段,判断输赢阶段(在双方点数均不超
21
点的情况下)。
4.
标准输入输出
:加粗加大的是输入部分
第一种情况
:玩家超过
21
点了
玩家阶段
玩家获得牌
梅花
5
方块
8
是否继续要牌
(y/n)
:
y
继续要一张牌:梅花
5
方块
8
红桃
10
玩家输了
是否继续
(y/n)
:
n
第二种情况
:
玩家阶段
玩家获得牌
红桃
7
方块
Q
是否继续要牌
(y/n)
:
y
继续要一张牌:红桃
7
方块
Q
红桃
3
是否继续要牌
(y/n)
:
y
继续要一张牌:红桃
7
方块
Q
红桃
3
梅花
8
是否继续要牌
(y/n)
:
n
电脑阶段
电脑获得牌
方块
8
红桃
4
继续要一张牌:方块
8
红桃
4
红桃
J
继续要一张牌:方块
8
红桃
4
红桃
J
梅花
5
继续要一张牌:方块
8
红桃
4
红桃
J
梅花
5
红桃
8
玩家赢了
是否继续
(y/n)
:
n
第三种情况
:
玩家阶段
玩家获得牌
红桃
2
黑桃
Q
是否继续要牌
(y/n)
:
y
继续要一张牌:红桃
2
黑桃
Q
方块
10
是否继续要牌
(y/n)
:
n
电脑阶段
电脑获得牌
红桃
4
方块
K
继续要一张牌:红桃
4
方块
K
红桃
6
继续要一张牌:红桃
4
方块
K
红桃
6
梅花
10
玩家输了
是否继续
(y/n)
:
n
第四种情况
:
玩家阶段
玩家获得牌
黑桃
6
方块
5
是否继续要牌
(y/n)
:
y
继续要一张牌:黑桃
6
方块
5
红桃
9
是否继续要牌
(y/n)
:
y
继续要一张牌:黑桃
6
方块
5
红桃
9
红桃
Q
是否继续要牌
(y/n)
:
n
电脑阶段
电脑获得牌
梅花
7
黑桃
8
继续要一张牌:梅花
7
黑桃
8
黑桃
A
继续要一张牌:梅花
7
黑桃
8
黑桃
A
黑桃
3
继续要一张牌:梅花
7
黑桃
8
黑桃
A
黑桃
3
黑桃
2
玩家输了
是否继续
(y/n)
:
n
欢迎光临 作战2000论坛 (http://www.combat2000.cn/)
Powered by Discuz! X3.2