ゲームを作りたい人のための ソースコード集

私がその日作った短めのソースを簡単な解説とともに載せていきます
ゲーム制作初心者にとって参考になるかもしれないソースが多いです


<< 二次元配列(文字列型)の並べ替え | main | 整数と実数の比較 >>



文字列の重複チェック

文字列配列の中を調べ、同じ文字列の位置を取得するプログラムです

第一引数:検索結果(重複文字列の位置)を格納する配列

第二引数:検索する文字列配列

第三引数:初めから数えて指定した要素番号の値が何回繰り返されたか調べる

第四引数:指定した数を検索(10を指定すると要素番号0〜9まで検索)

戻り値:繰り返された回数を返す

 

#module
#defcfunc duplicatenum array resarr,array arr,int uid,int max
    if uid>=max|uid>=length(arr)|uid>=length(resarr){dialog"第2引数が大きすぎます":return -1}
    memset resarr,length(resarr)*4,0
    my=arr(uid)
    setid=0:ordid=0
    repeat max:chkid=cnt
        if my!=arr(chkid):continue
        if setid=1{
            resarr(0)=bfid
        }
        if setid>=1{
            resarr(setid)=chkid
        }
        setid++:bfid=chkid
        if uid=chkid{
            ordid=setid
        }
    loop
    return ordid
#global
randomize
len=20
sdim arr,len
repeat len
    r=rnd(3)
    if r=0{
        arr(cnt)="「番号」"
    }else:if r=1{
        arr(cnt)="「ID」"
    }else{
        arr(cnt)="「No.」"
    }
loop
dim resarr,len
repeat len
    num=duplicatenum(resarr,arr,cnt,len)
    y=cnt*20
    pos 0,y:mes""+cnt+". "+arr(cnt)
    pos 120,y:mes""+num+"番目¥t¥t"
    if num>1{
        pos 200,y:mes"重複あり"
    }
    repeat num
        pos 300+cnt*20,y:mes""+resarr(cnt)
    loop
loop

0
    posted by higashijugem 20:32comments(0)|-|


    この記事に対するコメント