//////////////////////////////////////////////////////////////////////////
//  積み木の世界　Flashソース一式
//                                         (c) 2006　SOFNEC.,LTD.
//////////////////////////////////////////////////////////////////////////

----------------------------------------
 目 次
----------------------------------------
 1. 概要
 2. 動作条件
 3. 同梱ファイル一覧
 4. Flash／Prologインタフェース
 5. 著作権・他
 6. 免責事項

----------------------------------------
 1. 概要
----------------------------------------
　本プログラムはWebアプリケーションとして動作する「AZ-Prolog Ver.5」を使用することにより
Flashを使用して論理解析結果表示のビジュアル化を目的としたものです。

あくまでサンプルプログラムですので、動作の不具合等につきましては免責とさせていただきます。

----------------------------------------
 2. システム構成
----------------------------------------
　本ソフトウェアを動作させるためには、FlashMX2004が必要です。
  提供プログラムはLocalHostのcgiとの通信を行うように設定されています
　任意のサーバーとの通信をおこなうためには、tsumiki_index.html に埋め込まれて
　いるHOST設定とサーバー種類の設定を書き換えてください。

----------------------------------------
 3. 同梱ファイル一覧
----------------------------------------
tsumiki.swf　Flashムービー
tsumiki.fla　Flashソース本体(FlashMX2004)

-------- 以下外部ソース ---------
tsumikiInit.as　　　　初期処理
tsumikiButton.as　　　ボタン関連
tsumikiCom.as　　　　 サーバとの通信※
　　※　→　177行目以降　Webサーバ実行環境により要変更
tsumikiExplain.as　　 解説画面
tsumikiHako.as　　　　箱移動
tsumikiMove.as　　　　移動確認
tsumikiRoot.as　　　　Root関係
tsumikiStick.as　　　 はさみ移動処理
command.txt　　　　　 命令文例題

----------------------------------------
 4. Flash／Prologインタフェース説明
----------------------------------------

＜Flash側の画面構成＞

   +------------------------------------+
   |           積木の世界               |
   +------------------------------------+
   |            $                       |　ロボットの手
   |            $                       |
   |            ""                      |
   |                                    |
   |               白黄                 |　赤青白黄のブロック
   |               赤青                 |
   |      ######################        |　机
   +------------------------------------+
   |日本語で命令し積木を動かしてください|
   +------------------------------------+
   |命令：[                        ]<go>|  <== ユーザーの入力エリア&ボタン
   +------------------------------------+    tumiki.cgi?table=赤21青31白22黄32&input=赤い積木を青い積木の上に置け
   |                                    |  <== エラーのときは「わかりません。再入力してください」
   +------------------------------------+      エラーでなくmoveが空のときは、「操作がありません」それ以外は空表示
    [文法ファイル表示]  [プログラム表示]   <== ソース表示ボタン
    puttxt tumiki.dcg    puttxt tumiki.pl  <== 上のボタン押下で起動


＜盤面の表現＞

１）ブロックの配色　赤;青;白;黄　とする。
２）ブロックの位置の座標系(X,Y)

  X--> １２３４
    ５
    ４
    ３
    ２   白黄
    １   赤青
    ↑ --------
    Y  座標系

＜配置表現例＞

  白黄                      　赤 
  赤青                    白　青黄
 ------                   --------
配置１(赤21青31白22黄32) 配置２(赤32青31白11黄41)

＜Flashからの入力＞
input="赤い積木を青い積木の上に置け"         ユーザの入力した命令文
table="赤21青31白22黄32"                     現在の盤面

＜Flashへの出力＞
move=白2211黄3241赤2132&table=赤22青31白11黄41

move: ブロックの移動手順（下記）
      操作する内容がないときは空である。
      例：すでに置いてあるとき、自己撞着文（青い積み木の上に青い積み木をおけ）

table:最終配置 （次のFlashからの出力に利用する）
      入力文解析不能のときは、table=error が出力される。

＜＜例１＞＞
move=白2211黄3241赤2132　は次の手順を並べている。
     1-----2=====3-----

"赤を青の上に置け" の移動手順解

(1)  move 白 from (X=2,Y=2) to (X=1,Y=1)    白を(2,2)から(1,1)へ移動
(2)  move 黄 from (X=3,Y=2) to (X=4,Y=1)    黄を(3,2)から(4,1)へ移動
(3)  move 赤 from (X=2,Y=1) to (X=3,Y=2)    赤を(2,1)から(3,2)へ移動

　１２３　　１２３４　　１２３４　　１２３４
３
２  白黄        黄                      赤
１  赤青    白赤青      白赤青黄    白　青黄
 ---------  --------  ----------    ---------
    Begin   白2211      黄3241      赤2132

＜＜例２＞＞
move=白2211赤2125　は次の手順を並べている。
     1-----2=====

"赤いのをとれ" の移動手順解

(1)  move 白 from (X=2,Y=2) to (X=1,Y=1)    白を(2,2)から(1,1)へ移動
(2)  move 赤 from (X=2,Y=1) to (X=2,Y=5)    赤を(2,1)から(2,5)へ移動

　１２３　　１２３４　　１２３４
５                        赤
４
３
２  白黄        黄          黄    
１  赤青    白赤青      白　青
 ---------  --------  ----------
    Begin   白2211      赤2125
    初期    Step-1      Step-2

----------------------------------------
 5. 著作権・他
----------------------------------------

　本プログラムの著作権は「ソフネック株式会社」が所有しています。

----------------------------------------
 6．免責事項
----------------------------------------
　本プログラムはサンプルプログラムです。ご自由に改変していただいてかまいませんが、
なんらかの不具合が生じた場合、また、本プログラムの使用によって万が一事故等が生じた場合、
直接の原因が本プログラムにあった場合でも、弊社は一切の責任を問われないものとさせていただきます。

