Project1

标题: 随即生成棋盘为什么出错? [打印本页]

作者: yangff    时间: 2008-4-8 01:12
标题: 随即生成棋盘为什么出错?
这个脚本生成的是5*5的棋盘
为什么只有4*4
  1.       for q in 1 .. 25
  2.         b[q] = q
  3.       end
  4.       for a in 1 .. 25
  5.         one = rand(24)+1
  6.         two = rand(24)+1
  7.         l = b[one]
  8.         b[one] = b[two]
  9.         b[two] = l
  10.       end
  11.       n = 1
  12.       p = 1
  13.       for i in 1 .. 25
  14.            @game[0][n,p,1] = b[i]
  15.            p = p + 1
  16.            if p == 5
  17.              p = 0
  18.            end
  19.             if i % 5 == 0
  20.               n += 1
  21.             end
  22.       end
  23.       b = []
  24.       for q in 1 .. 25
  25.         b[q] = q
  26.       end
  27.       for a in 1 .. 25
  28.         one = rand(24)+1
  29.         two = rand(24)+1
  30.         l = b[one]
  31.         b[one] = b[two]
  32.         b[two] = l
  33.       end
  34.       n = 1
  35.       p = 1
  36.       for i in 1 .. 25
  37.            @game[1][n,p,1] = b[i]
  38.            p = p + 1
  39.            if p == 5
  40.              p = 0
  41.            end
  42.             if i % 5 == 0
  43.               n += 1
  44.             end
  45.       end
  46.       print("棋盘初始化成功!")
  47.       qqq = ""
  48.       for i in 1 .. 5
  49.          for n in 1 .. 5
  50.            qqq = qqq + " " + @game[0][i,n,1].to_s
  51.          end
  52.          qqq = qqq + "\n"
  53.        end
  54.        print(qqq)
  55.        qqq = ""
  56.       for i in 1 .. 5
  57.          for n in 1 .. 5
  58.            qqq = qqq + " " + @game[1][i,n,1].to_s
  59.          end
  60.          qqq = qqq + "\n"
  61.        end
  62.        print(qqq)
复制代码
[LINE]1,#dddddd[/LINE]本贴由论坛斑竹水迭澜结贴,如楼主认为问题未解决,请重新将此贴编辑为“有事请教”,并回帖叙述疑点即可~ ^-^ [LINE]1,#dddddd[/LINE]此贴于 2008-4-13 23:52:54 被版主水迭澜提醒,请楼主看到后对本贴做出回应。
作者: 水迭澜    时间: 2008-4-8 01:51
看不懂……整个脚本是干什么用的OTZ
作者: yangff    时间: 2008-4-8 02:49
就是生成5*5个数字,随机排列在二维数组里!
作者: 八云紫    时间: 2008-4-8 02:50
越看越觉得是C++。
数组是从0开始计算,多半吧。
实在是不理解LZ写的。
作者: 美兽    时间: 2008-4-8 03:11
仅一行。

@world = Array.new(5){Array.new(5){rand(24) + 1}}
作者: yangff    时间: 2008-4-8 05:47
以下引用美兽于2008-4-7 19:11:09的发言:
<br><script language="javascript">
<!--
strCont="仅一行。\r\n\r\n@world = Array.new(5){Array.new(5){rand(24) + 1}}";
document.write(ubb.spbShowTopic(strCont,1));
//-->
</script>仅一行。<br>
<br>
@world = Array.new(5){Array.new(5){rand(24) + 1}}

<br><br><font color="red"></font><font color="red">[本贴由作者于 2008-4-7 19:11:29 最后编辑]</font>

1、声称一堆乱七八糟的东东
2、要求部重复啊!
作者: 美兽    时间: 2008-4-8 05:57
1、声称一堆乱七八糟的东东
2、要求部重复啊!

就是生成5*5个数字,随机排列在二维数组里!


什么叫做乱七八糟的东西,明明是你自己语言表达能力的问题.

@temp = (1..25).to_a

@world = Array.new(5){Array.new(5){@temp.delete(@temp[rand(@temp.size)])}}

我只知道生成的是一个包含1-25不重复数字的5*5二维数组,至于是否为你所需要不知道,另外在下不做售后服务,抱歉。


[LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: 水迭澜    时间: 2008-4-8 05:59
美受君这行脚本美……我也受教了OTZ
先前居然脑残没想到
作者: yangff    时间: 2008-4-8 06:07

不知道为什么?
总返回乱码  
  1.       print("棋盘正在被初始化!")
  2.       @temp = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]
  3.       @game[0] = Array.new(5){Array.new(5){@temp.delete(@temp[rand(@temp.size)])}}
  4.       @temp = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]
  5.       @game[1] = Array.new(5){Array.new(5){@temp.delete(@temp[rand(@temp.size)])}}
  6.       print("棋盘初始化成功!")
  7.       qqq = ""
  8.       for x in 0 .. 5
  9.         for y in  0.. 5
  10.          qqq = qqq + @game[0][x,y].to_s + "           "
  11.        end
  12.        qqq = qqq + "\n"
  13.      end
  14.      print(rand(24) + 1)
  15.      print (qqq)
复制代码
{/pz}{/pz}{/pz}
作者: 沉影不器    时间: 2008-4-8 06:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: yangff    时间: 2008-4-8 06:23
以下引用沉影不器于2008-4-7 22:18:47的发言:
<br><script language="javascript">
<!--
strCont="啊,好复杂...\r\n\r\n别的就不说了,这个:\r\n@temp[rand(@temp.size)]结果跟 rand(25)+1 有区别?";
document.write(ubb.spbShowTopic(strCont,1));
//-->
</script>啊,好复杂...<br>
<br>
别的就不说了,这个:<br>
@temp[rand(@temp.size)]结果跟 rand(25)+1 有区别?

一个数组里有[1,2,3] size是3
随机抽取一个
假如变成
[2,3] size变成2
就绝对不会重复!
作者: 缺牙de兔子    时间: 2008-4-8 06:24
p = p + 1
           if p == 5
             p = 0
           end
            if i % 5 == 0
              n += 1
            end
P=6 因为P=5时就 自动变成1
[LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: 水迭澜    时间: 2008-4-8 07:08
LS居然看懂了LZ的脚本,太不容易了
OTZ又看错了,最近十分脑残
作者: yangff    时间: 2008-4-8 21:38
不行嘎。。。。。。。。。。。。。。。。。。。。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1