Jump to content

[TosterowaMaszynaStanow] Kto chce sie pobawic maszyna stanow ?


Toster

Recommended Posts

W linku http://toster.ps.pl/test/StateTests.exe mozna pobrac prosta maszyne stanow, ktora wlasnie testuje... jak sie komus nudzi to zapraszam do zabawy

Kod dzieli sie na 2 sekcje (definicji stanow i przejsc) oraz (polecen do przelaczania/resetowania maszyny), musi zaczynac sie od jednj z 2 komend

::NoHashing

lub

::UseHashing

 

przelacza to maszyne w jeden z 2 wewnetrznych stanow majacy wplyw na jej predkosc

 

pozniej nastepuje ciag komend w postaci

+nazwa stanu

...

+nazwa stanu2

 

nazwy stanow nie powinny zaiwerac znaku '=' oraz ',' i nie moga sie powtarzac bo bedzie buba

 

pozniej zapisuje sie dozwolone przejscia z jednego stanu do drugiego w postaci

>stan1,stan2

>Innystan,stan2

 

pozniej nastepuje slowo

::Execute

i zaczyna sie zabawa z maszyna, dostepne sa 2 komendy

!stan - resetuje maszyne tak aby wskazywala na poczatkowy stan o podanej nazwie

>stan - kaze przelaczyc maszyne na zadany stan

 

maszyna przelaczy sie jesli dodane jest odpowiednie przejscie, tzn dla przykladu

mamy 3 stany

+Stan1

+Stan2

+Stan2

 

i przejscia

>Stan1,Stan2

>Stan2,Stan3

 

oznacza to ze po zresetowaniu maszyny na stan1 mozemy wykonac tylko przejscie ze Stan1->Stan2 i nic pozatym

analogicznie ze stanu 2->3

Przejscia zawsze sa jednokierunkowe chyba ze dodamy przejscie 2 strony np

>Stan1,Stan2

>Stan2,Stan1

 

Uwaga, nazwy zalez od wielkosci znakow ! (case sensitive)

 

W zalaczonym programi jest przykladowy kod

Always Dark<br />u1_tt_logo.png banner-1.pngexFabula-banner.pngson_banner_ubersmall.jpg

Link to comment
Share on other sites

biorąc pod uwagę że kompletnie nie wiem o co w tym chodzi to nic dziwnego że błędy wywala

ale skoro chcesz przykład :)

KOD::UseHashing

+stan1

+stan2

+stan3

+stan4

 

>stan1,stan2

>stan1,stan3

 

>stan2,stan3

>stan2,stan4

 

::Execute

!stan1

>stan2

>stan3

>stan4

 

Link to comment
Share on other sites

Ok juz tlumacze

od sekcji execute

kazesz ustawic stan na stan1 - ok

pozniej skaczesz do stanu2 - ok (dodales przejscie >stan1,stan2 wiec to przejscie jest dozwolone) maszyna jest w stanie2

kazesz przejsc do stanu3 - ok (dodales przejscie >stan2,stan3 wiec to przejscie jest dozwolone (jestes teraz w stanie2) po tej komendzie maszyna jest w stanie3

kazesz przejsc do stanu4 - blad, jestes w stanie3 i kazesz zrobic przejscie stan3->stan4, ale to przejscie jest nielegalne, nie dopisales takiej mozliwosci. Z twoich regul wynika że ze stanu3 nie mozesz przejsc juz do innego stanu.

 

czyli wszystko jest ok :)

Always Dark<br />u1_tt_logo.png banner-1.pngexFabula-banner.pngson_banner_ubersmall.jpg

Link to comment
Share on other sites

Proponuje zmienić składnie deklaracji na możliwe przejścia :)

Wywaliłbym deklaracje jakie stany się będzie używać. To znaczy zależy gdzie użyjesz tę maszynę, bo w tym przykładzie wystarczy aby maszyna przy zasadach widziała, że jakiegoś nie ma to go sobie doda.

I może lepiej aby reguły przejść były takie

stan1 -> stan2,stan3,terminator

stan2 -> stan3,terminator

stan3 -> stan1, stan4

stan1 -> stan4

stan4 -> terminator

Ogólnie, że pisze się po lewej stronie skąd, a potem po przecinkach dokąd. I jeszcze, że definicje przejść można kilka razy z tego samego stanu definiować (tak jak teraz już jest). A terminator to taki bonus co oznacza zakończenie.

Baza tysięcy lotnisk: http://airportsbase.com

Link to comment
Share on other sites

Tsr -> True

Force -> True

Wlasnie pisze bardziej rozbudowany model tej maszyny tak aby dawalo sie podpinac eventy, bo w tej chwili to jest sam rdzen.

Parser jest idiotycznie prosty ale tylko po to jak Tsr zauwazyl aby sprawdzic czy wszystko jest ok, bo w obecnej postaci to jej przydatnosc jest niska. Ale spoko wodza, dzisiaj wprowadze ja na nowy poziom....

Always Dark<br />u1_tt_logo.png banner-1.pngexFabula-banner.pngson_banner_ubersmall.jpg

Link to comment
Share on other sites

  • 4 weeks later...

I co są rezultaty ??Czeakam ,bo program dosyć ciekawy ,tylko dziwny :)

Aktualnie piszę 32 bitowy system operacyjny.

ASE2.0 100% ,DME (Dynamic Motion Engine) v2.0 10% ,32 bit PumaOS - 40%

Stick's Adventure 3 - 0%

Komp nr.1 AMD Duron 1,3 Ghz ,256 MB Ram DDR PC133 (na eBoostr mam jeszcze 1 GB) ,Nvidia GeForce FX 5500 256MB DDR

Komp nr.2 (laptop) AMD Athlon XP 2,0 Ghz , 192 MB Ram DDR PC2700 (na eBoostr mam jeszcze 3 GB) , Via S3 Unichrome IGP

Przykład programu w ASE2.0:

<?arg #CreateProcs; $i:?;

#For('$i,10,1,@Lab');@Lab;

#Sleep(100);

#Message("Ten komputer ulegnie autodestrukcji za $i sekund");

#Retf;

#Message('Dead'); arg?>

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...