ここから本文です

いつもお世話になっています。今度はパソコンと言葉のしり取りのゲームについての...

per********さん

2011/11/1318:21:02

いつもお世話になっています。今度はパソコンと言葉のしり取りのゲームについての質問です。

問題に関する材料は以下の通りです。解答と解説は最後のページになります。

長い質問文になってすみません。

http://www.fastpic.jp/images/127/2782719258.jpg

http://www.fastpic.jp/images/506/5610951059.jpg

http://www.fastpic.jp/images/616/3611762173.jpg

http://www.fastpic.jp/images/767/8776179663.jpg

http://www.fastpic.jp/images/330/9053831204.jpg

http://www.fastpic.jp/images/625/2592764379.jpg

質問は以下のようです。

47)なぜインクリメントする必要がありますか。

48)文字列の長さは、この場合、どういう役割を果たしているのでしょうか。

50)lst[cnt].wdはどういう意味でしょうか。

51)説明全体がわかりません。

なお、プログラムの中核の部分(頁17-18)に、”あなたの負けです”、”コンピュータの負けです”に関しては、判定がどういうふうに行われているのでしょうか。条件としては、コードには何も書かれていないようです。実行のループを脱出したとたん、自然にこうなるでしょうか。

補足相互リンクのアドレスです。
http://dixq.net/forum/viewtopic.php?f=3&t=9553&p=77125#p77125

閲覧数:
152
回答数:
1

違反報告

ベストアンサーに選ばれた回答

kam********さん

2011/11/1320:30:20

>47)なぜインクリメントする必要がありますか。
インクリメントしないと、配列の同じ場所だけを見続ける事になります。
fscanfの結果を格納する場所を1つずつずらす為にインクリメントしています。
以下の2行を1つにまとめて省略して書いてある状態だと思ってください。
lst[cnt].flg=0;
cnt++;

>48)文字列の長さは、この場合、どういう役割を果たしているのでしょうか。
配列の中には文字が入っています。文字全体の長さから-1した場所は
その文字列の一番最後の文字になります。
しりとりなので、一番最後の文字が必要なのです。
ABCDならば4文字ですよね。
配列は0からスタートするので、最後の文字は配列の3番目にあります。
(文字の長さ4)-1が配列で考えた際の最後の文字の場所になるわけです。

50)lst[cnt].wdはどういう意味でしょうか。
lstにはCOMが使える全単語と過去にプレイヤーが答えた全単語が登録されています。
lst[cnt]は、まだ何も登録されていない場所を表しています。
つまり、「まだ何もデータが登録されていない場所に、今回プレイヤーが答えた単語を登録する」という処理を行っています。

51)説明全体がわかりません。
がんばって下さい・・・

wd_chkという関数で負けの判定チェックを行っています。
負けの条件に関しては問題文の冒頭に書かれているものと同等の判定をしているので
関数の中身と問題文の冒頭を見比べてください。
return -1;と書かれている行のひとつ上にあるif文が負け判定です。

この回答は投票によってベストアンサーに選ばれました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる