HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
1220
kai名前作成ソフトについて8解決


kai

リンク

2013/12/20(Fri) 20:06:28|NO.58816

現在、名前作成ソフトを作ろうと考えています。


「山田」「田中」「佐藤」


「一男」「二男」「三男」

でランダムに名前を作成(例:山田三男 田中一男)して、ダイアログで表示するにはどうすればいいでしょうか?



この記事に返信する


kanahiron

リンク

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
わからないことがあったら聞いて下さい



[PINE]Kirito

リンク

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



kanahiron

リンク

2013/12/21(Sat) 22:08:28|NO.58831

はい別にstrfを使う必要はありません(´・ω・`)



kai

リンク

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



kai

リンク

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



kai

リンク

2013/12/26(Thu) 17:01:00|NO.58883

みなさん、ありがとうございました。無事、作成できました。



ONION software Copyright 1997-2023(c) All rights reserved.