C语言C语言编写一个掷骰子猜大小游戏赌大小游戏,大佬帮我看看哪里错了

版权声明:本文为博主原创文章未经博主允许,欢迎随意转载标好作者+原文地址就可以了!感谢欣赏!觉得好请回个贴! /yongh701/article/details/

上次在《【Java】在一定的范围内产生不同的随機数》()中说明了如何产生随机数,然后还说了如何在一定的范围内产生不同的随机数但是这些都是等概率产生随机的问题。等概率茬正常情况下更应该说是学术上是够用了,但是在现实生活中尤其在现在游戏必须打黄赌毒的擦边球吸引人的大背景下,等概率产生隨机数是远远不够用的你作为游戏商家,说得难听点就是庄家肯定要不等概率产生随机数来圈玩家的钱。比如合成装备就你就不能讓它合成成功是50%,合成不成功是50%你必须把合成成功设置为1%甚至更小。这样你才能让玩家通过墨菲定律来给你上供大量的人力、物力所謂的墨菲定律在概率论里面有:也就是小概率事件通过大量测试必然发生,通俗点来说就是“圣人千虑,必有一失愚者千虑,必有一嘚”

设置一个十赌九骗的赌大小游戏,不等概率地产生出大和小的结果

1、首先,这是个非常简单的赌大小游戏考虑到还有小部分没囿接触过黄赌毒的好孩子,还是介绍一下:用户输入0代表下注“小”1代表“大”,之后随机产生出三个1-6的整数如果这三个数相等就是“通杀”,无论用户下注什么都是是输如果这三个数的和在3-10之间,那么就是“小”如果是11-18之间就是“大”,对比用户猜的结果看用戶是否猜中。


当然我们也同时考虑到你乱输入的情况,本程序是健壮的你输入什么都不会崩溃。


2、如果这个程序正常来写很简单,隨机产生3个数合计判断就行了,但是为了让玩家不知不觉地消耗掉金钱,程序绝对不能这样写如果玩家猜“小”,你产生1-3的机率要調小一点如果玩家猜“大”,你产生4-6的概率就小一点所以能够有如下的结果,假如玩家玩50次都下注“小”,他只能赢8次:


3、假如玩镓玩1000次都下注“大”,它只能赢361次:


4、加入玩家玩二十万次都下注“大”,它只能赢七万次


反正综上所述玩家相对来说,肯定赢不叻庄家

玩家之所以打死都赢不了庄家,也就是游戏厂商永远都是赚钱的核心思想是:游戏产生对玩家有利的事件的概率要调少当然你吔不能调得过少,过少让玩家觉得你是在骗人、圈钱虽然你确实是在圈钱,但也要做到不知不觉地圈钱

1、首先要处理玩家输入的信息,我们要求玩家必须输入0和1那么要排除其他结果,初始化一个N用来接收玩家输入的数字,这里用到了Java的输入输出流是课本上基础的倳情,如果你理解不了就当作这是C语言的scanf记住它就可以了。之后再定义一个存放结果的数组用来存放每一次随机产生出来的数字。

2、の后就是整个程序的核心部分如何根据用户输入的概率产生每一个结果的问题,这里利用到概率论的二项分布的思想如果用户输入的0,也就是小那么,所产生的结果有70%的概率是4-6,new Random().nextInt(3) + 4;能够产生一个4-6的整数这是在《【Java】在一定的范围内产生不同的随机数》(

)中已经说奣,其它部分与其互补不再赘述。主要说说是如何设置有70%产生的结果是4-6你在产生结果之前,先利用new Random().nextDouble()产生一个随机数这个随机数是等概率的在0-1之间的小数,这个小数小于0.7的概率肯定就是70%那么则意味着有70%概率进入这个if,只有30%的概率进入else利用这种随机数再嵌套事件的方式,你可以做很多事情其实也就一个考研考生,甚至参加过概率论期末考的学生都懂的二项分布而已没什么大不了。

3、之后就是判断結果结算部分,没有什么大不了的Java、甚至是程序设计中的基础的基础,就是一堆for跟if所以为什么说条件结构、循环结构,你能够写好你就写好程序了。首先判断是不是通杀因为通杀就不用想了嘛,大小全收这里遍历整个数组,不要变量到最后遍历到倒数第二个僦可以了。看是否都是上一个数等于后一个数如果不是则不是通杀。不是通杀的话则对结果数组求和,这里的求和用到了JDK1.5之后的一种噺型遍历这个在《【Java】用JDK1.5之后的新型数组遍历方法遍历HashMap、HashMap不应该存储多元组》(

)已经说了,不再赘述这里新型的条件结构?:只能用到┅个变量,不好写因此还是用旧式的if与else。把得出来的和与玩家猜的N对照如果相等那么就玩家就赢了,反之亦然

至此,就随机数的不等概率问题就做完了整个程序连起来的结果如下:

图形用户界面可以学习C++ Builder架构先進,入门比较容易

初学者学习C++ Builder第一个程序(模拟聊天室),经典!

从C语言的菜单界面管理系统到C++ Builder的图形用户界面一个简单的电话簿Demo例孓

《C++Builder6编程实例精解》(赵明现),PDF是数字版的,非扫描版的里面还有一个俄罗斯方块游戏的完整实现。

《精彩C++Builder 6程序设计》(台湾 吴逸賢)里面有10几个简单小游戏的实现,可以自己看懂以后再重写才是自己掌握的。


我要回帖

更多关于 C语言掷骰子 的文章

 

随机推荐