OK論壇

 找回密碼
 註冊
查看: 1224|回復: 11

怎讓連續的set @a,rand(a,b); set @b… a跟b數值不重複

 關閉 [複製鏈接]
  • TA的每日心情
    開心
    2019-8-18 01:19 AM
  • 簽到天數: 56 天

    連續簽到: 2 天

    [LV.5]常住居民I

    發表於 2010-2-1 13:02:29 | 顯示全部樓層 |閱讀模式
    本帖最後由 xd820410 於 2010-2-1 05:09 PM 編輯
    1. setarray cc[1],"物品編號1","物品編號2","物品編號3","物品編號4","物品編號5","物品編號6","物品編號7","物品編號8","物品編號9","物品編號10";
    2. for(set .@i,1; .@i<=3; set .@i,.@i+1){
    3. setd "itemrand"+.@i,rand(1,10);
    4. setd "itemnumber"+.@i,rand(30,40);
    5. setd "itemitemlist"+.@i,@cc[getd("itemrand"+.@i)]; }
    複製代碼


    for跑出來的結果會是
    1. set itemrand1,rand(1,10);
    2. set itemrand2,rand(1,10);
    3. set itemrand3,rand(1,10);
    4. set itemnumber1,rand(30,40);
    5. set itemnumber2,rand(30,40);
    6. set itemnumber3,rand(30,40);
    7. set itemitemlis1,cc[itemrand1];
    8. set itemitemlis2,cc[itemrand2];
    9. set itemitemlis3,cc[itemrand3];
    複製代碼


    我的問題重點在這邊
    我要如何讓itemrand1跟itemrand2跟itemrand3不重複呢?
    回復

    使用道具 舉報

  • TA的每日心情
    開心
    2019-8-18 04:57 PM
  • 簽到天數: 2148 天

    連續簽到: 1 天

    [LV.Master]伴壇終老

    發表於 2010-2-1 13:03:35 | 顯示全部樓層
    角色變數不能陣列喔
    1. setarray @cc[1],"
    複製代碼
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2019-8-18 04:57 PM
  • 簽到天數: 2148 天

    連續簽到: 1 天

    [LV.Master]伴壇終老

    發表於 2010-2-1 13:10:41 | 顯示全部樓層
    有個方法是
    把1-10的rand 也做成陣列---> .@and[1],1,2,3,4,5...;
    然後
    1. setd "itemrand"+.@i,.and[rand(1,10)];
    複製代碼
    再來
    多用一個for
    1. for(set .@u2,getd("itemrand"+.@i);.@u2<=getarraysize(.@and);set .@u2,.@u2+1){
    2.         set .@and[.@u2],.@and[.@u2+1];
    3. }
    複製代碼
    把用過的數字蓋掉
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2019-8-18 01:19 AM
  • 簽到天數: 56 天

    連續簽到: 2 天

    [LV.5]常住居民I

     樓主| 發表於 2010-2-1 13:15:50 | 顯示全部樓層
    嗯好  謝謝提醒跟解答
    先試試看
    好了的話再上來XD
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2019-8-18 01:19 AM
  • 簽到天數: 56 天

    連續簽到: 2 天

    [LV.5]常住居民I

     樓主| 發表於 2010-2-1 14:46:11 | 顯示全部樓層
    囧  不好意思  剛剛研究了一段時間還是不太懂
    這句
    set .@and[.@u2],.@and[.@u2+1];
    set 數值=數值? 囧 有點超出我的理解範圍的
    不曉得是我傻了還是筆誤

    //吃飯一下XD 晚點回來 感謝你的解答摟
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2019-8-18 04:57 PM
  • 簽到天數: 2148 天

    連續簽到: 1 天

    [LV.Master]伴壇終老

    發表於 2010-2-1 14:57:26 | 顯示全部樓層
    那只是把n+1號數據覆蓋到n號數據
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2019-8-18 01:19 AM
  • 簽到天數: 56 天

    連續簽到: 2 天

    [LV.5]常住居民I

     樓主| 發表於 2010-2-1 15:34:42 | 顯示全部樓層
    剛剛試過好像會超過陣列裡面的數據耶
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2019-8-18 04:57 PM
  • 簽到天數: 2148 天

    連續簽到: 1 天

    [LV.Master]伴壇終老

    發表於 2010-2-1 15:55:32 | 顯示全部樓層
    我只說概念
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2013-7-11 12:09 AM
  • 簽到天數: 118 天

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2010-2-1 16:34:18 | 顯示全部樓層
    剛剛試過好像會超過陣列裡面的數據耶
    xd820410 發表於 2010-2-1 03:34 PM



    1. for(set .@u2,getd("itemrand"+.@i);.@u2<=getarraysize(.@and);set .@u2,.@u2+1){

    2.         set .@and[.@u2],.@and[.@u2+1];
    3. }
    複製代碼


    要改囉
    - -"

    天殺只說概念~


    只給魚竿不給魚

    哈~
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2019-8-18 01:19 AM
  • 簽到天數: 56 天

    連續簽到: 2 天

    [LV.5]常住居民I

     樓主| 發表於 2010-2-1 16:44:45 | 顯示全部樓層
    本帖最後由 xd820410 於 2010-2-1 05:21 PM 編輯

    嗯 好   我研究一下0.0

    --

    樓下謝謝  正在試0.0
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2013-7-11 12:09 AM
  • 簽到天數: 118 天

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2010-2-1 17:09:35 | 顯示全部樓層
    本帖最後由 Alopex 於 2010-2-1 05:11 PM 編輯

    這個試試可不可以

    寫玩沒測試
    1. setarray .@ran[1],1,2,3,4,5;



    2. for(;;){
    3.         set .@num,rand(1,5);
    4.         if(.@ran[.@num])        //判斷陣列是否為空
    5.         {
    6.         set .@i,.@i+1;
    7.         setd "itemrand"+.@i,.@ran[.@num];
    8.         set .@ran[.@num],0;
    9.         }
    10.         else if(.@i == 5) break;        //判斷是否設定五次值
    11. }
    複製代碼
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2013-7-11 12:09 AM
  • 簽到天數: 118 天

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2010-2-1 18:46:06 | 顯示全部樓層
    老實說,這只支援少量


    大量的話,會消耗太多程序ˊˋ
    回復 支持 反對

    使用道具 舉報

    您需要登錄後才可以回帖 登錄 | 註冊

    本版積分規則

    Archiver|手機版|小黑屋|OK討論區

    GMT+8, 2025-7-2 03:21 PM , Processed in 0.087630 second(s), 20 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回復 返回頂部 返回列表