[戻る]

単語当てゲームlv2について

name:KO 2009/02/23 17:46:16

C言語講座いつも参考にさせて頂いております。

一点質問があります。


現在、単語ゲームのlv2に取り組んでいるのですが
どうすれば、使用を満たせるのか全く分かりません・・・
実現させるためには、何の関数を使用すれば良いのでしょうか?


お手透きの時に返信お願い致します。

name:fuku@管理人 2009/02/25 03:51:06

ご質問ありがとうございます。

次のページですね。
http://www5f.biglobe.ne.jp/~fuku-labo/library/program/cpp/2/069.htm
そっくりそのまま、このような仕様で動作する関数というのは標準にはありません。
この回で予定されている内容は「文字列配列を直接いじってみる」というものです。
一文字単位の処理は関数を使わず、直接配列を操作してみましょう。

概要としては、以下のようになります。
1:正解となる文字列(これを正解文字列とします)と同じ文字数の*で埋めた文字列(これを表示文字列とします)を作る。
2:画面には問題文と表示文字列を表示し、プレイヤーの入力を待つ。
3:プレイヤーが答えを入力したら、正解の文字列と一文字づつ比較する。
4:比較した時、当たっていた部分の表示文字列に正解文字列を部分的にコピーする。
5:プレイヤーの入力が正解だったら、クリアとし、不正解だったら、2に戻る。

プログラム上で必ずしも上記の手順で行う必要はありません。
3番と4番を混ぜてみるなど、いろいろ手を変えてみるとよいでしょう。

また、ShiftJISの日本語文字についてはC言語標準では判断する関数がありません。
そこで、文字コードの定義に従い、次のような関数を作って使います。(下記はC++)
この関数がtrue(真)を返した場合、ShiftJISの日本語第1バイトとみなします。

bool SJISMultiCheck(unsigned char c){
   if(((c>=0x81)&&(c<=0x9f))||((c>=0xe0)&&(c<=0xfc)))return true;
   else return false;
}


追記:実質的に同じ趣旨の投稿が同じ方から二回あったので、後に投稿された方のみを反映いたしました。ご了承ください。

name:KO 2009/03/02 10:25:05

お忙しい中、返信ありがとうございました。

丁寧な解説で非常に分かりやすいです。
教えて頂いた概要を元にして取り組んでみよう思います。

名前

URL(任意)

本文