Site search

Google
WWW を検索 backup-beta.blogspot.com を検索

2008年11月15日土曜日

ロト6とかのスクリプト

ロト6は千円くらいのしか当たったことのない千尋ですw

今回は数字選択式宝くじの番号をランダムに生成するスクリプトを考えてみました^^
でもナンバーズだったらすごく簡単ですよねwww
// ナンバーズ4
default
{
    touch_start(integer total_number)
    {
        integer i=llCeil(llFrand(9999));  // 1~9999までの乱数
        llSay(0,(string)i);  // チャットで乱数を表示
    }
}

llCeilは切り上げされた整数になります。 llCeil(1.3) だったら 2 って感じですね。
あと、切捨てするときはllFloorで、四捨五入はllRoundです。


ロト6は1~43の番号から6つを選びますので、リストに番号を登録しといて、当たった番号をリストから削除して6回抽選するようにしました。
// ロト6
lot()
{
    list num;  // 番号用リスト
    integer i;
    for (i=0; i < 43; i++) {  // 43回ループ
        num+=[i+1];  // 番号を順に登録
    }
    list win;  // 当選リスト
    integer len;
    integer rand;
    for (i=0; i < 6; i++) {  // 6回抽選
        len=llGetListLength(num);  // 番号リストの長さを調べて
        rand=llFloor(llFrand(len));  // 乱数発生
        win+=[llList2String(num,rand)];  // 当選リストに当たった番号を登録
        num=llDeleteSubList(num,rand,rand);  // 番号リストから当たった番号を削除
    }
    string str=llDumpList2String(win,", ");  // 当選番号をカンマで区切った文字列
    llSay(0,str);  // チャットで当選番号を表示
}

default
{
    touch_start(integer total_number)
    {
        lot();  // タッチでlotを実行
    }
}

0 件のコメント:

コメントを投稿