情報1 2006.9.11 第2回:状態遷移 その2
準備 Squeakを最新版に更新しましょう 現在の最新バージョンは1.1.3です 情報1の2学期のページにダウンロードのリンクがあります ついでにZドライブを整理しましょう 古いSqueakは削除しても構いません 前回古いバージョンを使って実装した人はそのままでOKです
今回の授業の目標 状態とは何かについて考えてみよう 状態遷移図を使ってプログラムを設計してみよう 状態変数を用いて,設計したプログラムを実装してみよう
ストップウォッチを作ってみよう 皆さんに見せるストップウォッチと同じ動きをするものを作ってください 見た目はこだわらずに,動作することを第一に考えてください 制限時間は30分
どうやってそのプログラムを作るか考える(設計) プログラムを作るときの手順 どんなプログラムを作るか考える(分析) どうやってそのプログラムを作るか考える(設計) プログラムを作る(実装) 作ったプログラムを検証する(テスト)
ストップウォッチの状態遷移図
実装方法の概略 現在のストップウォッチの状態を記憶しておける箱を用意しておく 記憶しておいた状態を調べて 各状態で行うべき繰り返し処理を行う 押されたボタンによって,現在の状態を変更し,アクションを一度だけ実行する
各状態における処理のまとめ 現在の状態が「停止中」の場合 現在の状態が「計測中」の場合 「リセットボタン」が押された時 (アクション)数値を0にする 状態は変えない 「スタート・ストップボタン」が押された (アクション)なし 状態を「計測中」に変更する 繰り返す処理 なし 現在の状態が「計測中」の場合 状態を「停止中」に変更する 文字盤の数値を増やす
実装方法 1 現在の状態を記憶しておく入れ物を用意 部品フラップのテキストを使う 名前を「現在の状態」にする
実装方法 2 各状態で繰り返す処理を作る 現在の状態が「停止中」の場合 現在の状態が「計測中」の場合 繰り返す処理→なし 繰り返す処理→文字盤の数値を増やす
実装方法 3 各ボタンの処理を実装する 現在の状態を調べて,アクションを実行し,状態を変更する
課題の取り組み方 ペアを組んで作業をする まず,状態遷移図を書いて先生にレビューして(前に提出する)もらう ダッシュゲーム UFOキャッチャー の順番で取り組む まず,状態遷移図を書いて先生にレビューして(前に提出する)もらう 書き直しの場合は,OKがでるまで再提出をする 状態遷移図にOKがでたら,実装を始める
課題内容 1. ダッシュゲームを作ってみよう 2. UFOキャッチャーを作ってみよう 内容 ヒント ボタンを押す(笛を吹く)と部員の走る向きが反転し,画像も切り替わる ヒント 部員を作るには3つのオブジェクトが必要です 見た目を変えるためには「見た目を似せる」タイルを使いましょう 2. UFOキャッチャーを作ってみよう
UFOキャッチャーの仕様 基本 応用 クレーンを使って人形をつかむ事ができる 左ボタンを押すと,クレーンが左に動き続ける 下ボタンを押すと,クレーンが下降する(下降中は左には移動できない) クレーンが床に着くと,クレーンが上昇する(上昇中は左にも動かず,下降もしない) 応用 クレーンが左の画面外に出ずに往復する(往復する回数が決まっていて,回数を満たすと自動的に下降する) 一旦床に着くとリセットボタンを押さないでも初期位置に戻る 初期位置に戻ったときにクレーンが人形をつかんでいると,人形を離す
日誌の記入 以下の事柄を日誌に記入してください 今日の授業の感想 今日の授業に関連した質問(を最低1つ)
今日の授業はおしまい お疲れ様でした