広告
  サイト内検索:
<Let's create a game!> Introduction of programming for absolute beginners English
 

SESSION 13 その10
モードの関数の枠とモードの切換処理を作る
  課題


課題:各モードの関数の枠とモードの切換処理を作る
 
モード別の処理用に以下の処理を作る
・各モードの関数の枠
・モード切換処理(メイン関数)
 
企画書へのリンク
仕様書へのリンク
 
次に
各モード別用の関数の枠
を作ろう。

それから、メイン関数に
その関数を切り替える
モードの切換処理
を作っていこう。

クイズゲームの時は
既に作った処理を切り出す形
でモード別に関数を作ったけど。

今回は始めから
各モード別に関数で作っていく
よ。
仕様書を
見て作ってね。
えーと、
どうすれば
いいんだろう?
はいっ。

先にモード別の枠を
作っちゃうんだね。


図で言うと
作るのは、こんな
感じになるよ。
処理は入出力と
モード切換の
処理だけね。
イメージね。
うーん。
 

テキストアドベンチャーゲームの処理の構造(機能単位)処理別に関数の枠を作る


今の段階では
関数は枠だけでいい
からね。

作っておけば
モード別に処理の流れを
掴みやすくなるからね。
最初から関数で作る・・・。

関数の枠を作るのは
前にやったけど。
 
えーと、
どんな風に
作ったっけ。




大丈夫。
クイズゲームの時と
やり方は同じ。


クイズゲームの
モード別処理のコードを
見直してみよう。
よーし、やってみるね!

うーん、と。
クイズゲームでは・・・
クイズゲームと同じ。
モード別にするの。

ゆっくりやろう。

了解!

     

えっと・・・

完成コードを
見直して・・・
うーん。うーん。うーん。
うーん。うーん。うーん。
うーん。うーん。うーん。
うーん。うーん。うーん。
うーん。うーん。うーん。

クイズゲームのコードの
どこを見たらいいのかな・・・
 
うーん、
難しいみたいね。

独り言出てるし。
  最初は
そんなもんか。
 

  ヒント1:処理モードの定数を定義する

えーと・・・こほん!

最初に、仕様書から今回
作る必要がある処理モード
を考えてみよう。
仕様書の「処理の構造」
の図も参考になるね。

まずは
クイズゲームと同じように
モードの定数が必要だね。

なるほど!

今回作る処理モードは
行動処理モードと
対象処理モードと
結果処理モードだね。

だから定数名は・・・

あたしは前に
MODE_GAME_・・・
付けて作ろうと思うんだけど。
それで
いいんじゃない。
よかった!
 

クイズゲーム完成 区切り処理・結果処理関数化
(KotoQuizのKQMain.java)12行目~
 
・・・    
012   public class KQMain {
013    
014       //********************************************
015       // 定数
016       //********************************************
017       //入力・表示処理モード
018       private static final int EXEC_MODE_QUIZ = 1;//問題処理モード
019       private static final int EXEC_MODE_CHECK = 2;//解答処理モード
・・・  
 

  ヒント2:関数の枠を作る

それから、
クイズゲームの
モード切換処理と
モード別関数の枠は
こんな感じで作ったっけ。
あ、クイズゲームの・・・

そっか、この部分だ!

思い出した!
これなら大丈夫。
同じように
作ってみよう。
こんな風に
作ったんだっけ。
 

クイズゲーム完成 区切り処理・結果処理関数化
(KotoQuizのKQMain.java)12行目~
 
モード切換処理(モード別関数の呼び出し)
・・・    
046               //問題処理モード
047             if(execMode == EXEC_MODE_QUIZ){
048    
049                   //問題処理モード関数呼び出し
050                    execModeQuiz();
051    
052               //解答処理モード
053               }else if(execMode == EXEC_MODE_CHECK){
054    
055                   //解答処理モード関数呼び出し
056                    execModeCheck();
057    
058               }
・・・  
 
 

クイズゲーム完成 区切り処理・結果処理関数化
(KotoQuizのKQMain.java)12行目~
 
各モードの関数の枠(関数の定義)
・・・    
123       /**
124       * 問題処理モード処理
125       */
126       private static void execModeQuiz(){
     
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
   
172           //解答チェックモードへ変更
173           execMode = EXEC_MODE_CHECK;
174       }
175    
176        /**
177        * 解答処理モード処理
178        */
179       private static void execModeCheck(){
     
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
   
216           //問題処理モードへ変更
217           execMode = EXEC_MODE_QUIZ;
218       }
・・・  
 

     

うーん、
こんなもんで
できそうかな?
ありがと!

これなら
出来ると思う!
おーけ?
おっけ!

作ってみるね!


    こほん
え、えっとー

今のは
ヒントじゃないよね?

なぽちゃんの
独り言だよね?

あたし、助け求めて
なかったよね?

たぶん。
はいはい。

私めの
独り言です。
お姫様。

解答は次のページです
 
 

広告
home もくじ 前のページを読む 次のページを読む
  サイト内検索:
広告
お勧めの姉妹サイト
leafdays - リーフデイズ 超初心者のための園芸入門 - 楽しい趣味のガーデニング -
広告