見出し画像

素潜りのプログラム

画像1

目標深度を入力してEnterキーを押すと潜り始めます。
このプログラムは次の動画を参考にして書きました。

// 素潜りのプログラム

// プログラミング言語「ドリトル」

// V3.31以降のインストール版ドリトルで実行してください。

// 2020.06.25  蕪木 孝


// 参考にした動画  Alessia Zecchini World Record Dive to 102m CWT
// https://www.youtube.com/watch?v=1ViCIZjm23s


// -------------------- 空を作る --------------------
空色 = 色 ! 201 222 243 作る。
画面 ! (空色) 塗る。


// -------------------- 海を作る --------------------
画面幅 = 画面 ! 幅?。
画面高さ = 画面 ! 高さ?。
かめた = タートル ! 作る。
かめた ! (画面幅) 歩く    90 右回り    (画面高さ) 歩く    90 右回り。
海 = かめた ! (画面幅) 歩く    閉じる    図形を作る。

海赤 = 6。
海緑 = 83。
海青 = 147。
海 ! (色 ! (海赤) (海緑) (海青) 作る) 塗る。

海x = (画面幅) / 2 * -1。
海y = (画面高さ) / 5。
海 ! (海x) (海y) 位置。

かめた ! 消える。


// -------------------- メイン --------------------

潜行浮上速度 = 1// m /s
深度 = 0// m
目標深度初期値 = 15// m

// 目標深度の入力フィールド
フィールド1 = フィールド ! 作る    (白) 塗る    60 30 大きさ。
フィールド1 ! 30 文字サイズ    (目標深度初期値) 書く。
フィールド1 ! -30 15 位置。
ラベル1 = ラベル ! " m" 作る    30 文字サイズ    (白) 文字の色。

// 現在の深度を表示するラベル
ラベル2 = ラベル ! 作る    30 文字サイズ    (白) 文字の色    -30 15 位置。

// フィールドに目標深度を入力してEnterキーを押すと潜り始める
フィールド1 : 動作 = 
「
	| 目標深度 |

	フィールド1 ! 消える。
	ラベル1 ! 消える。

	// 潜航中
	海 ! (:海x) (画面高さ / 2) 位置。 

	タイマー1 = タイマー ! 作る    0.2秒 間隔    (目標深度 * 5 + 4) 回数。	// 目標深度に到達して一拍待ってから浮上させるために +4 している。
	タイマー1 ! 「
		| i |
		明るさ = 500 - i。 
		海を塗る ! (明るさ) 実行。
		ラベル2 ! (floor(i / 5) + " m") 書く。
	」 実行。

	// 浮上中
	タイマー1 ! 「
		| i |
		明るさ = 500 - 目標深度 * 5 + i。
		海を塗る ! (明るさ) 実行。
		ラベル2 ! (floor(((目標深度 + 1) * 5 - i) / 5) + " m") 書く。
	」 次に実行。

	// 海面から顔を出す
	タイマー1 ! 「
		海 ! (海x) (海y) 位置。
		ラベル2 ! "0 m" 書く。
	」 最後に実行。
」。


海を塗る = 「
	| 明るさ |

	「明るさ < 0」 ! なら 「明るさ = 0」 実行。

	海中赤 = round (:海赤 / 500 * 明るさ)。
	海中緑 = round (:海緑 / 500 * 明るさ)。
	海中青 = round (:海青 / 500 * 明るさ)。
	海中色 = 色 ! (海中赤) (海中緑) (海中青) 作る。

	海 ! (海中色) 塗る。
」。

実行方法

これは教育用プログラミング言語「ドリトル」で書いたプログラムです。
インストール版ドリトルを以下のサイトからダウンロードしてください。
https://dolittle.eplang.jp/download
パソコンのOSがWindowsなら「Windows用」をクリックするとダウンロードがはじまります。
ダウンロードしたら解凍してください。
解凍したら dolittle.bat をダブルクリックするとドリトルが起動します。
プログラムを貼り付けて「実行!」をクリックすると海面が表示されます。

息止めに挑戦しましたが30mが限界でした。

この記事が気に入ったらサポートをしてみませんか?