从来没有学过编程,变态的学校才上2节课就出了一个这么难的作业,说是让回家自己看书去,nnd,这么厚一本书还都是英文的,马上交作业了还是不会写。好心的朋友帮帮忙了!
就是一个很简单的掷骰子的游戏(以下我都是简化了的,其实要求规则什么的还很多,我就是需要一个例子,我照着理解,自己做余下的)
游戏规则,有2个骰子,掷出来的数字合7-12就是大,2-6就是小,你和庄家的赔率是2:1(比如说你赌10元,赢了拿20元,输了就是输10元),假设刚开始你有100元,输光了就不让玩了,或者赢到1000元也不让玩了。
请问这个小游戏应该如何写,一头雾水,希望有好心的朋友指点一下,最好能写下了,多谢了!!!
------解决方案--------------------
这学校是在逼你们成才啊。。。
------解决方案--------------------
学校想开赌场?
------解决方案--------------------
两个[1,6]随机整数,加起来判断大小,下面就清楚了吧?
------解决方案--------------------
定义一个你的钱的全局变量
定义一个方法 声明两个1~6的随机数变量
加个判断
if(0<你的钱<1000){
加起来比较 再根据条件给你的钱加或者减
}
------解决方案--------------------
什么学校,提这么难,我都学了这么久了都不会做!
------解决方案--------------------
这学校没人性吖,都不考虑一下学生的感受,我也看不懂吖
------解决方案--------------------
作业题应该去问同学啊,为什么要到网上问,要是你的同学都不会的话那就别问了,老师不会难为你的。
------解决方案--------------------
你压大小,然后给出2-12的随机数比大小,最后记录结果 OK?
反证又没让你去模拟骰子的动画场景
------解决方案--------------------
表示很简单
------解决方案--------------------
我认为楼主知道了下面的知识就可以完成作业了:
Random.Next() 返回非负随机数;
Random.Next(Int) 返回一个小于所指定最大值的非负随机数
Random.Next(Int,Int) 返回一个指定范围内的随机数
1、random(number)函数介绍
见帮助文档,简单再提一下,random(number)返回一个0~number-1之间的随机整数.参数number代表一个整数.
示例:
trace(random(5));
2、Math.random()
见帮助文档。返回一个有14位精度的0~1之间的数,注意没有参数。
示例:
trace(Math.random());
3、自定义的函数
我们有时候需要的随机数可不是这么简单。
比如我们想返回一个有两位小数的随机数,返回两个数之间的随机数,返回字母随机数,返回多个随机数等等,
这些都需要我们自己编写函数来实现。下面的代码直接复制到主场景第一帧就可以调用了。注意有的函数需要入口参数。
#1: 返回一个共有n位数,其中m位是小数的随机数
function randomXiao(n,m){
var a = Math.pow(10, n+m);
var b = random(a);
return b=b/Math.pow(10, m);
}
可以用trace(randomXiao(3,2));实验一下。这个函数简单。Math.pow(n,m)用于返回一个以n为底,m为指数的数。乘方!
# 2: 返回一个n到m之间的随机数
function randomNm(n,m){
if(m>=n){
return random(m-n+1)+n;
}
else {
return false;
}
}
之所以用random(m-n+1)是因为随机数的范围是m-n,加上1使得m也能在里面。加上n保证随机数以n为下限。
加上判断使函数更完整。另外,如果要返回一个负数随机数,也可以用randomNm(n,0);当然,我想更一般的是用-random(n);
# 3: 返回一个字母
function randomAscii(){
var c = String.fromCharCode(random(26)+65);
if(random(2)){
return c.toLowerCase();
}
return c;
}
#4: 返回一个不区分大小写的随机字母
如果要返回大写,把if条件句去掉就行了。如果要返回小写,可以把条件句改为恒成立,或者去掉条件,最后一句改为:
return c.toLowerCase(); String.fromCharCode(number)函数返回number代表数字的ASCII码。
toLowerCase()用于将大写字母转为小写。
# 5: 返回一个n到m之间的k个互异随机数
private void RandomKDiffer(int n, int m, int k, int[] arrayK){
int i = 0;
int a,j;
Random random = new Random();
while (i < k) {
a =random.Next(m-n+1)+n;
for (j = 0; j < i; j++) {
if (a == arrayK[j]) {
break;
}
}
if (j == i) {
arrayK[i] = a;
i++;
}
}
}
数组arrayK中的元素即为所得值。注意到我们借用了random(m-n+1)+n来返回一个n~m的随机数。所以m本身也会被返回。
如果要返回m以内的数,可以把n值改为0。如果要随机返回不确定个数,可以把入口参数的K值赋为k=random(m-n);
随机返回不一定互异的数,把判断去掉就可以了,注意i++不要漏掉。这里不再给出。
#指定若干个字符/数字,然后从中随机返回一个(或多个)字符/数字,可以把原字符赋给一个数组,再根据数组的下标来
决定返回值。这里不再举出函数,大家可以自己尝试。
#另需指出,对于随机设定一个MC的颜色值,我们较多采用mcColor.setRBG(random(0xFFFFFF));下面的例子中会有说明。
如果要指定一个色域,可以采用上面给出的函数。如果对Color对象不太了解的可以查帮助,这里不作讨论。
以上函数算是由random直接衍生的,下面再举个例子,可以说是衍生函数的衍生函数,其中会直接用到上面给出的函数,请注意。
#6: 返回一个指定长度的随机大写英文字符串
function randomString(n){
var arrayA = randomKdiffer(1, 26, n);
var arrayB = "";
for (var i = 0; i < n; i++) {
c=String.fromCharCode(arrayA[i]+64);
/* if(random(2)){
c=c.toLowerCase();
}
*/
arrayB = arrayB+c;
}
return arrayB;
}
注意到StringCharCode方法,如果要写成小写,则把返回值写成arrayB.toLowerCase();如果返回一个不区分大小写的字符串,
则把注释去掉.如果要返回一个不指定长度的字符串,则可以把入口参数赋值为random(n);这样只指定其上限.此函数也可以用
randomAscii函数实现,留给大家自己思考.
#7:在几个区域中选出随机数
比如,在1~20,45~70这两段数之间选取一个随机数。因为区域数未定,所以直接用一个确定的函数编写多有不便,
我们要使用的方法就是用switch语句进行定向,具体的我们给出一个函数,返回一个1~20,45~70内的数,其它区域读者请自行更改。
function randomArea(){
var a=random(2);
switch(a){