コミュニティアイコン プチコン 非公式コミュニティ プレイ日記

アバター
ほっちゃん ◆n2Yw9i6qCGtO
2022/11/26 10:33
ついに、タイピングソフト「シンプルタイピング」を公開しました!
が……
なんかランダムを使ってるはずなのに、同じ言葉ばかり出ます。
どうすればいいでしょうか。

コメント

アバター
ほっちゃん 2022/11/26 12:53 ◆n2Yw9i6qCGtO
はやピーさんがデータなどの改善案を出してくれたので、早速試してみます。
アバター
ほっちゃん 2022/11/26 13:18 ◆n2Yw9i6qCGtO
ひとまずデータ分をきれいにしましたが、変換の方法が全然わかりません。
アバター
はやピー 2022/11/26 14:47 ◆725oYWJKzyrv
ローマ字一覧表を参考にして、
data "しゅ","shu"
data "しゅ","syu"
みたいなデータ文作って、アルファベットをローマ字に変換する関数を作るとか...(これ自分がソフトウェアキーボード作ろうとしたときに作ったような...)
アバター
ほっちゃん 2022/11/26 15:31 ◆n2Yw9i6qCGtO
それも考えはしたけど、「し」とかの一文字のやつは一個で読み込むからいいけど、「しゃ」だと2文字なのでうまくいかなさそう
「ゃ」があったらひとつ前のやつと一緒に関数にぶち込む、みたいにすればいけるのかも……?
あと、小さいつをどうするかもキツくて、あとのもじを2回繰り返さないといけない、っていうのがきつい。
アバター
ほっちゃん 2022/11/26 17:10 ◆n2Yw9i6qCGtO
RMG IMEにローマ字入力のやつがあるらしいので、参考にしてみようかな……
アバター
bはかせ 2022/11/26 19:57 ◆v7J0FkzUCMsK
以前練習がてらタイピングソフトを作った時、入力部分(あとdata文)はRMG IMEをがっつり参考にしました
うろ覚えですが、
入力したキー("ka"とします)をa$に格納
→a$とローマ字変換データを比べ、a$が特定のひらがなを表した時("ka"="か")、それをb$の後尾に挿入(b$="か")
→a$の変換部分を削除(a$から"ka"を削除)
→b$と、問題文を格納したc$を比べて、違う場合は該当部分をb$から削除(c$が"さ"だった場合、b$の"か"とは違うのでb$の"か"を消去)(つまりミスタイプ)
→b$とc$が完全に一致したらクリア、それまでくり返し
というような流れを作った気がします
っ に関しては、ごり押しながら解法は見つけたので一応ネタバレで書いておきます
アバター
ほっちゃん 2022/11/26 20:21 ◆n2Yw9i6qCGtO
RMGIMEのやつをそのまんまコピペしようとしたら、未定義変数が大量に……
b博士さんのを少し参考にします。
アバター
ほっちゃん 2022/11/26 20:26 ◆n2Yw9i6qCGtO
と思ったが、僕の脳だと何も理解できん……
アバター
ほっちゃん 2022/11/26 22:58 ◆n2Yw9i6qCGtO
理解できる方法あるかな……
まあ、頑張ります!
アバター
はやピー 2022/11/27 8:47 ◆725oYWJKzyrv
ここまでくると日本語入力の全てをデータ文にしてごりおs((
実際自分がソフトウェアキーボード作るときそうしてた
xxla は、 っぁ とかも、全部。

それできたら、入力されたアルファベットを保管している文字列変数の中に、さっき書いたデータ文が含まれているかすべて検索をかける。もしあったなら、そこの部分をひらがなに変える。
こうすることで、 sja と誤字ったときも、 sじゃ となるはず。
で、もし変換後にアルファベットが含まれていいる、あるいは入力すべき文と違っていたら、そこから先の文字列を削除する。sja としたときは、 sじゃ となるから、結果全体が削除される。
これをリアルタイムで行う。


入力しないといけない文:こんにちは
入力:konnnitiwza
ローマ字変換後:こんにちwざ
誤字削除変換後:こんにち

要するに
1、キーボードで入力された文字を格納する
2、↑をデータ文で検索をかけて、もしローマ字変換ができそうなら変換する(一部分でも)
3、誤字(入力すべき文と異なる)を削除する
4、↑を、文字列に追加する。(1とは異なる文字列変数)
5、4の文字列と、入力すべき文字列を参照して、同じなら次の文へ。そうでなければ1へ。

やべぇ説明力が皆無。これだから入試の最後の作文で減点されるんだよなぁ...
アバター
はやピー 2022/11/27 8:49 ◆725oYWJKzyrv
↑の手法だと、 bb と入力したときは っb ではなく bb のままで、そのあとに文字が来て初めて っ がつく手法なんだよな
つまり っば と入力したいとき、 bbu と入力したら っ のみ正解判定になって、残りは ば と入力(bbaではダメ)しないといけなくなる。ややこしい...
アバター
ほっちゃん 2022/11/27 8:56 ◆n2Yw9i6qCGtO
でもそこさえなんとかなればゴリ押しもありかも……?

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -