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