Hit是一款有趣而简单的21点ZX81游戏

在我的青年时代,我经常从真实的游戏中寻找灵感。 纸牌游戏就是这样一种来源,而我经常从中吸取一种。 一些尝试,例如Stud,都是简单的高低游戏。 对于March的计划,Hit处理更复杂的Blackjack,避开图形以专注于游戏玩法。

无需卡。

放弃直接现实主义,Hit在复制二十一点游戏方面做得不错。 由于每个卡都是单个字母,所以10用T表示。像拆分这样的细微之处也被忽略了。 一个明显的变化是Hit放弃了ace,改为使用1。 这样就无需确定ace是1还是11。除去ace具有消除即时21或二十一点的副作用。 游戏的名称很贴切,因为Hit的玩法不像二十一或其变种。

话虽如此,《 Hit》仍然是一款有趣的游戏。 您从$ 1000开始,一次最多可以下注$ 500。 除非您的下注金额少于10美元,否则您不能下注10美元。 由于银行有9,000美元,您的目标是赢得10,000美元并因此破产。

下注后,游戏会洗牌并吐出纸牌。 没有西装,只有数字。 幸运的是计数卡,一切都是随机的-很好,是伪随机的。 策略与以前一样,可能会在您身边走运。

在甲板上挖。

总体而言,Hit是一个简单的程序。 技巧或花哨的代码没什么办法。 布局合理且可读,可以根据需要使用子例程和数组。 您可以说这是后来编程年的游戏。 这并不意味着它不能被优化或改进。

从设计的角度来看,您会发现代码集中在显示的内容上。 尽管没有图形,但仍然可以很好地管理文本。 使用布局合理的显示器,Hit小心地添加足够的空间以覆盖更长的行。 像您的赌注或底池之类的东西会随着它们的缩小而正确显示。 这是一种微妙但有效的方法。

使用一对简单的可重复使用的例程在行300和350上显示纸牌。每个例程代表玩家和发牌者的手牌,但在其他方面相同。 每个例程计算卡的值,该值被加到相应手牌的总数中。 之后,它将增加卡的数量并调整下一张卡的显示。

在例程中,我使用VAL来计算卡的价值。 这可能是我可以考虑的一个技巧。 VAL旨在将字符串评估为数字表达式,其中包括扩展变量。 在程序开始时,我为每张分配值为10的西装卡设置变量。随后,将T,J,Q和K中的值转换为它们的值并加到手牌的总数中。 也许并不明显,但效果很好。

随机播放例程是游戏中最有趣的(即使过于简单)。 使用FOR循环,它可以在牌组中四处移动卡片。 由于副牌没有套服,因此缩短了套牌,以A $持有,缩短了13张牌,并且每手被重新洗牌。 有趣的是,如上所述,我使用A $来显示和计算套牌。

重新思考一些事情。

尽管我仍然喜欢这款游戏,但有些事情我还是可以改变的。 显而易见的一点是加入了王牌。 所需的逻辑不是那么复杂,尽管这意味着重构一些事情。 然而,它将改善游戏玩法。 微小的变化,但值得的。

使用一个完整的甲板也是一个好主意。 知道这是短牌,就可以推断出他们最有可能获得下一张牌。 改组甲板会有所帮助,但较大的甲板将是明智的。

另一种是将一些图形重新制作到游戏中。 尽管不需要,但我想念一张卡片图形所代表的拟态。 尽管游戏简单易用,但这并不意味着它看起来不会更好。 实际上,我曾经见过那个时代的许多其他纸牌游戏,它们创造了一些不错的外观。 即使是Stud的简化卡,也会更加有趣。

我希望进行的另一项更改是删除对INPUTINPUT$ 。 我从来不喜欢ZX81将您带出屏幕从用户那里收集信息的方式。 锚定在屏幕中的界面更加细腻,看起来会更好。 这也将符合游戏的整体设计理念。

撇开这些,Hit按设计工作。 它具有智能的布局和有效的方法。 在许多方面,上面的更改在其他方面不错的游戏中都是漂亮的面孔。