编写一个骰子游戏,如何让电脑赢的几率在七成以上?
的有关信息介绍如下:
这种问题绝对是先随机出结果,即本局是玩家赢还是电脑赢。(这个随机就不说了,第一天学编程的人都会。100以内随机,70以内是电脑赢,70-99是玩家赢)
如果是玩家赢,那么,只要避免电脑掷出两个6,那么玩家肯定可以匹配的给出一个比电脑大的结果!如果是电脑赢,同理!(这个算法同样很简单,学过两天编程的人都会。)
至于玩家看到的,电脑和玩家投掷骰子的先后顺序,那么做过游戏客户端的程序员应该都知道玩家看到的只是表现,真正的结果其实早就已经随机出来了,只是结果还没有表现出来,只是玩家没看到而已。
举个栗子:
1、随机结果,本轮是电脑赢还是玩家赢?随机结果是35,小于70,电脑赢。
2、获得失败方的点数(即玩家的点数),1-6随机两个点数,如果是两个6,重新随机,直到不出现两个6。
3、获得获胜方的点数(即电脑的点数),1-6随机两个点数,如果小于电脑的两个点数和,则再随机,直到随机出大于玩家的点数。(这个算法可以优化,当前算法在极端情况下需要循环很多次)
4、以上步骤得到了玩家和电脑的共四个骰子点数,按游戏设定的顺序一个一个展现给玩家即可。
加个实例:
A、前两年非常火的页游《龙将》,据说是全国收入前10的页游之一,收入是不是真的我不清楚,反正不是我做的,但是有几年真的很火。
B、龙将里面有一个对酒系统,玩家和电脑出拳(石头剪刀布),玩家赢的话,获得酒魂(好像是叫酒魂,记不太清楚了,反正就是一种游戏内货币),一局对酒有三个回合,如果某一回合玩家失败,则本局结束,如果玩家一直赢,则三个回合后,本局结束。
C、三个回合中,电脑的胜率依次递增(具体的胜率是多少不记得了,简单的说就是第一回合电脑的胜率是30%,第二回合是50%,第三回合是80%),当然获得奖励的数量也不相同,赢了三个回合的奖励大大多于赢一个回合的。
D、判定过程:先随机电脑赢还是玩家赢,如果玩家赢,则先从石头剪刀布中随机出一个结果给电脑(如“布”),然后再选出赢电脑的那个出拳结果给玩家(布对应的是“剪刀”)。有了出拳方案后,再根据先玩家/后电脑的顺序出拳。



