Kotlin实战:开发欢乐21点游戏(一)

背景

想做个游戏和大家一起玩。
曾经在邮轮上玩过德州扑克,Blackjack 21点,都非常好玩。21点比较简单,就先来这个吧。

目标

1.起初是想建一个可以在局域网下一起玩21点,一个人创建房间,其他人加入的游戏。为了快速实现,先做一个单机版,只有玩家与庄家两个人。

游戏规则

  1. 建议由2到5人玩,使用4副扑克除大小王之外的208张牌,游戏者的目标是使手中的牌的点数之和不超过21点且尽量大。
    2.点数计算:每张牌都有点数,2到10的牌的点数就是其牌面的数字;J、Q、K的点数是10分;A有两种算法,1或者11,如果A算为11时总和大于21,则A算为1。例如(A,8)是19点,(A,7,J)则为18点。
    3.爆牌:玩家手中牌的总点数超过21点。
    4.黑杰克(BlackJack):一张A带一张10点的牌,比其他21点的牌大,例如(A,Q)。闲家获得黑杰克,可以获得所下注的1.5倍。
    5.停牌:玩家不再要牌,等待其他玩家操作。
    6.要牌:闲家根据自己手上的点数决定是否要牌,如果要牌,则系统再发一张牌给玩家。如果要牌后总点数超过21,则算爆牌,玩家输掉本轮游戏;若要牌后点数为21点,则不能再要;如果要牌后总点数不到21点,则玩家可以继续“要牌”“停牌”“加倍”。
    7.庄家持牌总点数少于17,则必须要牌,直到超过16,如果庄家的总点数等于或多于17点,则必须停牌。如果庄家手中有A,且A作11点时大于16点,做1点时小于或等于16点,则由庄家自己选择是否要牌。
    8.加倍:双倍下注(Double)如果您已经抽取了两张纸牌,在这两张牌不是“黑杰克”的前提下,如果认为第三张牌可以让您赢过庄家的手牌,您可以要求「双倍押注」。您的赌注将增加双倍,而您只可以再抽取一张额外纸牌
    9.保险:发过牌后如果庄家手中拿到明牌A,玩家就有机会买保险,保险金是玩家当初下注的一半。如果押过保险后,庄家是黑杰克(即庄家的另一张牌为10、J、Q、K),那么需要陪给玩家2倍的保险金。
      .如果玩家选择保险:
      庄家不是黑杰克,庄家首先收走保险金,然后进行要牌、比较的程序,与前述相同。
      如果玩家拿到21点,仍能拿到全部的酬金。
      .如果玩家不选择保险:
      庄家是黑杰克时,收走玩家赌金。
      庄家不是黑杰克,仍然进行要牌、比较等程序,与前述相同。
    11.对子:闲家可以选择在自己或其他闲家上下注押对子,如果所压的闲家获得对子(即两张相同种类的牌),则下注闲家胜,庄家赔11倍的筹码。

    12.分牌:若玩家获得对子,则可以选择分牌,将这两张牌分成两手牌,由这个玩家一人操作,每手牌的赌注与开始的赌注相同。分牌后不能“加倍”,拿到BlackJack牌型也只算普通的21点。
    13.牌型比较
      所有闲家都与庄家比较。
      黑杰克为特殊牌型,比其他所有牌型都大。除黑杰克,其他牌型都以点数比较大小。
      庄家和闲家点数相同,或都拿到黑杰克,则为平局。
      庄家和闲家都爆牌,系统判断庄家赢。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • using System; using System.Collections.Generic; using Sys...
    i_旅途阅读 8,642评论 0 1
  • 21点规则,策略及算法参考 21点算法 。 21点规则 游戏由玩家和庄家(即赌场的发牌员)对玩,看谁的牌面点数更靠...
    顺风飘千里阅读 14,570评论 1 2
  • 你的数学直觉怎么样?你能凭借直觉,迅速地判断出谁的概率大,谁的概率小吗?下面就是 26 个这样的问题。如果你感兴趣...
    cnnjzc阅读 12,009评论 0 12
  • 这几天看完一本讲赌局的书《迷失的天才》。这是一个发生在美国的真实故事,说的是一位天才的数学教授在大学生中网罗了一批...
    凉凉小茶馆阅读 67,745评论 0 12
  • 不知道为什么,有时候哪怕和一群人处在一个狭小的空间里,说话喝酒,可我还是控制不住地觉得内心孤独。这种莫名的强烈孤独...
    平胸妹纸阅读 4,705评论 7 3

友情链接更多精彩内容