ひらがなを漢字に変換する(単漢字変換)

最終投稿者:Material 305033 1 mini cfm_ 更新:2016/01/21 01:20:54
単漢字変換 ver.1.2
---全ての常用漢字への変換ができる関数
tankanji_henkan()

説明
  • ひらがなを渡すことで、その変換候補をすべて出力します。
  出力された文字列はwikiのスクリプト/いろいろな文字列操作の関数にあるstr_mid()関数などで切り出して使ってください。
  • 辞書は自分で追加・消去できます。自由に変えて使ってください。(制限はコードに書いてあります)

重要事項(必ず読んでください)
  • 送り仮名がある漢字は、送り仮名を入れない状態でのみ変換可能です。分かりにくいので、この関数を使ったゲームを作る時は明記してください。
  (例:「惑」がほしいときは「まど」と入れる)
  • この関数は非常に文字列が多い(約10400文字)ため、一度スクリプトへ書くと記入画面が応答しなくなる(強制終了)可能性があります。そのときは何度かに分けて入れてください。
  • スクリプト記入画面の動作が非常に遅くなる、スクリプトの文字列制限(開始スクリプトは2万文字)を超える、などが考えられます。辞書データ部分(「#===ここから、関数部分===」の所まで(約8900文字))のみを開始スクリプトや最初に実行するイベント等に入れて対応できます。
  • よくわからない方は一番下のテストスクリプトの出力結果を見てみてください。

自分で辞書データを追加したい人へ(読まなくても良いです)
  • 読み(ひらがな)の一文字目が、data0:あ/か行, data1:さ/た行, data2:な/は行, data3:ま/や/ら/わ行
  • 辞書の順番は、searchkana(s)関数のスクリプト一行目の文字列の順番の五十音順
  • 読みは最大で5文字、最少で一文字
  • ひらがなの"ぁ,ぃ,ぅ,ぇ,ぉ,ー" は読みに使えない

#===辞書データ===
setVariable("kanji_data",createArray())
getVariable("kanji_data")[0] = splitString("あ,浴揚有明飽編当遭上充在合荒空挙開会宛亜,あい,藍相曖愛挨哀,あいだ,間,あお,青仰,あか,明赤,あかつき,暁,あき,明秋,あきな,商,あきら,諦,あく,握悪,あこが,憧,あご,顎,あさ,麻朝浅,あざ,鮮字,あざけ,嘲,あざむ,欺,あし,足脚,あじ,味,あず,預,あせ,焦汗,あそ,遊,あた,与辺,あたい,値価,あたた,暖温,あたま,頭,あたら,新,あつ,熱暑集厚圧,あつか,扱,あと,跡痕後,あな,穴,あなど,侮,あに,兄,あね,姉,あば,暴,あぶ,危,あぶら,油脂,あま,余尼天甘雨,あみ,網,あめ,天雨,あや,妖危怪,あやつ,操,あやま,謝誤過,あゆ,歩,あら,粗洗新荒,あらし,嵐,あらそ,争,あらた,改,あらわ,表著現,ある,歩,あわ,泡併淡慌哀,あん,行暗案安,い,要唯癒入鋳煎逝生井射行言居忌易緯遺慰維違意彙椅偉萎移異尉胃畏為威委依医囲位衣以,いえ,家,いか,怒,いき,息粋域,いきお,勢,いきどお,憤,いく,幾育,いくさ,戦,いけ,池,いこ,憩,いさ,勇,いさぎよ,潔,いし,石,いしずえ,礎,いずみ,泉,いそ,急,いそが,忙,いた,板悼痛致傷至,いただ,頂,いただき,頂,いだ,抱,いち,市壱一,いちじる,著,いつ,五逸一,いつく,慈,いつわ,偽,いと,糸,いとな,営,いど,挑,いな,否稲,いぬ,犬,いね,稲,いの,祈,いのち,命,いばら,茨,いま,今,いまし,戒,いも,芋,いもうと,妹,いや,卑嫌,いろ,色,いろど,彩,いわ,祝岩,いん,音韻隠飲陰淫院員姻咽因印引,う,憂有埋浮売得討打請生植熟受産撃飢雨羽宇右,うい,初,うえ,上,うお,魚,うかが,伺,うけたまわ,承,うご,動,うし,後牛,うしな,失,うじ,氏,うす,薄臼,うず,渦,うた,謡歌唄,うたい,謡,うたが,疑,うち,内,うった,訴,うつ,写映鬱移,うつく,美,うつわ,器,うで,腕,うと,疎,うなが,促,うね,畝,うば,奪,うぶ,産,うま,馬,うみ,海,うめ,梅,うやうや,恭,うやま,敬,うら,裏恨浦,うらな,占,うらや,羨,うる,潤,うるお,潤,うるし,漆,うるわ,麗,うれ,憂愁,うわ,上,うん,雲運,え,柄得笑重餌江恵獲絵会回依,えい,衛鋭影詠営栄映英泳永,えが,描,えき,役駅液益疫易,えさ,餌,えだ,枝,えつ,閲謁越悦,えら,選偉,えり,襟,えん,艶縁演塩鉛遠猿煙園援媛宴怨炎沿延円,お,和老落雄負尾追置帯折惜生推織小緒終降起下押汚悪,おう,黄皇横奥翁桜殴欧旺押往応央凹王,おうぎ,扇,おお,覆大多仰阜,おおやけ,公,おか,冒犯侵丘岡阜,おが,拝,おき,沖,おぎな,補,おく,遅贈送後臆憶億屋奥,おこ,怒興,おこた,怠,おこな,行,おごそ,厳,おさ,抑納修収治,おさな,幼,おし,教,おす,雄,おそ,遅襲教恐畏,おそれ,虞,おだ,穏,おちい,陥,おっと,夫,おつ,乙,おと,劣音,おとうと,弟,おとこ,男,おとしい,陥,おとず,訪,おとろ,衰,おど,踊躍脅,おどろ,驚,おな,同,おに,鬼,おのおの,各,おのれ,己,おび,帯,おびや,脅,おぼ,溺覚,おも,面重主思,おもて,面表,おもむ,赴,おもむき,趣,おや,親,およ,及泳,おり,折,おれ,俺,おろ,愚卸,おろし,卸,おん,御穏温恩音遠怨,おんな,女,か,変描買日賭代貸替勝書狩借鹿飼香交枯懸兼欠駆嗅換刈且掛蚊課稼箇歌寡靴禍暇嫁過渦貨菓華荷家夏架科苛河果価佳花何仮可加火化下,かい,街貝諧懐壊潰解楷塊階開絵械皆界海悔拐怪改戒快会灰回介,かいこ,蚕,かえ,返帰,かえり,省顧,かお,香薫顔,かか,抱掲係関,かかり,係掛,かがみ,鏡,かがや,輝,かき,柿垣,かぎ,限鍵,かく,客穫嚇獲確閣隔較覚郭殻核格革拡角各画隠,かげ,影陰,かこ,囲,かご,籠,かさ,重傘,かざ,風飾,かしこ,賢,かしら,頭,かず,数,かせ,稼,かぜ,風,かぞ,数,かた,方片難硬語固堅肩型形潟,かたき,敵,かたち,形,かたな,刀,かたまり,塊,かたむ,傾,かたよ,偏,かたわ,傍,かっ,合,かつ,担轄褐滑葛割渇喝活括,かて,糧,かど,門角,かな,悲奏金,かなめ,要,かなら,必,かね,鐘金,かの,彼,かぶ,株,かべ,壁,かま,窯構鎌釜,かみ,髪神上紙,かみなり,雷,かめ,亀,かも,醸,かよ,通,から,絡唐辛空殻,からだ,体,かり,仮,かる,軽,かれ,彼,かろ,軽,かわ,皮川乾渇革河,かわら,瓦,かん,神甲鑑艦韓観簡環館還憾緩監歓関管慣漢感幹寛勧閑間款棺敢換堪喚寒貫患勘乾陥看巻冠官肝完缶汗甘刊干,かんが,考鑑,かんば,芳,かんむり,冠,が,餓雅賀芽画我瓦牙,がい,骸概該蓋慨街涯崖害劾外,がく,顎額楽岳学,がけ,崖,がっ,合,がつ,月,がら,柄,がわ,側,がん,元願顔頑眼玩岩岸含丸,き,利木聞聴着切生消斬黄効己決騎機輝畿器旗毀棄貴棋期揮幾喜亀規寄基帰鬼飢起記既軌紀季祈奇汽忌希岐気机危伎企埼,きく,菊,きごう,()!?~「」、。<>&・.+-*/:;<>%={}[]'^@\\\"#$%&|_,きざ,兆刻,きし,岸,きず,築傷,きそ,競,きた,来北鍛,きたな,汚,きち,吉,きつ,詰喫吉,きぬ,絹,きば,牙,きび,厳,きみ,君,きも,肝,きゃ,脚,きゃく,脚客却,きゅう,窮嗅給球救宮糾級急泣究求臼朽吸休旧丘弓及久九,きょ,距許虚挙拠拒居巨去,きょう,興香経兄驚響競鏡矯橋境郷教強脅胸恭恐狭挟峡況協供享京狂叫共凶,きょく,極局曲,きよ,清,きら,嫌,きり,霧,きわ,際極窮究,きん,今襟謹錦緊禁僅筋琴勤菌金近均斤巾,ぎ,議犠擬戯儀疑義欺偽宜技,ぎゃく,虐逆,ぎゅう,牛,ぎょ,漁御魚,ぎょう,行形凝業暁仰,ぎょく,玉,ぎん,銀吟,く,来暮組食酌貢紅功工口庫繰駆苦句区供宮朽久九悔,くう,空,くき,茎,くさ,腐草臭,くさり,鎖,くし,串,くじら,鯨,くすり,薬,くず,崩葛,くせ,癖,くだ,砕管下,くち,口,くちびる,唇,くつ,窟掘屈靴,くつがえ,覆,くに,国,くば,配,くび,首,くま,熊,くみ,組,くも,曇雲,くや,悔,くら,比蔵倉暗,くらい,位,くる,苦狂,くるま,車,くれない,紅,くろ,黒,くわ,桑詳加,くわだ,企,くん,薫勲訓君,ぐ,愚惧具,ぐう,隅遇偶宮,ぐん,群郡軍,け,毛消蹴懸気華家仮化,けい,鶏警憩稽憬慶詣継携傾軽景敬蛍経渓掲啓恵計契型係茎径系形刑兄競境京,けが,汚,けず,削,けた,桁,けつ,潔傑結決血穴欠,けむ,煙,けむり,煙,けもの,獣,けわ,険,けん,懸験顕繭鍵謙賢憲権遣絹献嫌検堅圏険健軒拳剣兼倹県研建肩券見件犬間,げ,外解牙夏下,げい,鯨迎芸,げき,激撃劇隙,げつ,月,げん,厳源減舷現原限弦言玄幻元験嫌眼,こ,籠恋木粉肥濃懲超請焦小子混込乞黄顧錮鼓誇雇湖庫個枯故弧孤虎股固呼古戸己凝虚拠去越,こい,恋,こう,耗神購講鋼衡興稿酵綱構鉱溝項絞硬港慌喉黄梗控康高降貢航耕校候香郊荒紅皇洪恒厚侯肯拘幸効更攻抗孝坑行考江好后向光交甲広巧功孔勾公工口後仰格岡,こうむ,被,こえ,肥声,こお,凍,こおり,氷,こく,石酷穀黒国刻谷告克,ここの,九,こころ,心試,こころざ,志,こころざし,志,こころよ,快,こご,凍,こし,腰,こた,答応,こつ,骨滑,こと,殊事言琴異,ことぶき,寿,ことわ,断,こな,粉,この,好,こば,拒,こぶし,拳,こま,細困駒,こめ,米,こよみ,暦,ころ,転殺頃,ころも,衣,こわ,怖声壊,こん,懇墾魂紺痕混婚根恨昆困今献建金,ご,護誤語碁悟娯後呉午互五御期,ごう,豪傲剛拷合号業郷強,ごく,獄極,ごん,厳言権勤",",")
getVariable("kanji_data")[1] = splitString("さ,裂冷避提茶挿指刺咲作再鎖詐差唆砂査沙佐左去割覚下,さい,切西殺財際載歳塞催債裁最菜細斎祭済採彩栽宰砕采妻災再才埼,さいわ,幸,さえぎ,遮,さか,坂盛酒逆栄,さかい,境,さかずき,杯,さかな,魚,さかのぼ,遡,さが,探捜,さき,先崎埼,さく,冊錯搾酢策索柵昨削作,さくら,桜,さぐ,探,さけ,酒叫,さげす,蔑,ささ,支,さず,授,さそ,誘,さだ,定,さち,幸,さっ,早,さつ,擦撮察殺拶刹刷札冊,さと,里諭悟,さば,裁,さび,寂,さま,様,さまた,妨,さむ,寒,さむらい,侍,さら,皿更,さる,猿,さわ,沢騒爽触障,さん,賛酸算散傘産惨蚕桟参山三,ざ,挫座,ざい,罪財剤材在,ざつ,雑,ざん,暫斬残惨,し,閉敷締知染占自次示諮賜摯雌誌飼資詩試嗣歯詞紫視脂紙恣師施指思姿肢祉枝姉始刺使私志伺至糸死旨矢市四司史仕氏止支子士絞強茨,しあわ,幸,しいた,虐,しお,潮塩,しか,鹿,しき,織色識式,しげ,茂,しず,鎮沈静,しずく,滴,した,慕舌親下,したが,従,したた,滴,しち,質七,しつ,質漆嫉湿執疾室失,しな,品,しの,忍,しば,縛芝,しぶ,渋,しぼ,搾絞,しま,島,しめ,湿示,しも,霜下,しゃ,謝遮煮斜赦捨射者舎車社写砂,しゃく,昔赤石爵釈酌借尺,しゅ,衆修趣種腫酒珠殊首狩取朱守主手,しゅう,祝襲蹴醜酬愁集衆就週習羞終袖修臭秋拾宗周秀舟州囚収執,しゅく,縮粛淑宿祝叔,しゅつ,出,しゅん,旬瞬春俊,しょ,諸緒署暑庶書所初処,しょう,装相精清省星政青性姓声生正井上鐘礁償賞衝憧障彰詳照奨傷象証詔粧硝焦焼晶掌勝訟紹章渉商唱笑称祥症消将宵昭沼松昇承招尚肖抄床匠召少升小従,しょく,職織嘱触飾殖植食拭色,しら,白調,しり,尻,しりぞ,退,しる,汁記,しるし,印,しろ,白代城,しん,請親薪震審新慎寝診森進紳深針真浸振娠唇神津信侵辛身芯臣伸申心,じ,路地除璽餌磁辞慈滋時持治侍事児似自耳次寺字示仕,じき,直食,じく,軸,じっ,十,じつ,日実,じゃ,蛇邪,じゃく,着寂弱若,じゅ,従就樹儒需授呪受寿,じゅう,中縦獣銃渋従重柔住充汁十拾,じゅく,熟塾,じゅつ,術述,じゅん,遵潤準順循純殉准盾巡旬,じょ,除徐叙序助如女,じょう,定静盛成醸譲錠嬢壌縄蒸畳場情常剰浄城乗状条冗丈上,じょく,辱,じん,腎尋陣甚迅尽仁刃人神臣,す,統透澄巣素据数須住州守主捨子酸擦刷酢済好吸過,すい,穂睡遂酔推衰粋帥炊垂吹水出,すう,数崇枢,すえ,末,すがた,姿,すき,隙,すぎ,杉,すく,少救,すぐ,優,すけ,助,すこ,少健,すじ,筋,すす,薦進勧,すず,鈴涼,すそ,裾,すた,廃,すで,既,すな,砂,すべ,全滑,すみ,墨炭速隅,するど,鋭,すわ,座,すん,寸,ず,頭豆図事,ずい,髄随,せ,背責世瀬施攻競,せい,背醒整請静誓製精誠聖勢晴婿盛清逝凄省牲星政斉青性征姓制声西成生正世井情歳,せき,籍績積跡責戚惜隻脊席析昔赤石斥夕寂関,せち,節,せつ,説節摂雪設接窃拙折切殺刹,せば,狭,せま,迫狭,せん,鮮繊薦選遷線潜銭箋践詮腺羨煎戦船旋栓扇染洗浅泉専宣先占仙川千,ぜ,是,ぜい,説税,ぜつ,絶舌,ぜに,銭,ぜん,繕膳漸禅然善前全,そ,反添想礎遡塑訴疎組粗措素租祖阻狙染初沿,そう,贈藻騒霜燥操踪槽遭総層想僧装葬痩喪創窓爽曽曹掃巣桑挿捜倉送草荘相奏走争早壮双宗,そうろう,候,そく,測側速捉息則促足束即塞,そこ,底損,そそ,注,そそのか,唆,そだ,育,そつ,率卒,そで,袖,そと,外,そな,備供,その,園,そむ,背,そら,空,そん,遜損尊孫村存,ぞ,曽,ぞう,臓贈蔵憎増像造象雑,ぞく,続賊属族俗,ぞん,存,た,立田断耐太汰多他足絶炊垂食手裁建矯堪,たい,平台代大戴態滞隊貸替逮袋堆泰帯退胎怠待耐体対太,たお,倒,たか,高,たから,宝,たが,互,たがや,耕,たき,滝,たきぎ,薪,たく,度濯託拓卓沢択宅巧,たくわ,蓄,たぐ,類,たけ,竹丈岳,たし,確,たす,助,たず,訪尋,たずさ,携,たた,畳,たたか,闘戦,たたみ,畳,ただ,直但正,ただよ,漂,たっと,尊貴,たつ,竜達,たて,盾縦,たてまつ,奉,たと,例,たな,棚,たに,谷,たね,種,たの,頼楽,たば,束,たび,旅度,たま,霊弾玉球,たまご,卵,たましい,魂,たまわ,賜,たみ,民,ため,試,たも,保,たよ,頼便,たわむ,戯,たわら,俵,たん,反壇鍛誕綻端嘆短淡探胆炭単担旦丹,だ,抱駄惰堕唾妥打出蛇,だい,内弟題第台代大,だく,濁諾,だつ,奪脱,だま,黙,だれ,誰,だん,壇談暖弾断段男団旦,ち,乳緻置稚痴遅致恥値知池地千質治散血,ちい,小,ちか,誓近,ちから,力,ちが,違,ちぎ,契,ちく,築蓄逐畜竹,ちち,父乳,ちぢ,縮,ちつ,窒秩,ちゃ,茶,ちゃく,嫡着,ちゅう,駐鋳酎衷柱昼注抽忠宙沖虫仲中,ちょ,貯著緒,ちょう,懲聴調澄潮嘲徴跳腸超貼朝鳥頂釣眺彫張帳挑長町兆庁弔丁重,ちょく,捗勅直,ちん,鎮賃陳朕珍沈,つ,連付突都摘漬通釣着接積尽津就次告継詰,つい,費墜椎追対,つう,痛通,つか,捕疲塚使仕遣,つき,月,つぎ,次,つく,造創作,つくえ,机,つくろ,繕,つぐな,償,つた,伝,つたな,拙,つち,土,つちか,培,つつ,包筒,つつし,慎謹,つつみ,堤,つづ,続,つづみ,鼓,つと,務努勤,つど,集,つな,綱,つね,常,つの,募角,つば,唾,つばさ,翼,つぶ,粒潰,つぼ,坪,つま,爪妻,つみ,罪,つむ,紡,つめ,冷爪,つや,艶,つゆ,露,つよ,強,つら,連面,つらぬ,貫,つる,鶴弦,つるぎ,剣,て,照手,てい,諦締艇程提堤偵停逓庭訂帝貞亭邸抵底定弟廷呈低丁体,てき,敵適滴摘笛的,てつ,撤徹鉄哲迭,てら,寺,てん,殿転添展点店典天,で,弟出,でい,泥,でき,溺,でん,電殿伝田,と,留溶問捕閉富飛泊頭登度土賭塗渡都途徒妬吐斗跳説遂図十取執止撮採戸研解,とう,納読道騰闘藤謄頭糖踏稲統筒等答登痘湯棟搭塔陶盗悼党透討桃島唐凍倒逃到東豆投当灯冬刀,とうげ,峠,とうと,尊貴,とお,通十遠,とき,時,とく,読篤徳督得特匿,とこ,常床,ところ,所,とし,年,とち,栃,とつ,突凸嫁,ととの,調整,とど,届,とどこお,滞,とな,隣唱,となり,隣,との,殿,とびら,扉,とぼ,乏,とみ,富,とむら,弔,とも,友供共,ともな,伴,とら,捉虎,とり,鳥,とん,問頓豚屯団,ど,怒度努奴土,どう,瞳導銅働道童堂動胴洞同,どく,読独毒,どの,殿,どろ,泥,どん,丼曇鈍貪,どんぶり,丼",",")
getVariable("kanji_data")[2] = splitString("な,鳴名無亡納南奈那投成菜泣慣萎,ない,内,なえ,苗,なお,直治,なか,半仲中,なが,流眺長永,なぐ,殴,なぐさ,慰,なげ,嘆,なご,和,なさ,情,なし,梨,なぞ,謎,なっ,納,なつ,懐夏,なな,斜七,なに,何,なの,七,なべ,鍋,なま,怠生,なまり,鉛,なみ,並波,なみだ,涙,なめ,滑,なや,悩,なら,倣並習,なわ,苗縄,なん,納難軟南男何,に,弐尼二逃仁煮児似荷,にい,新,にお,匂臭,にが,苦,にぎ,握,にく,肉憎,にご,濁,にし,西,にしき,錦,にじ,虹,にせ,偽,にち,日,にな,担,にぶ,鈍,にゃく,若,にゅう,乳入柔,にょ,如女,にょう,尿女,にわ,庭,にわとり,鶏,にん,認忍妊任人,ぬ,縫抜塗脱,ぬぐ,拭,ぬし,主,ぬす,盗,ぬの,布,ぬま,沼,ね,練値寝根音,ねい,寧,ねが,願,ねこ,猫,ねた,妬,ねつ,熱,ねば,粘,ねむ,眠,ねら,狙,ねん,燃粘捻念年然,ねんご,懇,の,野伸乗述載延飲,のう,濃農脳能納悩,のが,逃,のき,軒,のこ,残,のぞ,臨望除,のち,後,のど,喉,ののし,罵,のぼ,登上昇,のろ,呪,は,履葉覇破派波把吐跳貼張恥端掃晴生刃腫歯果栄映羽,はい,輩廃敗排配俳肺背杯拝入灰,はか,量謀墓測図諮計,はがね,鋼,はく,薄博舶迫泊拍伯白,はぐく,育,はげ,励激,はこ,箱運,はさ,挟,はし,箸端走橋,はしら,柱,はじ,恥初始,はず,弾外,はずかし,辱,はた,畑端機旗,はたけ,畑,はたら,働,はだ,肌,はだか,裸,はち,蜂鉢八,はっ,法,はつ,髪発鉢初,はな,話離放鼻華花,はなし,話,はなは,甚,はね,羽,はは,母,はば,幅阻,はぶ,省,はま,浜,はや,速早,はやし,林,はら,払腹原,はり,針,はる,春,はん,凡藩繁範頒煩搬飯斑販般畔班版板阪坂判伴汎帆犯氾半反,ば,罵婆馬場化,ばい,賠買媒陪培梅倍売,ばく,幕暴爆縛漠麦博,ばち,罰,ばつ,末閥罰抜伐,ばん,万盤蛮番晩板判伴,ひ,冷氷泌避罷碑費扉悲被秘疲飛卑非肥披彼批否妃皮比日灯弾干火引,ひい,秀,ひか,控光,ひかり,光,ひがし,東,ひき,匹率,ひく,低,ひさ,久,ひざ,膝,ひじ,肘,ひそ,潜,ひた,浸,ひたい,額,ひだり,左,ひつ,筆泌必匹,ひつじ,羊,ひと,独等人一,ひとみ,瞳,ひび,響,ひま,暇,ひめ,姫,ひゃく,百,ひょう,兵標漂評票俵表氷拍,ひら,平開,ひる,昼,ひるがえ,翻,ひろ,拾広,ひん,頻賓貧浜品,び,鼻微備美眉尾,びゃく,白,びょう,平猫描病秒苗,びん,便瓶敏貧,ふ,老歩噴伏風譜賦膚敷腐普富符婦浮赴負訃附怖府扶布付父夫不踏増吹振触殖拭降更阜,ふう,風封富夫,ふえ,笛,ふか,深,ふく,膨覆複腹福復幅副服伏含,ふくろ,袋,ふさ,房塞,ふし,節,ふじ,藤,ふせ,防,ふた,二双蓋,ふたた,再,ふだ,札,ふち,縁,ふつ,沸払,ふで,筆,ふと,太,ふところ,懐,ふな,船舟,ふね,船舟,ふみ,文,ふもと,麓,ふゆ,冬,ふる,奮震古,ふん,分奮憤墳噴雰紛粉,ぶ,無奉歩分舞部武侮不,ぶた,豚,ぶつ,物仏,ぶん,聞文分,へ,減経,へい,餅蔽弊幣塀閉陛柄並併兵平丙病,へき,癖璧壁,へだ,隔,へび,蛇,へん,編遍偏変返辺片,べ,辺,べい,米,べつ,蔑別,べに,紅,べん,勉便弁,ほ,欲褒舗補捕哺保歩帆彫穂掘干火,ほう,縫褒飽豊蜂報訪崩砲峰倣俸胞泡法放抱宝奉邦芳包方封,ほうむ,葬,ほか,他外,ほが,朗,ほく,北,ほこ,矛誇,ほころ,綻,ほし,星,ほそ,細,ほたる,蛍,ほっ,欲法,ほつ,発,ほとけ,仏,ほど,程,ほどこ,施,ほね,骨,ほのお,炎,ほま,誉,ほら,洞,ほり,堀,ほろ,滅,ほん,翻奔本反,ぼ,模簿暮慕墓募母,ぼう,妄謀膨暴貌貿棒帽傍望紡剖冒某肪房防忘妨坊忙乏亡,ぼく,目撲墨僕睦牧朴木,ぼっ,坊,ぼつ,勃没,ぼん,盆凡煩",",")
getVariable("kanji_data")[3] = splitString("ま,目魔磨摩麻舞負馬待増真混交曲間巻,まい,埋昧枚妹毎米舞参,まえ,前,まか,任,まかな,賄,まき,牧巻,まぎ,紛,まく,膜幕,まくら,枕,まこと,誠,まご,孫,まさ,正勝,まじ,交,ます,升,まず,貧,また,又股,またた,瞬,まち,町街,まった,全,まつ,抹末松祭,まつりごと,政,まと,的,まど,惑窓,まな,学,まなこ,眼,まぬか,免,まね,招,まぼろし,幻,まめ,豆,まも,守,まゆ,眉繭,まよ,迷,まる,丸円,まわ,周回,まん,漫慢満万,み,魅味未満眉診身実三見,みが,磨,みき,幹,みぎ,右,みことのり,詔,みさお,操,みさき,岬,みささぎ,陵,みじ,惨,みじか,短,みず,水,みずうみ,湖,みずか,自,みせ,店,みぞ,溝,みだ,乱淫,みち,道,みちび,導,みっ,三,みつ,蜜密貢,みと,認,みどり,緑,みな,皆,みなと,港,みなみ,南,みなもと,源,みにく,醜,みね,峰,みの,実,みみ,耳,みゃく,脈,みや,宮,みやこ,都,みょう,冥明命名妙,みん,眠民,む,六霧夢無務矛謀武蒸向群,むい,六,むか,迎,むかし,昔,むぎ,麦,むく,報,むこ,婿,むさぼ,貪,むし,虫,むす,結,むすめ,娘,むずか,難,むっ,六,むな,棟胸,むね,棟旨胸,むら,村群,むらさき,紫,むろ,室,め,目召女雌芽,めい,鳴銘盟冥迷明命名,めぐ,巡恵,めし,飯,めす,雌,めずら,珍,めつ,滅,めん,麺綿面免,も,漏模茂燃藻喪盛守若持,もう,網猛耗盲妄毛望亡設申詣,もく,黙目木,もぐ,潜,もち,用餅,もっと,最,もっぱ,専,もつ,物,もてあそ,弄,もと,本元求基下,もとい,基,もど,戻,もの,物者,もも,桃,もよお,催,もり,森,もん,問紋門聞文,や,弥野夜冶病八痩焼辞矢家屋,やかた,館,やく,躍薬訳約役厄益疫,やさ,優易,やしな,養,やしろ,社,やす,休安,やっ,八,やと,雇,やど,宿,やなぎ,柳,やぶ,敗破,やま,山,やまい,病,やみ,闇,やわ,和軟柔,ゆ,揺遊癒輸諭愉喩油由湯逝行結,ゆい,唯由遺,ゆう,優融憂誘雄遊裕猶湧郵悠幽勇有友由夕右,ゆえ,故,ゆか,床,ゆき,雪,ゆず,譲,ゆた,豊,ゆだ,委,ゆび,指,ゆみ,弓,ゆめ,夢,ゆる,許緩,よ,良預誉余予与夜読代善世酔四呼寄詠因,よい,宵,よう,曜謡擁養窯踊瘍様腰溶陽葉揺揚庸容要洋妖羊用幼八,よく,翼翌欲浴沃抑,よこ,横,よご,汚,よし,由,よそお,装,よっ,四,よめ,嫁,よる,夜,よろこ,喜,よわ,弱,よん,四,ら,羅裸拉,らい,礼頼雷来,らく,酪落絡楽,らつ,辣,らん,欄藍濫覧卵乱,り,離璃履裏痢理里利吏,りき,力,りく,陸,りち,律,りつ,慄律立率,りゃく,略,りゅう,硫隆粒竜留流柳立,りょ,慮虜旅侶,りょう,霊糧瞭療寮領僚量陵猟涼料良両了漁,りょく,緑力,りん,鈴臨隣輪倫厘林,る,瑠留流,るい,類塁累涙,れい,麗齢隷霊零鈴例戻励冷礼令,れき,歴暦,れつ,裂烈劣列,れん,錬練廉連恋,ろ,露路賂炉呂,ろう,籠漏楼廊浪朗郎弄労老露糧,ろく,麓録六緑,ろん,論,わ,話和輪湧分沸割我,わい,賄,わか,別若,わき,脇,わく,枠惑,わけ,訳,わざ,業技,わざわ,災,わす,忘,わず,僅,わずら,煩患,わた,綿渡,わたくし,私,わたし,私,わら,笑,わらべ,童,わり,割,わる,悪,われ,我,わん,腕湾",",")

#===ここから、関数部分===

#1文字のひらがなの番号を得る
def searchkana(s)
  c=splitString("あいうえおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろわをん", "")
  left = 0
  right = 74
  while left < right
    mid = floor((left + right) / 2)
    if c[mid] == s
      return mid
    elsif s < c[mid]
      right= mid-1
    else
      left=mid +1
    end
  end
  return left
end
def getkananum(s)
  s2=splitString(s,"")
  len=getArrayLength(s2)
  s3=createArray()
  i=0
  while i<5
    if i<len
      s3[i]=searchkana(s2[i])
    else
      s3[i]=-1
    end
    i=i+1
  end
  return s3
end

def comparekana(s1,t2)#同値:0, s1>s2:1, s1<s2:2
  t1=getkananum(s1)
  b=-1
  i=0
  while i<5 && b==-1
    if t1[i]==t2[i]
      if i==4 then b=0;end
    elsif t1[i]>t2[i]
      b=1
    else
      b=2
    end
    i=i+1
  end
  return b
end
def tankanji_henkan(s)
  s2=getkananum(s)
  if s2[0]<15
    d=0
  elsif s2[0]<36
    d=1
  elsif s2[0]<56
    d=2
  else
    d=3
  end
  #data[d][i*2]
  left = 0
  right = getArrayLength(getVariable("kanji_data")[d])/2-1
  while left < right
    mid = floor((left + right) / 2)
    i=comparekana(getVariable("kanji_data")[d][mid*2],s2)
    t2=getkananum(getVariable("kanji_data")[d][mid*2])
    if i==0
      return getVariable("kanji_data")[d][mid*2+1]
    elsif i==1
      right= mid-1
    else
      left=mid +1
    end
  end
  return getVariable("kanji_data")[d][left*2+1]
end



 テストスクリプト
speak(tankanji_henkan("うみ"))
speak(tankanji_henkan("ま"))
speak(tankanji_henkan("とり"))
speak(tankanji_henkan("か"))

#実行結果
#海
#目魔磨摩麻舞負馬待増真混交曲間巻
#鳥
#変描買日賭代貸替勝書狩借鹿飼香交枯懸兼欠駆嗅換刈且掛蚊課稼箇歌寡靴禍暇嫁過渦貨菓華荷家夏架科苛河果価佳花何仮可加火化下



 このゲームのスクリプト
かなりひどいスクリプトだと思います。もし意見があればお願いします
flash=0
s=""
s0=""
setTextFontColor(0,0,0)
setTextFontSize(23)
t=createText(70, 502, 680, 500)
setTextFontSize(16)
t2=createText(58,58, 680, 500)
login=isLogin()
if login
  setText(t2, "漢字を使ってチャットができます。(ENTERで投稿)\n「終了」と入力でゲームクリア。(書き方:[しゅう][SPACE]*13回[りょう][SPACE]*15回)\n\n"+loadGameData("key"))
else
  setText(t2, "漢字を入力できます。\nログインするとチャットができます。\n「終了」と入力するとゲームクリア。(書き方:[お][SPACE]*13回[りょう][SPACE]*15回)")
end
setVariable("key_char2",splitString("abcdefghijklmnopqrstuvwxyz",""))
table0=splitString("a,あ,i,い,u,う,e,え,o,お",",")
table0z=5
table1=splitString("ka,か,ki,き,ku,く,ke,け,ko,こ,sa,さ,si,し,su,す,se,せ,so,そ,ta,た,ti,ち,tu,つ,te,て,to,と,na,な,ni,に,nu,ぬ,ne,ね,no,の,ha,は,hi,ひ,hu,ふ,he,へ,ho,ほ,fu,ふ,ma,ま,mi,み,mu,む,me,め,mo,も,ya,や,yi,い,yu,ゆ,ye,いぇ,yo,よ,ra,ら,ri,り,ru,る,re,れ,ro,ろ,wa,わ,wu,う,wo,を,nn,ん,ga,が,gi,ぎ,gu,ぐ,ge,げ,go,ご,za,ざ,zi,じ,zu,ず,ze,ぜ,zo,ぞ,ji,じ,da,だ,di,ぢ,du,づ,de,で,do,ど,ba,ば,bi,び,bu,ぶ,be,べ,bo,ぼ,pa,ぱ,pi,ぴ,pu,ぷ,pe,ぺ,po,ぽ,ja,じゃ,ju,じゅ,je,じぇ,jo,じょ,fa,ふぁ,fi,ふぃ,fe,ふぇ,fo,ふぉ,xa,ぁ,xi,ぃ,xu,ぅ,xe,ぇ,xo,ぉ,la,ぁ,li,ぃ,lu,ぅ,le,ぇ,lo,ぉ,wi,うぃ,we,うぇ,va,ヴぁ,vi,ヴぃ,vu,ヴ,ve,ヴぇ,vo,ヴぉ",",")
table1z=getArrayLength(table1)/2
table2=splitString("wyi,ゐ,wye,ゑ,kya,きゃ,kyu,きゅ,kyo,きょ,sya,しゃ,syu,しゅ,syo,しょ,tya,ちゃ,tyi,ちぃ,tyu,ちゅ,tye,ちぇ,tyo,ちょ,cha,ちゃ,chu,ちゅ,che,ちぇ,cho,ちょ,nya,にゃ,nyi,にぃ,nyu,にゅ,nye,にぇ,nyo,にょ,hya,ひゃ,hyi,ひぃ,hyu,ひゅ,hye,ひぇ,hyo,ひょ,mya,みゃ,myi,みぃ,myu,みゅ,mye,みぇ,myo,みょ,rya,りゃ,ryi,りぃ,ryu,りゅ,rye,りぇ,ryo,りょ,gya,ぎゃ,gyi,ぎぃ,gyu,ぎゅ,gye,ぎぇ,gyo,ぎょ,zya,じゃ,zyi,じぃ,zyu,じゅ,zye,じぇ,zyo,じょ,jya,じゃ,jyi,じぃ,jyu,じゅ,jye,じぇ,jyo,じょ,dya,ぢゃ,dyi,ぢぃ,dyu,ぢゅ,dye,ぢぇ,dyo,ぢょ,bya,びゃ,byi,びぃ,byu,びゅ,bye,びぇ,byo,びょ,pya,ぴゃ,pyi,ぴぃ,pyu,ぴゅ,pye,ぴぇ,pyo,ぴょ,fya,ふゃ,fyu,ふゅ,fyo,ふょ,xya,ゃ,xyu,ゅ,xyo,ょ,xtu,っ",",")
table2z=getArrayLength(table2)/2
input_start()
while s0!="終了"
  if s0=="****" #データ削除キー(隠しています)
    saveGameData("key", "end")
      waitTime(1200)
      tt=loadGameData("key")
      setText(t2,tt)
    s0=""
  end
  i=0
  while i<26
    if input_getkeydown(getVariable("key_char")[i])
      if s=="" then
        s2=createArray()
        l=0
      else
        s2=splitString(s,"")
        l=getArrayLength(s2)
      end
      k=0
      while k<5
        if getVariable("key_char2")[i]==table0[k*2] then k=999;end
        k=k+1
      end
      if k==1000
        j=0
        if l>1
          s3=s2[l-2]+s2[l-1]+getVariable("key_char2")[i]
          j=0
          while j<table2z
            if s3==table2[j*2]
              s=str_left(s,l-2)+table2[j*2+1]
              j=999
            end
            j=j+1
          end
        end
        if j!=1000 && l>0
          s3=s2[l-1]+getVariable("key_char2")[i]
          j=0
          while j<table1z
            if s3==table1[j*2]
              s=str_left(s,l-1)+table1[j*2+1]
              j=999
            end
            j=j+1
          end
        end
        if j!=1000
          j=0
          while j<5
            if getVariable("key_char2")[i]==table0[j*2]
              s=s+table0[j*2+1]
              j=999
            end
            j=j+1
          end
        end
        if j!=1000 then s=s+getVariable("key_char2")[i];end
      else
        if l>0
          if s2[l-1]=="n" && getVariable("key_char2")[i]=="n"
            s=str_left(s,l-1)+"ん"
          elsif s2[l-1]==getVariable("key_char2")[i]
            s=str_left(s,l-1)+"っ"+getVariable("key_char2")[i]
          else
            s=s+getVariable("key_char2")[i]
          end
        else
          s=s+getVariable("key_char2")[i]
        end
      end
      s2=splitString(s,"")
      l=getArrayLength(s2)
      if s2[l-2]=="n" then s=str_left(s,l-2) + "ん" + s2[l-1];end
    end
    i=i+1
  end
  i=34
  while i<44
    if input_getkeydown(getVariable("key_char")[i]) then s=s+getVariable("key_char")[i];end
    i=i+1
  end
  if input_getkeydown("SPACE")
    if s==""
      s0=s0+" "
    else
      setText(t, s0+"[("+str_left(s,1)+")"+str_mid(s,2,0)+"]")
      c=1
      c2=0
      while !input_getkeydown("ENTER")
        if (input_getkeydown("SPACE") || input_getkeydown("RIGHT")) && c<l then c2=1;end
        if input_getkeydown("LEFT") && c>1 then c2=-1;end
        if c2!=0
          c=c+c2
          c2=0
          if c==1
            setText(t, s0+"[("+str_left(s,1)+")"+str_mid(s,2,0)+"]")
          else
            setText(t, s0+"["+str_left(s,c-1)+"("+str_mid(s,c,1)+")"+str_mid(s,c+1,0)+"]")
          end
        end
      end
      s0=s0+str_mid(s,c,1)
    end
  end
  if input_getkeydown("ENTER")
    if s!=""
      i=getLocalCurrentTimeMillisecond()+500
      while input_getkey("ENTER") && getLocalCurrentTimeMillisecond()<i
      end
      if getLocalCurrentTimeMillisecond()<i
        s0=s0+s
        s=""
      else
        s0=s0+str_conv(s,4)
        s=""
      end
    elsif login && speakWithSelect(2,"はい","いいえ", "送信しますか")==0
      tt=loadGameData("key")
      setText(t2, "接続中・・・")
      waitTime(1200)
      saveGameData("key", str_left(s0+"\n"+tt,400))
      tt=s0+"\n"+tt
      s0=""
      setText(t2, "「終了」と入力するとゲームクリアします。\n\n"+tt)
    end
  end
  if input_getkeydown("-")
    if input_getkey("SHIFT")
      s=s+"ー"
    else
      if s!=""
        s=str_left(s,str_len(s)-1)
      elsif s0!=""
        s0=str_left(s0,str_len(s0)-1)
      end
      i=getLocalCurrentTimeMillisecond()+500
      while input_getkey("-")
        if i<getLocalCurrentTimeMillisecond()
          if s!=""
            s=str_left(s,str_len(s)-1)
          elsif s0!=""
            s0=str_left(s0,str_len(s0)-1)
          end
          i=getLocalCurrentTimeMillisecond()+150
        end
        if s==""
          if flash<20 then setText(t, s0+"|") ;else setText(t, s0);end
        else
          if flash<20 then setText(t, s0+"["+s+"]|") ;else setText(t, s0+"["+s+"]");end
        end
      end
    end
  end
  if s==""
    if flash<20 then setText(t, s0+"|") ;else setText(t, s0);end
  else
    if flash<20 then setText(t, s0+"["+s+"]|") ;else setText(t, s0+"["+s+"]");end
  end
  flash=(flash+1)%40
  if s!="" then s=str_left(s,30);end
  waitTime(1)
end
input_end()
goEnding()

コメントする

コメントするには、ログインする必要があります。

コメント一覧

Material 305033 1 mini cfm_(投稿日:2016/01/07 18:23, 履歴)
更新履歴(一番上が新しいです)
・[SPACE]*13回のところが*17回になっていたこと。
・nya(にゃ)等が打てないこと、[c]や[x]でメインメニューが開くこと。
・辞書に「きごう」を追加
・ゲームスクリプトをカタカナ入力可能にしました
・辞書の並びの間違いを直しました
・ゲームとそのスクリプトを載せました