// Deployment.code

#include <code\Deployment\blocktorow.txt>
#include <code\Deployment\module1.txt>
#include <code\Deployment\module2.txt>



var Deployment(var SYS,var comanda,var param1){
	table=((map)0);
	table["стартовое состояние"]="starter";
	table["метод текстового описания состояния"]="toString";
	table["признак конечного состояния"]="priznakfinish";
	table["признак допустимого состояния"]="control";
	table["методы изменения состояния"]="methods";
	table["подготовка параметров к методам изменения состояния"]="parameters";
	table["имя модели"]="namemodele";
	table["номер версии"]="ver";
	table["время ожидания"]="timeborder";
	table["файл задания"]="filename";
	table["метод сравнения двух игровых состояний"]="compare";
	table["метод наглядного приобразования системы согласно шага развития"]="correctir";
	if(table.isset(comanda)){
		(*SYS)[table[comanda]]=param1;
		return;
		}
	acts={"включить отображение новых состояний","выключить отображение новых состояний"};
	t=acts.indexOf(comanda);
	if(t>=0){
		if(!isset(SYS->pirmision))SYS->pirmision=((map)0);
		SYS->pirmision["prosmotr-new"]= !t;
		}
	acts={"развернуть систему","распечатка системы","взять распечатку системы","взять последовательность случайного кратчайшего пути","распечатка состояний по заданному пути","взять распечатку состояний по заданному пути","развёртывание толькочто произошло","делать отчёты в рядок","делать отчёты в столбик","сколько времени ушло на разворачивание?","сколько секунд ушло на разворачивание?","разварачивать до первого конечного состояния","сохранять через каждых секунд","вычислить количество всех кратчайших путей"};
	t=acts.indexOf(comanda);
	if(t==0)return poisk(SYS);
	if(t==1)tracex(printer(SYS));
	if(t==2)return printer(SYS);
	if(t==3){
		FindWAYS(SYS);
		return DefineRandomWAY(SYS);
		}
	if(t==4)tracex(printWAY(SYS,param1));
	if(t==5)return printWAY(SYS,param1);
	if(t==6){
		if(SYS->isset("tolkochto"))return SYS->tolkochto;
		return 0;
		}
	if(t==7||t==8)SYS->formatZvitov=8-t;
	if(t==9)return timeFormat(SYS->timezatratil);
	if(t==10)return SYS->timezatratil;
	if(t==11)SYS->firstFineEndOK=1;
	if(t==12)SYS->timeLimitForSave=param1;
	if(t==13)return computeCountAllShotWays(SYS);
	if(comanda=="взять все пути к узлу рекурсией")return WhotListWaysToX(SYS,param1);
	if(comanda=="взять все пути через узел рекурсией")return WhotListProxoditPoX(SYS,param1);
	acts={"взять все состояния на шаге","распечатка множества состояний","взять распечатку множества состояний","рекурсивный подсчёт количества путей к конечным узлам","взять все финальные состояния"};
	t=acts.indexOf(comanda);
	if(t==0)return getAllObjektsForStep(SYS,param1);
	if(t==1)tracex(Deployment(SYS,acts[2],param1));
	if(t==2)return getStringObjects(SYS,param1);
	if(t==3)return ComputeSpaceWAYS(SYS,"");
	if(t==4)return getAllFinalSYS(SYS);
	acts={"взять номер узла с конечным состоянием","взять все кратчайшие пути к конечному состоянию","взять параметры переходов состояний по заданному пути"};
	t=acts.indexOf(comanda);
	if(t==0)return GetNumberUnitMarkerFinal(SYS);
	if(t==1)return GetAllWaysForUnitN(SYS);
	if(t==2)return GetParametersForWay(SYS,param1);
}


// Deployment.code	:-|