From 6a9bf8ad7104282584199830dadd01a0924795d8 Mon Sep 17 00:00:00 2001 From: recuraki Date: Sat, 23 Nov 2019 21:44:36 +0900 Subject: [PATCH 1/3] Draft commit --- documentation_ja.html | 165 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 documentation_ja.html diff --git a/documentation_ja.html b/documentation_ja.html new file mode 100644 index 00000000..635ff113 --- /dev/null +++ b/documentation_ja.html @@ -0,0 +1,165 @@ + + + + Elevator Saga - help and API documentation + + + + + + + + + + + + +
+
+

Elevator Saga Help and API documentation

+
+ +
+

このゲームについて

+

+ これはプログラミングのゲームです!
+ あなたはJavaScript JavaScriptのプログラムを書いてエレベーターの動作をプログラミングします。 +

+

+ ゴールは効率的にユーザを各階に運ぶことです。
+ うまく運ぶとより難しい課題にチャレンジすることができます。
+ 素晴らしいプログラムだけがすべてのレベルにチャレンジ・完了することができるのです。 +

+ +

プレイ方法

+

+ ゲームビュー下部にコードを書き、 Apply ボタンを押すとそのレベルが開始されます。
+ ゲーム中の時間は のボタンによって調整することができます。. +

+

+ もし、あなたのプログラムにエラーがある場合、 ブラウザ上の開発ツールでを用いることでデバッグできます。 + もし、最初からやり直したい場合は Reset ボタンを押します。. リセットされるのでバグはなくなりますが、初期状態に戻ります。
+ もし、 Sublime Textのようなエディタを使いたいのでしたら、コードをそのエディタで編集して画面下部にコードを貼り付けてください。
+ 編集中のプログラムは自動的にローカルストレージに保存されます。このため、誤ってブラウザを閉じても消えることはありません。 +

+

プログラムの基本

+

+ プログラムは init and updateという2つの関数を含む必要があります。 +

+
{
+    init: function(elevators, floors) {
+        // elevators、floorはarray型です
+    },
+    update: function(dt, elevators, floors) {
+        // elevators、floorはarray型です
+        // dtは最後にupdate関数を呼び出してからのゲーム内の秒数です。
+    }
+}
+

この2つの関数はゲーム中に自動的に呼び出されます。
+ init はゲームの開始時に、 update はチャレンジ中に繰り返し呼ばれる関数です。 +

+

+ 一般的に、イベントリスナーの設置とロジック設定のために多くのコードは init関数に書かれます。 +

+

コード例

+

エレベータの制御方法

+
+
elevator.goToFloor(1);
+
他のタスクが完了したのちにエレベーターを1階に移動させます。エレベータに対して1階に異動する指示を出している場合、何も起こりません。
+
if(elevator.currentFloor() > 2) { ... }
+
currentFloor()関数は現在の回数を返します。ただし、エレベータが階の間を移動している際、この関数は丸めた値を返すことに注意してください。
+
+

イベントリスナー

+

イベントをListenすることで、フロア到着時やボタンを押された際にプログラムを実行することができます。

+
+
elevator.on("idle", function() { elevator.goToFloor(0); });
+
idleイベント: タスクのキューが空でエレベータが動いていないときに発火します。この例ではフロア0に移動します。
+
elevator.on("floor_button_pressed", function(floorNum) { ... } );
+
floor_button_pressedイベント: 乗客によってボタンが押された時に発火します。floorNumには押された階が入ります。
+
floor.on("up_button_pressed", function() { ... } );
+
up_button_pressed"イベント: そのfloorで待っているユーザが上ボタンを押したときに発火します。ほかの(上の)階に行きたいことを示します。
+
+ +

API ドキュメント

+

Elevator オブジェクトt

+ + + + + + + + + + + + + + + +
PropertyType説明
goToFloorfunction第一引数に指定されたフロアをキューに入れます。ただし、第二引数にtrueを設定するとキューに入ることなくその階に向かいます。そのあと、キューに入っているフロアに向かいます。
elevator.goToFloor(3); // ほかのキュー動作の後に3階に向かいます
+elevator.goToFloor(2, true); // キューの内容にかかわらず2階に向かいます
stopfunction動作キューをクリアし、エレベータをストップします。通常、エレベータをストップすることはありません。この関数は再スケジューリングロジックの実装のために用意されています。この関数が呼ばれたときおそらくエレベータはフロアに停止していないので、乗客は降りることができません。 +Clear the destination queue and stop the elevator if it is moving. Note that you normally don't need to stop elevators - it is intended for advanced solutions with in-transit rescheduling logic. Also, note that the elevator will probably not stop at a floor, so passengers will not get out.
elevator.stop();
currentFloorfunctionエレベータのいるフロアを返します
if(elevator.currentFloor() === 0) {
+    // 何らかの動作
+}
goingUpIndicatorfunctionUpのインジケータをset/getします。これはフロアで停止した際の乗客の行動に影響します。
if(elevator.goingUpIndicator()) {
+    elevator.goingDownIndicator(false);
+}
goingDownIndicatorfunctionDownのインジケータをset/getします。これはフロアで停止した際の乗客の行動に影響します。
if(elevator.goingDownIndicator()) {
+    elevator.goingUpIndicator(false);
+}
maxPassengerCountfunction最大乗車人数を取得します
if(elevator.maxPassengerCount() > 5) {
+    // なにか特別なことにこの大きなエレベータを使いします
+}
loadFactorfunctionエレベータに乗っている人々の重さを得ます。そのエレベータごとに0が空、1がFULLを示します。
if(elevator.loadFactor() < 0.4) {
+    // Maybe use this elevator, since it's not full yet?
+}
destinationDirectionfunctionエレベータの今の状態を得ます。 "up", "down" or "stopped"のいずれかです。
destinationQueuearrayそのエレベータの今の行き先キューをgetします。これは設定することが可能です(空にすることも可能です)。変更を即座に反映したい場合、checkDestinationQueue関数を呼ぶ必要があります。
elevator.destinationQueue = [];
+elevator.checkDestinationQueue();
checkDestinationQueuefunctionこの関数はdestinationDirectionを手動で編集した場合に呼ぶ必要があります。この関数はdestinationDirectionを参照し、次の宛先を決定します。
elevator.checkDestinationQueue();
getPressedFloorsfunction現在押されているフロアを配列で取得します。
if(elevator.getPressedFloors().length > 0) {
+    // 最初に押されたフロアに行く?
+}
+ + + + + + + + +
EventExplanationExample
idleこのイベントはエレベータがなんのタスクも持っていないときに発火します。
elevator.on("idle", function() { ... });
floor_button_pressed乗客がエレベータ内の行き先フロアボタンを押したときに発火するイベントです。
elevator.on("floor_button_pressed", function(floorNum) {
+    // この階に行くようにエレベータに命令する?
+})
passing_floorエレベータがフロアを追加する直前に発火するイベントです。そのフロアに停止すべきかを判断するのに利用できます。ただし、このイベントはdestination フロアには発火しません。尚、"Direction"は"up"か"down"です。
elevator.on("passing_floor", function(floorNum, direction) { ... });
stopped_at_floorフロアに到着した時に発火するイベント。
elevator.on("stopped_at_floor", function(floorNum) {
+    // 次にどこに行くかを決定する?
+})
+

Floor object

+ + + + + +
PropertyTypeExplanationExample
floorNumfunctionエレベータがフロアに到着した際に発火するイベントです。
if(floor.floorNum() > 3) { ... }
+ + + + + + + +
EventExplanationExample
up_button_pressedフロアで乗客が"up"ボタンを押した際に発火するイベントです。乗客がエレベータに入れなかった場合、再度ボタンは押されます。
floor.on("up_button_pressed", function() {
+    // この階に行くようにエレベータに命令する?
+})
down_button_pressedフロアで乗客が"down"ボタンを押した際に発火するイベントです。乗客がエレベータに入れなかった場合、再度ボタンは押されます。
floor.on("down_button_pressed", function() {
+    // この階に行くようにエレベータに命令する?
+})
+
+ +
+ + + + From 7c9e803014b0b88156690582fa4780be24366195 Mon Sep 17 00:00:00 2001 From: recuraki Date: Sun, 24 Nov 2019 19:28:26 +0900 Subject: [PATCH 2/3] Revise Text --- documentation_ja.html | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/documentation_ja.html b/documentation_ja.html index 635ff113..6ca6042c 100644 --- a/documentation_ja.html +++ b/documentation_ja.html @@ -23,7 +23,7 @@

Elevator Saga Help and API documentation

このゲームについて

これはプログラミングのゲームです!
- あなたはJavaScript JavaScriptのプログラムを書いてエレベーターの動作をプログラミングします。 + あなたは JavaScriptのプログラムを書いてエレベーターの動作をプログラミングします。

ゴールは効率的にユーザを各階に運ぶことです。
@@ -34,17 +34,17 @@

このゲームについて

プレイ方法

ゲームビュー下部にコードを書き、 Apply ボタンを押すとそのレベルが開始されます。
- ゲーム中の時間は のボタンによって調整することができます。. + ゲーム中の時間の速度は のボタンによって調整することができます。.

- もし、あなたのプログラムにエラーがある場合、 ブラウザ上の開発ツールでを用いることでデバッグできます。 - もし、最初からやり直したい場合は Reset ボタンを押します。. リセットされるのでバグはなくなりますが、初期状態に戻ります。
- もし、 Sublime Textのようなエディタを使いたいのでしたら、コードをそのエディタで編集して画面下部にコードを貼り付けてください。
- 編集中のプログラムは自動的にローカルストレージに保存されます。このため、誤ってブラウザを閉じても消えることはありません。 + あなたのプログラムにエラーがある場合、 ブラウザ上の開発ツールを用いることでデバッグできます。 + 最初からやり直したい場合は Reset ボタンを押します。すべてがリセットされるのでバグはなくなりますが、初期状態に戻ります。
+ もし、 Sublime Textのようなエディタを使いたいのでしたら、コードをそのエディタで編集してコードを貼り付けてください。
+ 画面下部のプログラムは自動的にローカルストレージに保存されます。このため、誤ってブラウザを閉じても消えることはありません。

プログラムの基本

- プログラムは init and updateという2つの関数を含む必要があります。 + プログラムは initupdateという2つの関数を含む必要があります。

{
     init: function(elevators, floors) {
@@ -52,14 +52,14 @@ 

プログラムの基本

}, update: function(dt, elevators, floors) { // elevators、floorはarray型です - // dtは最後にupdate関数を呼び出してからのゲーム内の秒数です。 + // dtは最後にupdate関数を呼び出してから、この関数が呼ばれるまでのゲーム内の秒数です。 } }

この2つの関数はゲーム中に自動的に呼び出されます。
- init はゲームの開始時に、 update はチャレンジ中に繰り返し呼ばれる関数です。 + init はゲームの開始時に、update はゲーム中に繰り返し呼ばれる関数です。

- 一般的に、イベントリスナーの設置とロジック設定のために多くのコードは init関数に書かれます。 + 一般的に、多くのコードは initにイベントリスナーとロジックが書かれます。

コード例

エレベータの制御方法

@@ -77,7 +77,7 @@

イベントリスナー

elevator.on("floor_button_pressed", function(floorNum) { ... } );
floor_button_pressedイベント: 乗客によってボタンが押された時に発火します。floorNumには押された階が入ります。
floor.on("up_button_pressed", function() { ... } );
-
up_button_pressed"イベント: そのfloorで待っているユーザが上ボタンを押したときに発火します。ほかの(上の)階に行きたいことを示します。
+
up_button_pressed"イベント: そのfloorで待っているユーザが上ボタンを押したときに発火します。上の階に行きたい乗客がいることを示します。

API ドキュメント

@@ -85,10 +85,9 @@

Elevator オブジェクトt

- - + @@ -99,7 +98,7 @@

Elevator オブジェクトt

elevator.goingUpIndicator(false); } - + From f5f14587ceb3bc0ac34f5856415131299e3b84a9 Mon Sep 17 00:00:00 2001 From: recuraki Date: Sun, 24 Nov 2019 23:10:23 +0900 Subject: [PATCH 3/3] Revise --- documentation_ja.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation_ja.html b/documentation_ja.html index 6ca6042c..4ece6ad1 100644 --- a/documentation_ja.html +++ b/documentation_ja.html @@ -119,7 +119,7 @@

Elevator オブジェクトt

- + @@ -129,7 +129,7 @@

Floor object

PropertyType説明
goToFloorfunction第一引数に指定されたフロアをキューに入れます。ただし、第二引数にtrueを設定するとキューに入ることなくその階に向かいます。そのあと、キューに入っているフロアに向かいます。
elevator.goToFloor(3); // ほかのキュー動作の後に3階に向かいます
+                    
goToFloorfunction第一引数に指定されたフロアをキューに入れます。第二引数にtrueを設定するとキューに入ることなくその階に向かいます。そのあと、キューに入っているフロアに向かいます。
elevator.goToFloor(3); // ほかのキュー動作の後に3階に向かいます
 elevator.goToFloor(2, true); // キューの内容にかかわらず2階に向かいます
stopfunction動作キューをクリアし、エレベータをストップします。通常、エレベータをストップすることはありません。この関数は再スケジューリングロジックの実装のために用意されています。この関数が呼ばれたときおそらくエレベータはフロアに停止していないので、乗客は降りることができません。 -Clear the destination queue and stop the elevator if it is moving. Note that you normally don't need to stop elevators - it is intended for advanced solutions with in-transit rescheduling logic. Also, note that the elevator will probably not stop at a floor, so passengers will not get out.
elevator.stop();
stopfunction動作キューをクリアし、エレベータをストップします。通常、エレベータをストップすることはありません。この関数は再スケジューリングロジックの実装のために用意されています。この関数が呼ばれたときおそらくエレベータはフロアに停止していないので、乗客は降りることができません。
elevator.stop();
currentFloorfunctionエレベータのいるフロアを返します
if(elevator.currentFloor() === 0) {
     // 何らかの動作
 }
maxPassengerCountfunction最大乗車人数を取得します
if(elevator.maxPassengerCount() > 5) {
-    // なにか特別なことにこの大きなエレベータを使いします
+    // なにか特別なことにこの大きなエレベータを使います
 }
loadFactorfunctionエレベータに乗っている人々の重さを得ます。そのエレベータごとに0が空、1がFULLを示します。
if(elevator.loadFactor() < 0.4) {
     // Maybe use this elevator, since it's not full yet?
@@ -107,7 +106,7 @@ 

Elevator オブジェクトt

destinationDirectionfunctionエレベータの今の状態を得ます。 "up", "down" or "stopped"のいずれかです。
destinationQueuearrayそのエレベータの今の行き先キューをgetします。これは設定することが可能です(空にすることも可能です)。変更を即座に反映したい場合、checkDestinationQueue関数を呼ぶ必要があります。
elevator.destinationQueue = [];
 elevator.checkDestinationQueue();
checkDestinationQueuefunctionこの関数はdestinationDirectionを手動で編集した場合に呼ぶ必要があります。この関数はdestinationDirectionを参照し、次の宛先を決定します。
elevator.checkDestinationQueue();
checkDestinationQueuefunctionこの関数はdestinationDirectionを手動で編集した場合に呼ぶ必要があります。この関数はdestination queueを参照し、次の宛先を決定します。
elevator.checkDestinationQueue();
getPressedFloorsfunction現在押されているフロアを配列で取得します。
if(elevator.getPressedFloors().length > 0) {
     // 最初に押されたフロアに行く?
 }
floor_button_pressed乗客がエレベータ内の行き先フロアボタンを押したときに発火するイベントです。
elevator.on("floor_button_pressed", function(floorNum) {
     // この階に行くようにエレベータに命令する?
 })
passing_floorエレベータがフロアを追加する直前に発火するイベントです。そのフロアに停止すべきかを判断するのに利用できます。ただし、このイベントはdestination フロアには発火しません。尚、"Direction"は"up"か"down"です。
elevator.on("passing_floor", function(floorNum, direction) { ... });
passing_floorエレベータがフロアを通過する直前に発火するイベントです。そのフロアに停止すべきかを判断するのに利用できます。ただし、このイベントはdestination フロアには発火しません。尚、"Direction"は"up"か"down"です。
elevator.on("passing_floor", function(floorNum, direction) { ... });
stopped_at_floorフロアに到着した時に発火するイベント。
elevator.on("stopped_at_floor", function(floorNum) {
     // 次にどこに行くかを決定する?
 })
- +
PropertyTypeExplanationExample
floorNumfunctionエレベータがフロアに到着した際に発火するイベントです。
if(floor.floorNum() > 3) { ... }
floorNumfunctionそのフロアの階数を示します。
if(floor.floorNum() > 3) { ... }