ロボットクラスとリモコンクラス

第5回 クラスを考える
風船クラス(Balloon)
障害物クラス
(Obstractle)
Robotクラス
リモコンクラス(Rmconクラス)
第5回 クラスを考える(1)
風船クラス(Balloon)
Robotクラス
5メートル
リモコンクラス(Rmconクラス)
(1)rbGoメソッドで1メートル進む。「1歩進みました。」というメッセージを出す。
(2)風船に達すると、リモコンからロボットの「rbBreak割る」メソッドを呼び出す。
ロボットは「割る」という命令を受け取ると、風船クラスのbalBreakメソッドを呼び出す。
(3)風船クラスは、balBreakメソッドで、「おめでとう!」というメッセージを出す。
(4)風船クラスは、balというint型のメンバ変数を持っており、割れていないときは1、
割れてるときは0という値を持つ。初期値は1とする。
第5回 クラスの構成を考える
Rmcon.java
クラス名: Rmcon
メンバ名:
メソッド名: main
ここでSimpleBobotのインスタンスを生成する
メソッド名
rbGo
rbBreak
balBreak
。。。
SimpleRobot.java
クラス名:
SimpleBobot
メンバ名:
Balloon.java
クラス名:
メンバ名:
メソッド名:
Balloon
メソッド名:
このコンストラクタで
Balloonのインスタンスを生成する
第5回クラスを考える(2)
・途中に天井から障害物(Obstracle クラス)が垂れ下がっているので、それをしゃがんで避ける。
・ロボットは「rbGo進む」「rbDownしゃがむ」「rbUp起す」「rbBreak風船を割る」というメソッドをもつ。
・上記のメソッドは、各々呼び出されると、
「1歩進みました。障害物までxxxメートルです。風船までxxxメートルです。」
「しゃがみました。」
「体を起しました。」
「風船を割ります。」
というメッセージを出す。しゃがんだ状態でも前に進むことができる
・風船及び、障害物がスタート地点から何メートル先にあるかは、各々のメンバ変数の初期値で設定する。
(障害物は4メートル先にあり、風船は6メートル先にあるものとする。)
応用問題
・風船、ロボット、障害物のインスタンスの生成をリモコンクラスで行うように変更しなさい。
クラスの構成を考える
クラス名: Rmcon
メンバ名:
rbGo
rbDown
rbUp
rbBreak
balBreak
メソッド名: main
クラス名:
クラス名:
メンバ名:
メソッド名:
Obstacle
クラス名:
SimpleBobot
メンバ名:
メンバ名:
メソッド名:
メソッド名:
Balloon
ロボットクラスとリモコンクラス
SimpleRobotクラス
メンバ:好きなように
メソッド:好きなように
(例)
rbStop
rbDown
rbUp
fwLeft_leg
fwRight_leg
fwLeft_hand
bkLeft_hand
fwRight_hand
Bk.Right_hand
メインメソッド無し
RemoConクラス
メンバ:好きなように
メソッド:無し
メインメソッド:
このメソッドからSimpleRoboto
メソッドを呼び出して クラスのメソッドを呼び出して
ロボットを動かす
ロボットを動かす
問題
(1)一歩歩くと50cm進む。
(2)5M先にゴールがある。ゴールに到着すると“おめでとう”のメッセージを出す。
(3)但し、4m1cm先が天井から衝立たれていて、低く屈まないと、そこをくぐれない。
(4)足を進めると、反対側の手を後ろにふらないとバランスが悪く倒れてしまう。