美文网首页
Kotlin实战:开发欢乐21点游戏(一)

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

作者: dasan沈扬 | 来源:发表于2017-06-12 22:15 被阅读77次

    背景

    想做个游戏和大家一起玩。
    曾经在邮轮上玩过德州扑克,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.牌型比较
        所有闲家都与庄家比较。
        黑杰克为特殊牌型,比其他所有牌型都大。除黑杰克,其他牌型都以点数比较大小。
        庄家和闲家点数相同,或都拿到黑杰克,则为平局。
        庄家和闲家都爆牌,系统判断庄家赢。

    相关文章

      网友评论

          本文标题:Kotlin实战:开发欢乐21点游戏(一)

          本文链接:https://www.haomeiwen.com/subject/ohkffxtx.html