如何确定应该为问题陈述构建的类?



我正在使用类和其他 oops 概念为二十一点编写代码。目前,我被困在如何决定它将具有哪些类上。

以下是二十一点的规则:

1.创建一副52张牌

2.洗牌

3.询问玩家的赌注

4.确保玩家的赌注不超过其可用筹码

5.发两张牌给庄家,发两张牌给玩家

6.只显示庄家的一张牌,另一张保持隐藏状态

7.出示玩家的两张牌

8.询问玩家是否愿意打,并拿另一张牌

9.如果玩家的手没有破发(超过21(,询问他们是否想再次击打。

10.如果玩家站立,则玩庄家的牌。庄家将始终命中,直到庄家的价值达到或超过 17

11.确定获胜者并相应地调整玩家的筹码

12.询问玩家是否愿意再次玩

我是编码新手,哎呀,请帮忙

注意:这不是家庭作业问题,因为 github 上有很多解决方案,如果需要,我可以复制提交。我只是想学习哎呀和课程。我不寻求解决方案,我在寻求正确的思维过程

这是一个困难的过程;通常,第一步是识别项目描述中的名词,这为您提供了一个起点,从哪里开始考虑将提供给代码的形状,以及您如何看到这些对象交互。

从您的描述中,我们可以列出以下名词:

套牌,玩家,赌注,筹码,纸牌,庄家,手牌,赢家,玩家的藏匿处。

它们可能代表也可能不代表您表示二十一点的有用对象。有些可能是您现在需要的明显对象(套牌、牌、手牌、玩家、庄家(;有些可以组合(筹码、赌注、藏匿(;有些在适度的应用程序(赢家、赌注、存储(中可能不需要,并被数据结构所取代,如列表、向量、哈希表等。

  1. 创建一副52 张牌

  2. 随机播放套牌

  3. 玩家询问他们的赌注

  4. 确保玩家的赌注不超过他们的可用筹码

  5. 庄家发两张牌,向玩家发两张牌

  6. 只显示庄家的一张牌,另一张保持隐藏状态

  7. 显示玩家的两张牌

  8. 询问玩家是否要打,然后拿另一张牌

  9. 如果玩家的没有破发(超过21(,询问他们是否想再次击打。

  10. 如果玩家站立,则玩庄家的手牌。庄家将始终命中,直到庄家的价值达到或超过 17

  11. 确定获胜者并相应地调整玩家的藏匿处

  12. 询问玩家是否想再玩一次

你应该考虑游戏中需要的任何对象,并考虑他们将要做出的属性和动作,例如卡牌应该有花色和值,这些是卡属性。套牌应该包含每张牌并且能够洗牌,因此请在 Deck 类中创建可以执行此功能的方法。

在这里,我将留下一个链接,以便您可以更好地了解python中的OOP。

https://realpython.com/python3-object-oriented-programming/

最新更新