情報1

情報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