| 
 | 
 
 
 
 
 |  | 
2013/12/20(Fri) 20:06:28|NO.58816 
現在、名前作成ソフトを作ろうと考えています。
 姓
 「山田」「田中」「佐藤」
 
 名
 「一男」「二男」「三男」
 
 でランダムに名前を作成(例:山田三男 田中一男)して、ダイアログで表示するにはどうすればいいでしょうか?
 
 | 
 
 
 
 |  | 
2013/12/20(Fri) 20:45:02|NO.58817 
配列を使えば簡単に出来ます randomize
	
	sdim myoji,64,5//苗字を5人分確保
	sdim mei,64,5//名を5人分確保
	
	myoji(0) = "鹿目","暁美","巴","美樹","佐倉" //配列変数に、0から順番に""で囲った文字を代入
	mei(0) = "まどか","ほむら","マミ","さやか","杏子"
	
	pos 50,50
	objsize 150,30
	button gosub "名前をランダム作成!",*namae
	
	stop
	
*namae
	dialog strf("%s %s",myoji(rnd(5)),mei(rnd(5)))//strfはF1で調べて下さい myoji(rnd(5))は配列の0〜4をランダムに取り出す
return
 
わからないことがあったら聞いて下さい
 | 
 
 
 |  | 
2013/12/21(Sat) 18:58:36|NO.58829 
strfを使わなくてもできますよね?
 
 randomize
 
 sdim myoji,64,5//苗字を5人分確保
 sdim mei,64,5//名を5人分確保
 
 myoji(0) = "山田","唐澤","田中","吉田"
 mei(0) = "太郎","博史","高志","貴洋"
 
 pos 50,50
 objsize 150,30
 button gosub "名前をランダム作成!",*namae
 
 stop
 
 *namae
 dialog myoji(rnd(4)) + "" + mei(rnd(4))
 return
 
 | 
 
 
 |  | 
2013/12/21(Sat) 22:08:28|NO.58831 
はい別にstrfを使う必要はありません(´・ω・`)
 | 
 
 
 |  | 
2013/12/25(Wed) 07:39:21|NO.58872 
ありがとうございます。10人にするときは sdim myoji,64,10//苗字を10人分確保
sdim mei,64,10//名を10人分確保
 
でいいのですか?
 | 
 
 
 |  | 
2013/12/25(Wed) 11:18:15|NO.58873 
配列の自動拡張機能とlengthを使えば、候補数に応じた処理に出来ます。 randomize
;   配列は自動で確保されるので下の書き方でもOK
    myoji = "山田","唐澤","田中","吉田","鈴木","伊藤"
    mei = "太郎","博史","高志","貴洋"
 
    pos 80,50
    objsize 150,30
    button gosub "名前をランダム作成!",*namae
    pos 0,0
;   lengthで配列の要素数を取得できます
    mes "苗字候補数= " + length(myoji)
    mes "名前候補数= " + length(mei)
    mes
    stop
*namae
    mes myoji(rnd(length(myoji))) + " " + mei(rnd(length(mei)))
    return
 | 
 
 
 |  | 
2013/12/25(Wed) 18:06:48|NO.58875 
ありがとうございます。 
もう1つ聞きたいことがあるのですが、ふりがなってどうすればいいですか?
 
ありさんのスクリプトでお願いします。
 
例えば
 あさひ たろう
    朝日 太郎
 
みたいな感じでお願いします。
 | 
 
 
 |  | 
2013/12/25(Wed) 21:38:16|NO.58876 
とりあえず質問通りの仕様で作ってみましたが 
あくまで考え方のヒント程度の構成なので 
これをそのまま他のプログラムに使おうとはしないように。 
また、これをこういう風に改造して下さいと言われても 
(少なくとも私は)対応しませんので。
 
後は自分で基礎を学習し、処理を理解して組み立てていって下さい。
 buffer 1    ;    文字位置取得用バッファ
    randomize
;   配列は自動で確保されるので下の書き方でもOK
    myoji = "山田","唐澤","田中","鈴木","伊藤","東海林","八月朔日"
    myoji_ruby = "やまだ","からさわ","たなか","すずき","いとう","しょうじ","ほづみ"
    mei = "太郎","博史","高志","貴洋"
    mei_ruby = "たろう","ひろし","たかし","たかひろ"
    gsel 0, 1
    pos 200,50
    objsize 150,30
    button gosub "名前をランダム作成!",*namae
    pos 0,0
;   lengthで配列の要素数を取得できます
    mes "名字候補数= " + length(myoji)
    mes "名前候補数= " + length(mei)
    mes
    title "" + ginfo_cx + "  " + ginfo_cy
    stop
*namae
;   名字(ルビ含む)を決定
    myoji_no = rnd(length(myoji))
    myoji_now = myoji(myoji_no)    
    myoji_ruby_now = myoji_ruby(myoji_no)
;   名前(ルビ含む)を決定
    mei_no = rnd(length(mei))
    mei_now = mei(mei_no)    
    mei_ruby_now = mei_ruby(mei_no)
;   バッファに名字とそのルビを書いて文字の横幅を取得
    gsel 1
    mes myoji_now
    myoji_x = ginfo_mesx
    pos 0 : mes myoji_ruby_now
    ruby_x = ginfo_mesx
;   横幅の広い方を基準に表示位置を決める
    if myoji_x < ruby_x {
        myoji_offset = ruby_x - myoji_x
        ruby_offset = 0
    } else {        
        myoji_offset = 0
        ruby_offset = myoji_x - ruby_x
    }
    gsel 0
    pos ruby_offset : mes myoji_ruby_now + " " + mei_ruby_now
    pos myoji_offset : mes myoji_now + " " + mei_now
    return
|  
 |  | 
 
 
 |  | 
2013/12/26(Thu) 17:01:00|NO.58883 
みなさん、ありがとうございました。無事、作成できました。
 | 
 
 
 |