@database "Solitarexx v1.1"
@width 80
@$VER: Soltarexx.guide 1.0 (18.07.97)

@node MAIN "Dokumentacja programu Solitarexx 1.1"

     Twój przewodnik po programie
@{b}
   #####   #####  ##     ## ######  #####  ######  ###### ##   ## ##   ##
  ##   ## ##   ## ##     ##   ##   ##   ## ##   ## ##     ##   ## ##   ##
  ##      ##   ## ##     ##   ##   ##   ## ##   ## ##      ## ##   ## ##
   #####  ##   ## ##     ##   ##   ####### ######  ####     ###     ###
       ## ##   ## ##     ##   ##   ##   ## ##  ##  ##      ## ##   ## ##
  ##   ## ##   ## ##     ##   ##   ##   ## ##   ## ##     ##   ## ##   ##
   #####   #####  ###### ##   ##   ##   ## ##   ## ###### ##   ## ##   ##
                                                                      v1.1
@{ub}
                      (c) 1996, 1997 Michaî Szafraïski

Co to jest?
 @{" Wprowadzenie               " link INTRODUCTION}
 @{" Charakterystyka programu   " link FEATURES}
 @{" Wymagania                  " link REQUIREMENTS}
 @{" Skîad archiwum             " link ARCCONTENTS}
 @{" Instalacja                 " link INSTALLATION}

Zainstalowaîem.
 @{" Uruchomienie i obsîuga     " link STARTING}
 @{" Dostëpne Pasjanse          " link SOLITAIRES}
 
Chcë wiëcej.
 @{" Tworzenie zestawów kart    " link MAKECARDSET}
 @{" Tworzenie nowych pasjansów " link AREXX }
 @{" Dostëpne komendy           " link COMMANDS }
 @{" Prosty (:-) przykîad       " link TUTORIAL }

Sprawy autorskie:
 @{" Przeszîoôê                 " link HISTORY}
 @{" Przyszîoôê                 " link FUTURE}
 @{" Dystrybucja                " link DISTRIBUTION}
 @{" Autor                      " link ADDRESS}
 @{" Format SXCS                " link SXCS }

@endnode

@node DISTRIBUTION "Zasady dystrybucji"

 Ten program podlega "Standard Amiga FD-Software Copyright Note".
 Ten program jest CARDWARE, jak zostaîo to okreôlone w punkcie 4c.
 Jeôli szukasz wiëcej szczegóîów, proszë przeczytaê @{"AFD-COPYRIGHT" link AFD-COPYRIGHT.pl/main} (wersjë
 1 lub nowszâ)

 Jeôli chcesz skontaktowaê sië z autorem. @{" Chcë " link ADDRESS} @{" Nigdy " link WHAT}

@endnode

@node ARCCONTENTS "Archiwum"

 Skîad archiwum wesji 1.1:
	Docs.info
	Scripts.info
	Solitarexx
	Solitarexx.info
	sx.prefs
	Utils.info
	<dir> Cardsets
		def.08.cs
		def.10.cs
		def.16.cs
		def.h08.cs
		def.h10.cs
		def.h16.cs
	<dir> Docs
		AFD-COPYRIGHT
		AFD-COPYRIGHT.pl
		English.guide
		English.guide.info
		Polish.guide
		Polish.guide.info
	<dir> Scripts
		Basement.srx
		Basement.srx.info
		Demon.srx
		Demon.srx.info
		FrenchScarf.srx
		FrenchScarf.srx.info
		Golf.srx
		Golf.srx.info
		KingAlbert.srx
		KingAlbert.srx.info
		Klondike.srx
		Klondike.srx.info
		Klondike2D.srx
		Klondike2D.srx.info
		Maze.srx
		Maze.srx.info
		Metternich.srx
		Metternich.srx.info
		MonteCarlo.srx
		MonteCarlo.srx.info
		MonteCarlo2D.srx
		MonteCarlo2D.srx.info
		NinetyOne.srx
		NinetyOne.srx.info
		Parade.srx
		Parade.srx.info
		Quadrille.srx
		Quadrille.srx.info
		SirTommy.srx
		SirTommy.srx.info
		Spaces.srx
		Spaces.srx.info
		Spaces2D.srx
		Spaces2D.srx.info
		Spider.srx
		Spider.srx.info
		Tress.srx
		Tress.srx.info
		Triples.srx
		Triples.srx.info
		Tutorial.srx
	<dir> Utils
		MakeCardset
		SetCardsetMode
		SetCardsetMode.info
@endnode

@node WHAT "Ûe co?"
 No coô ty?
@endnode

@node INTRODUCTION "Wprowadzenie"

   Solitarexx jest programem, który pozwoli Ci zagraê w Twoje ulubione
 pasjanse (gry, w których zadaniem gracza jest ukîadanie standartowego
 zestawu 52 kart).
   Sam program zajmuje sië jedynie wyôwietlaniem wizerunków kart na ekranie
 oraz interfeace'u uûytkownika (GUI). Przebieg gry realizujâ skrypty
 napisane w Arexx'ie.
   Solitarexx posiada wîasny format zapisu grafiki kart (@{"SXCS" link SXCS}), tworzony
 za pomocâ doîâczonego programu MakeCardset. Karty w tym formacie posiadajâ
 dowolny rozmiar (dziëki temu moûna uûywaê programu w nieproporcjonalnych
 rozdzielczoôciach np Hires).
   Dodatkowo moûna uûywaê plików grafiki programu Klondike (autorstwa REKO
 Productions). Uûywanie ich wymusza wybieranie rozdzielczoôci proporcjonalnej
 o wymiarach ekranu minimum 640x480, poniewaû w tym formacie karty majâ
 zawsze wymiary 130x88
 
@endnode

@node FEATURES "Charakterystyka Programu"

 - niskie wymagania sprzëtowe, @{" Jakie? " link REQUIREMENTS}
 - maîe rozmiary <20K,
 - wiele pasjanów w jednym programie,
 - moûliwoôê otworzenia ekranu w dowolnej rozdzielczoôci (okno wybóru ASL),
 - interface graficzny wraûliwy na wybranâ czcionkë i rozmiar ekranu,
 - wykorzystywanie wîasynych zestawów kart (.cs) o dowolnych wymiarach kart
   lub zestawów programu Klondike (.reko tylko 130x88),
 - moûliwoôê tworzenia nowych pasjansów wykorzystujâc Arexx,

@endnode

@node REQUIREMENTS "Wymagania sprzëtowe"

Wymagana konfiguracja systemu:
    - dowolna Amiga,
    - system operacyjny 3.0 lub nowszy,
    - zainstalowany program RexxMast,
    - w zaleûnoôci od wybranej grafiki od 0.5 do 1.5MB RAM,
    - dysk twardy (nie jest konieczny, instalacja na dyskietce nie jest
      opisana w dokumentacji).

@endnode

@node SXCS "Opis Formatu SXCS"

    Jeûeli jesteô zainteresowany stworzeniem wîasnego kreatora, przeglâdarki,
  datatype'u zestawów kart w formacie SXCS, oto peîny opis.

  Plik SXCS skîada sië z trzech czëôci:
  1.Nagîówka - w postaci struktury C przedstawia sië nastëpujâco:
    struct SXCS_Head {
        ULONG id;           - zawsze 'SXCS'
        ULONG datasize;     - rozmiar danych (2+3)
        ULONG cardsize;     - rozmiar grafiki pojedyïczej karty
        WORD height, width; - wysokoôc i szerokoôê karty
        ULONG viewmode;     - identyfikator ekranu (ModeID)
        UBYTE depth;        - gîëbokoôê (iloôê bitplanów) ekranu
        UBYTE maxcard;      - iloôê kart w zestawie (datasize/cardsize)
        WORD spcx, spcy;    - odstëpy miëdzy rzëdami i kolumnami w pikselach
        WORD maxx, maxy;    - maksymalna szerokoôê, wysokoôê widocznej czëôci
                              karty w kolumnie, rzëdzie (wartoôê mniejsza od
                              poîowy odpowiednio wysokoôci/szerokoôci karty)
        ULONG reserved1;    - zawsze 0
        ULONG cardsptr;     - rozmiar palety (2)
    };
  2.Palety barw - 8 bitowa, format jak w plikach ILBM,
  3.Grafiki poszczególnych kart w formacie uûywanym przez DrawImage z
    biblioteki intuition (bitplany nastëpujâ po sobie, dîugoôê jednej
    linii jest przybliûana do 2 bajtów (WORD). Kolejnoôê kart jest
    identyczna z numeracjâ plików grafiki do programu MakeCardset.
@endnode

@node INSTALLATION "Instalacja i uruchomienie programu"

 Aby zainstalowaê program wystarczy przekopiowaê zawartoôê archiwum
 w dowolne miejsce twojego twardego dysku. Przed uruchomieniem upewnij
 sië, ûe w twoim systemie jest uruchomiony program RexxMast. Powinien
 znajdowaê sië w katalogu System dysku startowgo, po prostu kliknij
 dwukrotnie na jego ikonie. Najlepiej gdy jest on uruchamiany przy
 kaûdym starcie komputera, co zapewnia dodanie poniûszej linijki
 do pliku 'S:UserStartup':
   SYS:System/RexxMast >NIL:

@endnode 

@node STARTING "Uruchomienie i obsîuga"

   Poniewâû program sîuûy jedynie do wykonywania skryptów napisanych
 w arexx'ie, naleûy posiadaê conajmniej jeden skrypt. Aby uruchomiê
 wybrany skrypt moûesz:
 A. Kliknij dwa razy na ikonie Solitarexx. W tym wypadku uruchomiony
    zostanie skrypt wybrany w polu Startup preferencji.
 B. Kliknij dwa razy na ikonie wybranego skryptu (zadziaîa w wypadku
    gdy w polu Default Tool ikony znajduje sië nazwa pliku Solitarexx
    wraz z peînâ ôcieûkâ dostëpu).
 C. Kliknij raz na ikonie Solitarexx a nastëpnie trzymajâc wciôniëty
    klawisz Shift podwójnie na ikonie dowolnego skryptu.
 D. Uruchamiajâc z poziomu CLI lub Shell moûesz podaê nazwë skryptu
    jako parametr.

   Uûycie prawego przycisku myszy w dowolnym miejscu ekranu (poza oknem
 preferencji) powoduje schowanie lub przywrócenie wczeôniej schowanego
 ekranu z gadûetami.

   W programie wystëpujâ jedynie trzy staîe gadûety:

 @{b}Load Game@{ub}  - w dowolnym momencie moûesz zmieniê aktualny skrypt
   na wybrany za pomocâ okna ASL.

 @{b}Quit@{ub} - opuszczenie programu.

 @{b}Prefs@{ub} - pozwala na zmianë parametrów programu:
    * Cardset - uûywany zestaw kart,
    * Startup - skrypt domyôlnie wczytywany przez program,
    * Screen Mode - typ otwieranego ekranu:
       - Custom - dowolnie wybrany za pomocâ okna wyboru ASL
       - Cardset - typ ekranu pobierany jest z zestawu kart (moûe zostaê
         zmieniony programem SetCardsetMode)
    * Screen Font - wybór czcionki ekranowej.
    Wybranie gadûetu oznaczonego znakiem zapytania przy danym polu powoduje
    pojawienie sië okna wyboru odpowiednio pliku, ekranu lub czcionki.

    Zmienionâ konfiguracjë moûna zapisaê (Save) przyjâê bez zapisywania (Use)
    lub anulowaê zmiany (Cancel).

   Dziaîanie pozostaîych gadûetów jest zaleûne od aktualnie uruchamionego
 skryptu.

@endnode

@node SOLITAIRES ""

    Lista aktualnie dostëpnych skryptów:
   @{" Basement       " link S11 }    @{" Quadrille      " link S08 }
   @{" Demon          " link S02 }    @{" Sir Tommy      " link S04 }
   @{" French Scarf   " link S12 }    @{" Spaces         " link S16 }
   @{" Golf           " link S05 }    @{" Tress          " link S09 }
   @{" King Albert    " link S13 }    @{" Triples        " link S10 }
   @{" Klondike       " link S01 }    @{" Klondike 2D    " link S01b}
   @{" Maze           " link S14 }    @{" Monte Carlo 2D " link S03b}
   @{" Metternich     " link S06 }    @{" Parade         " link S15 }
   @{" Monte Carlo    " link S03 }    @{" Spaces 2D      " link S16b}
   @{" Ninety One     " link S07 }    @{" Spider         " link S17 }

    Ogólne zasady ukîadania pasjansów:
 - rozpoczëcie gry nastëpuje po uûyciu gadûetu 'Start', grë moûna zazwyczaj
   przerwaê uûyciem 'Abort',
 - przed rozpoczëciem czësto mamy moûliwoôê zmiany niektórch zasad przy
   uûyciu dodatkowych gadûetów,
 - listwë z gadûetami moûna zawsze schowaê lub przywróciê za pomocâ prawego
   przycisku myszy,
 - przkîadanie kart odbywa sië przez wybranie karty ze stosu do przeîoûenia,
   a nastëpnie wybranie stosu docelowego,
 - talon jest najczëôciej symbolizowany przez dwa sâsiadujâce stosy z
   taliâ kart na jednym z nich, aby przeîoûyê karty kliknij na stos
   zawierajâcy talië, gdy skoïczâ sië karty klikniëcie na pusty stos talonu
   spowoduje powtórne przeîoûenie uûytych kart do talonu (o ile zasady na
   to pozwalajâ),
 - dwukrotne wybranie tej samej karty zazwyczaj powoduje przeîoûenie jej
   (jeôli pasuje) na kartë bazowâ,
 - bîëdne wybranie lub przeîoûenie kart sygnalizowane jest migniëciem
   ekranu.
@endnode
@node S11 "Basement"

Ukîad kart:
 Z talii wykîadana jest jedna karta wyznaczajâca wysokoôê kart bazowych w
pozostaîych kolorach. Pozostaîe karty wykîadane sâ w 8 rzëdach roboczych
po 5 kart oraz dwóch pomocniczych, zwanych "dzwiami piwnicy", po 4 karty.
Karty bazowe usuwane sâ z ukîadu natychmiast po wyîoûeniu.

Cel gry:
 Przeniesienie wszystkich kart z ukîadu na kartach bazowych z przejôciem
D-K-A-2 rosnâco lub malejâco. Wybór kierunku sekwensu (rosnâcy czy
malejâcy) jest dokonywany jednorazowo i obowiâzujâcy dla wszystkich kolorów.
 
Zasady:
 Wolne do manipulacji sâ wierzchnie karty stosów roboczych i pomocniczych
oraz karta znajdujâca sië w "piwnicy" o ile jeden ze stosów pomocniczych
jest pusty. Karty wolne do manipulacji moûna przenisiê (zawsze po jednej)
na karty wyûsze lub niûsze w tym samym kolorze. W dowolnym momencie moûna
przeîoûyê kartë do "piwnicy" o ile jest pusta. Jeûeli zwolni sië któryô z
rzëdów roboczych na wolne miejsce moûna poîoûyê dowolâ kartë z wolnych
do manipulacji.
@endnode
@node S12 "French Scarf"

Ukîad kart:
 50 kart wykîadanych jest w 10 kolumnach po 5 kart. Pozostaîe dwie moûna
poîoûyê jako ostatnie karty stosów pierwszego i drugiego, piâtego i szóstego
lub dziewiâtego i dziesiâtego. W tym celu naleûy wybraê odpowiednio stos
1, 5 lub 9.

Cel gry:
 Usuniëcie wszystkich kart z ukîadu.

Zasady:
 Karty usuwamy zawsze parami tej samej wysokoôci. Wolne do usuwania sâ dolne
karty wszystkich kolumn.
@endnode
@node S13 "King Albert"

Ukîad kart:
 Wykîadane jest dziewiëê kolumn kart odkrytych. W pierwszej dziewiëê, w kaûdej
kolejnej o jednâ mniej. Pozostaîe 7 kart odkrytych stanowi rezerwë.

Cel gry:
 Uwolnienie z ukîadu asów i uîoûenie na nich wszystkich kart rosnâco do króli.

Zasady:
 Wolne do manipulacji sâ wszystkie karty rezerwy oraz dolne karty kolumn
roboczych. Moûna je przenosiê na karty o oczko wyûsze w kolorach
alternatywnych. Karty wolno przenosiê tylko po jednej. Gdy zwolni sië
kolumna na jej miejsce moûna poîoûyê dowolnâ kartë.

Zasady Alternatywne:
 Moûna zamieniê zasady przekîadania kart w kolorach alternatywnych
(Alternative color) na przekîadanie tylko w zgodnych kolorach (Same color)
lub w dowolnym kolorze (Any color). Wolne miejsca po karach rezerwy
moûna wykorzystaê o ile ustawiona jest opcja (Use empty reserve 'Yes').
@endnode
@node S14 "Maze"

Ukîad kart:
 Karty wykîadane sâ w dwóch rzëdach po 8 kart oraz czterech po 9. Z ukîadu
usuwane sâ króle, w ten sposób w ukîadzie powstaje szeôê pustych miejsc (dwa
jako ostatnie miejsca w dwóch pierwszych rzëdach).

Cel gry:
 Uporzâdkowanie ukîadu w cztery rosnâce sekwencje w kolorach od asów do dam.
Pierwszâ kartâ ukîadu powinien byê as a ostatniâ dama.

Zasady:
 Na wolne miejsce ukîadu moûna poîoûyê kartë o oczko starszâ i w kolorze
karty po lewej stronie lub o oczko mîodszâ i w kolorze karty po prawej
stronie. Przy zaîoûeniu, ûe lewâ kartâ dla pierwszej karty w rzëdzie jest
ostatnia w poprzenim lub w ostatnim dla pierwszego rzëdu. Analogicznie dla
karty prawej. Po prawej stronie damy moûna poîoûyê dowolnego asa.
@endnode
@node S15 "Parade"

Ukîad kart:
 Pasjans ukîadany jest z dwóch talii kart.
 W poczâtkowym ukîadzie 24 karty wykîadane sâ w 3 rzëdach po osiem kart.
Asy sâ usuwane zarówno z ukîadu poczâtkowego jak i w trakcie gry gdy sië
tylko pojawiâ.

Cel gry:
 Uîoûenie wszystkich kart na kartach bazowych którymi sâ dwójki w pierwszym
rzëdzie na które ukîadamy 5, 8 i walety w kolorze, trójki w drugim rzëdzie
na które kîadziemy 6, 9 i damy oraz czwórki w trzecim rzëdzie z sekwensem
7, 10 i króli.

Zasady:
 Wolne do manipulacji sâ karty ukîadu nie bëdâce kartami bazowymi oraz dolne
karty kolumn pomocniczych, moûna je przekîadaê na karty bazowe. Wolne dwójki
trójki i czwórki moûna kîaôê na wolne miejsca odpowiednio 1, 2 i 3 rzëdu.
 Gdy nie ma moûliwoôci dalszej manipulacji wykîadamy z talonu osiem kart
jako wierzchnie karty kolumn pomocniczych, sâ one wolne do manipulacji.
@endnode
@node S16 "Spaces"

Ukîad kart:
 Wszystkie karty wykîadane sâ w czterech rzëdach po 13 kart. Z ukîadu usuwane
sâ asy.

Cel gry:
 Uporzâdkowanie kart ukîadu rzëdami w kolorach rosnâco od dwójek do króli.

Zasady:
 Na wolne miejsce ukîadu moûna przenieôê kartë o oczko starszâ i w kolorze
karty po lewej stronie lub dowolnâ dwójkë w przypadku pierszej kolumny.
Gdy nie ma juû moûliwoôci dalszej manipulacji karty nie uporzâdkowane
zbieramy, tasujemy razem z asami i ponownie rozkîadamy.

Zasady Alternatywne:
 Przed rozpoczëciem gry moûna ustaliê iloôê dostëpnych przetasowaï.
@endnode
@node S16b "Spaces2D"

 Wersja pasjansa Spaces z dwóch talii kart.
@endnode
@node S17 "Spider"

 Pasjans z dwóch talii kart.
Ukîad kart:
 Wszystkie karty rozkîadane sâ cyklami po 12 na dwónastu stosach pomocniczych.
Po rozîoûeniu jednego cyklu z ukîadu wyjmowane sâ karty bazowe którymi sâ
króle i asy (po jednym w kaûdym kolorze). Na króle ukîadamy karty w 
odpowiednim kolorze malejâco do asów a na asy rosnâco do króli. W kaûdym
rozîoûeniu cyklu jeôli wierzchnia karta stosu pasuje na kartë bazowâ stosu
sâsiadujâcego krótszym bokiem jest przenoszona na stos bazowy.

Cel gry:
 Uîoûenie wszystkich kart ukîadu na karty bazowe.

Zasady:
 Wolne do manipulacji sâ wierzchnie karty wszystkich stosów pomocniczych.
Moûna je przekîadaê na karty na stosach pomocniczych o jedno oczko starszâ
lub mîodszâ w tym samym kolorze lub na stosy bazowe jeôli pasujâ. Na zwolnione
miejsce po stosie pomocniczym moûna poîoûyê dowolnego króla lub asa. Gdy
wyczerpiâ sie moûliwoôci dalszej manipulacji zbieramy wszystkie karty stosów
pomocniczych i bez tasowania rozkîadamy ponownie wedîug tych samych zasad.

Zasady Alternatywne:
 Iloôê dodatkowych rozîoûeï ukîadu moûna zmieniaê w zakresie od zera do
szeôciu.
@endnode

@node S01 "Klondike"

Ukîad kart:
  W ukîadzie poczâtkowym mamy 7 kolumn zawierajâcych od 1 do 7 kart oraz
 4 miejsca na asy bazowe. Pozostaîe karty znajdujâ sië w talonie w lewym
 dolnym rogu ekranu.

Cel gry:
  Celem gry jest uwolnienie asów i uîoûenie wszystkich kolorów rosnâco na
 asach, do króli.

Zasady:
  Wolne do manipulacji sâ dolne karty wszyskich kolumn. Moûna je przenosiê
 na karty bazowe oraz wzajemnie na siebie, tylko mîodszâ o oczko na starszâ
 w kolorach alternatywnych (czarnâ na czerwonâ i odwrotnie). Na zwolnione
 miejsce w kolumnie moûna poîoûyê jedynie króla. Wiëcej niû jednâ kartë z
 kolumny na kolumnë moûna przenosiê tylko w peînym ukîadzie sekwencji
 (wszystkie karty kolejne).
  Gdy któraô z kart zakrytych staje sië wolna, naleûy jâ odsîoniê i wîâczyê
 do gry.
  Jeôli nie sâ moûliwe dalsze manipulacje kliknij na talonie, jego wierzchnie
 karty (od 1 do 3) zostanâ przeîoûone na otwarty stos. Jego wierzchnia karta
 jest wolna do manipulacji. W podstawowej wersji talon jest przekîadany
 jedynie raz po jednej karcie.

Zasady Alternatywne:
 - moûliwoôê dzielenia sekwencji przy przekîadaniu ('Move parts' - 'Yes'),
 - iloôê przeîoûeï talonu ('Rotate deck') od 1 do 7 lub nieograniczona
   ('inf.'),
 - iloôê kart w przeîoûeniu ('Cards at once') od 1 do 3, opcja 3-2-1
   powoduje, ûe talon bëdzie przekîadany trzykrotnie, najpierw po 3 karty,
   nastëpnie po dwie i po jednâ.
 
@endnode

@node S02 "Demon"

Ukîad kart:
  Na ekranie wykîadne jest 13 kart w zamkniëtym stosie zwanym rezerwâ,
 cztery karty jako poczâtek stosów roboczych oraz jedna bëdâca pierwszâ
 kartâ bazowâ wyznaczajâcâ wartoôê kart bazowych w pozostaîych kolorach.

Cel gry:
  Celem gry jest wyîoûenie pozostaîych kart bazowych z ukîadu oraz
 uîoûenie na nich wszystkich kart rosnâco (z przejôciem Dama-Król-As-2).

Zasady:
  Wolne do manipulacji sâ dolne karty czterech kolumn i wierzchnia karta
 rezerwy. Moûna je kîaôê jednâ na drugâ, tylko oczko niûszâ na starszâ w
 kolorach alternatywnych. Gdy zwolnione miejsce po kolumnie roboczej moûna
 poîoûyê jedynie kartë rezerwy. Wiëcej niû jednâ kartë z kolumny na kolumnë
 moûna przenosiê tylko w peînym ukîadzie sekwencji (wszystkie karty kolejne).
  Talon przeglâdamy po trzy karty, górna karta jest wolna do manipulacji.
 Po zakoïczeniu talonu odwracamy karty niewykorzystane tworzâc nowy talon
 który równieû przeglâdamy po trzy karty.

Zasady Alternatywne:
 - iloôê kart w rezerwie moûna zmieniaê w zakresie 7-15 - 'Reserve Cards',
 - iloôê przeîoûeï talonu ('Rotate deck') od 1 do 7 lub nieograniczona
   ('inf.'),
 - iloôê kart w przeîoûeniu ('Cards at once') od 1 do 3, opcja 3-2-1
   powoduje, ûe talon bëdzie przekîadany trzykrotnie, najpierw po 3 karty,
   nastëpnie po dwie i po jednâ.

@endnode
@node S01b "Klondike 2D"

 Wersja pasjansa Klondike z twóch talii kart. Karty rozkîadane sâ w 9
 kolumnach. Zasady jak w Klondike.
@endnode
@node S05 "Golf"

Ukîad kart:
 Karty rozkîadane sâ w 7 kolumnach po 5 kart odkrytych. Jedna karta
 zostaje wyîoûona jako bazowa, pozostaîe twrzâ talon.
Cel gry:
 Pozbycie sië wszyskich kart z ukîadu przez przeniesienie na kartë bazowâ
Zasady:
 Na kartë bazowâ moûna poîoûyê wolnâ kartë z kolumny o oczko starszâ
 lub mîodszâ (królów nie moûna kîaôê na asy i odwrotnie). Jeôli nie ma juû
 moûliwoôci przenoszenia kart wykîadamy nastëpnâ kartë z talonu jako nowâ
 kartë - bazë.
Zasady Alternatywne:
 'Put on kings':
   'Queen' - standartowe zasady
   'Queen or Ace' - waroôci kart przechodzâ na okrâgîo (na króla moûna
      poîoûyê asa i odwrotnie)
   'Nothing' - ûadnej karty nie moûna poîoûyê na króla
 'First card' - 'No' - pierwsza karta bazowa nie jest wykîadana, moûe niâ
   byê dowolna z wierzchnich kart kolumn.
@endnode

@node S06 "Metternich"

Ukîad kart:
 Z talii kart usuwane sâ króle, nie biorâ udziaîu w grze. 7 kart wykîadane
 jest w rzëdzie jako poczâtki 7 kolumn pomocniczych. Ósma karta, wykîadana
 powyûej kolumn, bëdzie kartâ bazowâ.
Cel gry:
 Umieszczenie wszystkich kart z talii na karcie bazowej.
Zasady:
 Wolne do manipulacji sâ wierzchnie kary kolumn pomocniczych. Na karcie
 bazowej moûna umieôciê kartë dwukrotnie wyûszâ (walet - 11, dama - 12),
 niezaleûnie od koloru. Jeôli nie istnieje dwukrotnie wyûsza karta, od
 podwojonej wartoôci karty odejmujemy 13. Daje to nastëpujâcy sekwens:
     As, 2, 4, 8, 3, 6, Dama, Walet, 9, 5, 10, 7, As.
 Gdy nie moûna przeîoûyê juû kart, odsîaniamy po jednej karty z talonu,
 moûna je przeîoûyê na kartë bazowâ (jaôli pasuje), na puste miejsce po
 kolumnie pomocniczej, lub na kartë w kolumnie w sekwensie odwrotym do
 sekwensu ukîadanego na karcie bazowej. Po skoïczeniu sië kart w talonie
 moûna przeîoûyê go powtórnie.
Zasady Alternatywne:
 - iloôê przeîoûeï talonu ('Rotate deck') od 1 do 7 lub nieograniczona
   ('inf.'),
 - iloôê kart w przeîoûeniu ('Cards at once') od 1 do 3, opcja 3-2-1
   powoduje, ûe talon bëdzie przekîadany trzykrotnie, najpierw po 3 karty,
   nastëpnie po dwie i po jednâ.
@endnode

@node S07 "Ninety One"

Ukîad kart:
 Wszystkie karty wykîadane sâ w 13 stosów po 4 karty.
Cel gry:
 Uzyskanie sumy wartoôci widocznych kart równej 91. Aktualna suma
 widoczna jest w polu 'Sum'.
Zasady:
 Wierzchnie karty stosów moûna przenosiê na inne, nie moûna jednak
 likwidowaê ûadnego ze stosów (przenosiê ostatniej karty). Pasjans nie
 wyszedî jeôli przekîadanie kart doprowadzi do pokazania sië trzech
 asów lub króli.
@endnode
@node S08 "Quadrille"

Ukîad kart:
  9 kart wykîadane jest w trzech rzëdach po trzy karty - sâ tok karty
 pomocnicze. Miejsce po lewej stronie przeznaczone jest na bazowe asy
 i dwójki.
Cel gry:
  Uîoûenie wszystkich kart na asach i dwójkach w odpowiednich kolorach.
 Karty nieparzyste ukîadane sâ rosnâco na asach (A, 3, 5, 7, 9, J, K),
 a parzyste na dwójkach (2, 4, 6, 8, 10, D).
Zasady:
  Wolne do manipulacji sâ karty pomocnicze, moûna je kîaôê na karty bazowe
 Miejsca po usuniëtych kartach pomocniczych uzupeîniane sâ kartami z talonu
 Po przeîoûeniu kart talon przeglâdamy po jednej karcie, nieuûyteczne karty
 odkîadamy w stosie otwartym, jego wierzchnia karta jest wolna do
 manipulacji. Jeôli istnieje stos kart odrzuconych miejsca po kartach
 pomocniczych sâ uzupeîniane w pierwszej kolejnoôci z niego.
@endnode
@node S10 "Triples"

Ukîad kart:
 Karty wykîadane sâ w 16 wachlarzykach po trzy karty i dwóch po dwie.
Cel gry:
 Usuniëcie z ukîadu 17 trójek kart (pozostanie jedna karta).
Zasady:
 Z ukîadu moûna usunâê trójkë kart kolejnych (z przejôciem "na okrâgîo"
 - Q-K-A, K-A-2). Karty do usuniëcia naleûy wyieraê w kolejnoôci rosnâcej.
@endnode
@node S09 "Tress"

Ukîad kart:
  Wszystkie karty wykîadane sâ w 17 wachlarzykach po trzy karty, ostani
 18 wachlarzyk zawiera poczâtkowo jednâ kartë.
Cel gry:
  Wyîoûenie z ukîadu asów bazowych i utworzenie na nich sekwencji rosnâcych
 w odpowiednim kolorze.
Zasady:
  Przenosiê moûna wierzchnie karty wachlarzyków na karty tej samej wysokoôci.
 W jednym wachlarzyku mogâ znajdowaê sië jednoczeônie najwyûej trzy karty.
 Wolne karty z wachlarzyków moûna kîaôê na karty bazowe.
  Jeôli nie ma juû dalszych moûliwoôci przekîadania kart tasujemy karty z
 wachlarzyków i rozkîadamy ponownie poprzez wybranie gadzetu 'Reshuffle'
 Przetasowanie moûna wykonaê dwa razy w ciâgu gry.
Zasady Alternatywne:
 Iloôê dostëpnych przetasowaï moûna ustaliê za pomocâ gadûetu 'Reshuffles'.
@endnode

@node S03 "Monte Carlo"

Ukîad kart:
 20 kart z talonu wykîadane jest w 4 rzëdach po 5 kart w formie prostokâta.
 Reszta kart pozostaje w talonie.
Cel gry:
 Usuniëcie wszystkich kart z ukîadu i talonu.
Zasady:
 Karty usuwamy parami o tej samej wysokoôci (kolor bez znaczenia). Mozna
 usuwaê jedynie pary stykajâce sië bokami lub rogami. Po usuniëciu
 wszystkich moûliwych kart porzâdkujemy ukîad, a nastëpnie uzupeîniamy
 wolne miejsca kartami z talonu (jeôli nie zostaîy juû wyczerpane).
 Czynnoôci te wykonywane sâ przez klikniëcie na talon (lub miejsce
 pozostaîe po talonie gdy nie ma juû kart.
Zasady Alternatywne:
 Moûliwa jest zmiana zasad porzâdkowania talonu, domyôlnie jest to
 porzâdkowanie kolumnami (Vert). Karty sâ porzâdkowane zgodnie ze
 schematem (N - miejsce wykîadania nowych kart z talonu):
  
  # # # # #
  | | | | |
  # # # # #
  | | | | |
  # # # # #
  | | | | |
  # # # # N
 
 W przypadku zmiany schemat ten przedstawia sië odpowiednio:
    Horiz       Snake       Spiral

  #-#-#-#-#   #-#-#-#-N   #-#-#-#-N
              |           |
  #-#-#-#-#   #-#-#-#-#   # #-#-#-#
                      |   | |     |
  #-#-#-#-#   #-#-#-#-#   # #-#-# #
              |           |       |
  #-#-#-#-N   #-#-#-#-#   #-#-#-#-#

@endnode
@node S03b "Monte Carlo 2D"

 Wersja pasjansa Monte Carlo z twóch talii kart. Zasady baz zmian.
@endnode
@node S04 "Sir Tommy"

Ukîad kart:
 Wszystkie karty pozostajâ w talonie.
Cel gry:
 Uîoûenie wszystkich kart na asach w sekwensie rosnâcym w odpowiednim
 kolorze.
Zasady:
 Karty z talonu przeglâdamy raz przekîadajâc po jednej karcie. Jeôli
 przeglâdana karta nie pasuje na karty bazowe naleûy jâ poîoûyê na
 wierzch jednego ze stosów pomocniczych (wierzchniâ kartë kaûdego z
 nich moûna póúniej przenieôê na karty bazowe).
 Jeôli skoïczâ sië karty w talonie i nie ma juû moûliwoôci ich przenoszenia
 moûna zebraê wszystkie stosy, przetasowaê i ponownie przejûeê talon
 (wybierajâc gadûet 'Reshuffle').
Zasady Alternatywne:
 - iloôê moûliwych przetasowaï kart moûna ustaliê od zera do dwóch.
@endnode
@node MAKECARDSET "Tworzenie zestawów kart"

   Zanim stworzysz wîasny zestaw musisz posiadaê wizerunki 52 kart oraz
 kilka dodatkowych w formacie ILBM. Mogâ byê w dowolnej rozdzielczoôci
 (ale wszystkie karty z jadnego zestawu muszâ byê tego samego rozmiaru
 i posiadaê jednakowâ paletë). Przy wyborze rozdzielczoôci najlepiej
 zdecyduj sië na jednâ z tabeli poniûej. Wszystkie karty naleûy umieôciê
 w jednym katalogu i nazwaê wg schematu:

Nazwa pliku Opis karty
      C00   Miejsce na stole (na tej karcie moûesz umieôciê dane o autorze)
      C01   Puste miejsce na stole (zazwyczaj jedynie ramka)
      C02   Koszulka zestawu
      C03   As Trefl
      C04   As Karo
      C05   As Kier
      C06   As Pik
      C07   Dwójka Trefl
      .
      .
      .
      C50   Dama Pik
      C51   Król Trefl
      C52   Król Karo
      C53   Król Kier
      C54   Król Pik
   Karty o numerach 55-58 nie sâ wymagane (jeôli istniejâ w zestawie
 to zostanâ najczëôciej umieszczone w rzëdzie jako miejsca na bazowe asy).
      C55   Miejsce Bazowe I
      C56   Miejsce Bazowe II
      C57   Miejsce Bazowe III
      C58   Miejsce Bazowe IV
  W celu zamiany powyûszych plików na format SXCS naleûe uûyê programu
 MakeCardset:

   MakeCardset <katalog> <plik.cs> <liczba kart> <ox> <oy> <mx> <my>

 katalog     - nazwa katalogu zawierajâcego pliki C??,
 plik.cs     - nazwa utworzonego pliku SXCS,
 liczba kart - liczba plików w katalogu (obecnie 55 lub 59),
 ox, oy      - odstëp miëdzy rzëdami i kolumnami kart,
 mx, my      - maksymalna widoczna czëôê karty w pikselach (nie wiëcej niû
               poîowa wysokoôci/szerokoôci.

  Zalecane wielkoôci kart:

   | W | H |mx|my|ox|oy| iloôê kolumn kart na ekranie szerokoôci 640
---+---+---+--+--+--+--+--------------------------------------------
 1 | 88|130|10|16| 2| 2|  7
 2 | 78|128| 9|16| 2| 2|  8
 3 | 63| 84| 8|12| 1| 1| 10
 4 | 40| 64| 8|10| 0| 0| 16

  W przypadku zestawów kart dla rozdzielczoôci Hires wartoôci H, my, oy
 naleûy podzieliê przez dwa.

@endnode
@node AREXX "Tworzenie wîasnych pasjansów"

   Technicznie skrypty pasjansów sâ zwykîymi skryptami Arexxa, zwykle
majâ charakterystycznâ budowë:
 1.Ustalenie rozkîadu kart na ekranie.
 2.Ustalenie wyglâdu gadûetów
 3.Pëtla DO FOREVER zawierajâca instrukcjë ACTION, w wypadku uûycia
   odpowiedniego gadûetu (najczësciej >Start<) wywoîuje procedurë GAME
 GAME:
  4.Rozîoûenie kart w ukîad poczâtkowy
  5.Pëtla DO FOREVER zawierajâca ACTION i w zalëûnoôci od reakcji
    uûytkownika wykonujâca odpowiednie dziaîanie.
@endnode
@node COMMANDS "Opis interfejsu ARexxa"
Format opisu:
KOMEDA PARAMETR1,PARAMETR2,...,PARAMETRN
 Litery po znaku '/' na koïcu parametru oznaczajâ:
  A - parametr musi zostaê podany,
  K - wartoôê musi byê podana po nazwie parametru,
  N - parametr jast liczbâ caîkowitâ,
  S - przeîâcznik (ustawiany przez uûycie jego nazwy).
 np. ILE/K/N - ten parametr moûna ominâê, w przypadku jego uûycia
 musi byê to liczba podana po sîowie ILE.
 Uwaga. Parametry tekstowe zawierajâce spacje naleûy poza apostrofami
  zawrzeê wewnëtrznie w cudzysîowach np. 'tekst' ale '"t e k s t"'
-----------------------------------------------------------------------------
ACTION
 Najwaûniejsza z komend solitarexx'a. Przekazuje uûytkownikowi sterowanie
 programem aû do momentu gdy wybrany zostanie gadûet lub karta.
 Wynik dziaîaï uûytkownika zapisany jest w zmiennej RESULT w nastëpujâcy
 spoôób:
 1.Wybrany zostaî gadûet Quit lub zaistniaîa inna sytuacja wymagajâca
   zakoïczenia wykonywania skryptu. RESULT = '1', w wypadku otrzymania
   tego wyniku naleûy natychmiast przerwaê wykonywanie skryptu.
 2.Uûytkownik kliknâî lewym przyciskiem nad obszarem jednego ze stosów
   kart. RESULT = '2 <stock> <stockid> <card>', gdzie
   stock - adres wybranego stosu kart,
   stockid - identyfikator wybranego stosu,
   card - adres karty, nad którâ znajdowaî sië wskaúnik myszki (ta karta
          staje sië kartâ wybranâ) lub zero, gdy wskaúnik nie znajdowaî sië
          nad ûadnâ kartâ.
 3.Uûytkownik wybierze gadûet, który przerywa dziaîanie ACTION (np typu
   BUTTON). RESULT = '3 <gadgetnum> <value>', gdzie
   gadgetnum - numer wybranego gadûetu,
   value - nowa wartoôê gadûetu (gadûety BUTTON nie posiadajâ wartoôci).
 Zalecany sposób stosowania ACTION:

 ACTION
 PARSE VAR RESULT act params
 SELECT
    WHEN act = 1 THEN EXIT
    WHEN act = 2 THEN DO
       PARSE VAR params stock id card
       /* tu obsîuga zaleûna od otrzymanych wartoôci stock, id i card */
    END
    WHEN act = 3 THEN DO
       PARSE VAR params num val
       /* tu obsîuga gadûetów */
    END
 END
-----------------------------------------------------------------------------
ADDBUTTON NUM/A/N,LEN/A/N,TEXT/A
 NUM  - numer gadûetu
 LEN  - szerokoôê gadûetu
 TEXT - treôê gadûetu
 Dodaje gadûet typu BUTTON (zwykîy przycisk). Wciôniëcie go zawsze przerywa
 dziaîanie ACTION.
 Od parametrów NUM i LEN zaleûy rozmieszczenie gadûetów na ekranie.
 Jednoczeônie w programie moûe istnieê 96 gadûetów, podzielonych na 16 grup
 po szeôê gadûetów. Kaûda grupa to jedna linia gadûetów. Gadûety o numerach
 0-5 to gadûety z pierwszej linii, 6-11 drugiej itd. Parametr LEN oznacza
 szerokoôê gadûetu w jednostkach wîasnych, przy czym szerokoôê ekranu wynosi
 80 jednostek. Przykîad:
 ADDBUTTON 0 10 'Zero'
 ADDBUTTON 3 15 'Trzy'
 ADDBUTTON 7 20 'Siedem'
 Daje to nastëpujâcy wynik
 linia 1 (0-5), dîugoôê 25
 @{"   Zero    " link 0}@{"      Trzy      " link 0}
 linia 2 (6-11), dîugoôê 20
 @{"      Siedem      " link 0}
-----------------------------------------------------------------------------
ADDCARDS CS/A/N,SHUFFLED/S
 CS       - adres stosu
 Powoduje dodanie 52 kart do podanego stosu. Gdy podany zostanie parametr
 SHUFFLED, karty po dodaniu zostanâ potasowane. W przeciwnym wypadku karty
 zostajâ dodane na wierzch stosu w kolejnoôci od asów do króli. 
-----------------------------------------------------------------------------
ADDCYCLE NUM/A/N,LEN/A/N,ITEMS/A,ACTIVE/N,TEXT,TXLEN/N,HANDLE/S
 NUM    - numer gadûetu
 LEN    - szerokoôê gadûetu
 ITEMS  - lista moûliwych wyborów oddzielonych znakiem '|'
 ACTIVE - opcja z listy wybrana przy tworzeniu gadûetu (numeracja rozpoczyna
          sië od zera)
 TEXT   - opcjonalna nazwa gadûetu wyôwietlana z lewej strony
 TXLEN  - szerokoôê nazwy gadûetu (TEXT)
 Dodaje gadûet typu CYCLE (z obrotowâ strzaîkâ z lewej strony).
 Wciôniëcie go przerywa dziaîanie ACTION, gdy podany jest parametr HANDLE.
 Wartoôciâ gadûetu jest numer aktualnie wybranej pozycji.
 Przykîad:
   ADDCYCLE 1 7 'A|B|C' 1 'Jeden' 7
 linia 1 (0-5), dîugoôê 39
 @{"   Zero    " link 0} Jeden@{"@  B  " link 0}@{"      Trzy      " link 0}
 linia 2 (6-11), dîugoôê 20
 @{"      Siedem      " link 0}
-----------------------------------------------------------------------------
ADDSPACE NUM/A/N,LEN/A/N
 NUM - numer gadûetu
 LEN - szerokoôê
 Dodaje odstëp pomiëdzy gadûetami o podanej szerokoôci.
 Przykîad:
   ADDSPACE 6 15
 linia 1 (0-5), dîugoôê 39
 @{"   Zero    " link 0} Jeden@{"@  B  " link 0}@{"      Trzy      " link 0}
 linia 2 (6-11), dîugoôê 35
                @{"      Siedem      " link 0}
-----------------------------------------------------------------------------
ADDTEXT NUM/A/N,LEN/A/N,TEXT/A,FLAGS/N
 NUM   - numer gadûetu
 LEN   - szerokoôê gadûetu
 TEXT  - treôê gadûetu
 FLAGS - parametr opisujâcy sposób wyôwietlenia tekstu:
   0 - bez ramki
   4 - w ramce, tekst po lewej stronie
   5 - w ramce, tekst po prawej stronie
   6 - w ramce, tekst po ôrodku
 Dodaje gadûet typu TEXT (zwykîy tekst). Nie moûe zostaê wybrany, wiëc
 nigdy nie przerywa ACTION. Wartoôciâ gadûetu jest zawarty w nim tekst.
 Przykîad:
   ADDTEXT 11 12 'Jedenaôcie'
 linia 1 (0-5), dîugoôê 39
 @{"   Zero    " link 0} Jeden@{"@  B  " link 0}@{"      Trzy      " link 0}
 linia 2 (6-11), dîugoôê 47
                @{"      Siedem      " link 0}Jedenaôcie
-----------------------------------------------------------------------------
CARDSELECT CS/A/N,NUMB/A/N,RELATIVE/S,LEAVE/S
 CS   - adres stosu
 NUMB - numer karty
 Zaznacza kartë na stosie jako wybranâ. Jej dziaîanie zaleûne jest od podania
 parametrów RELATIVE i LEAVE
 1. bez parametrów, NUMB równe zero:
    Karta nie zostanie wybrana.
 2. bez parametrów, NUMB dodatnie:
    Zaznaczona zostanie karta NUMB liczâc od góry stosu, jeôli NUMB jest
    wiëksze od liczby kart, wybrana zostanie ostatnia karta.
 3. LEAVE, NUMB dodatnie:
    Zaznaczona zostanie karta NUMB liczâc od góry stosu, jeôli NUMB jest
    wiëksze od liczby kart, ûadna nie zostanie wybrana.
 4. RELATIVE, NUMB zero:
    Wybiera kartë ostatnio wybranâ.
 5. RELATIVE, NUMB ujemne lub dodatnie:
    Zaznaczona zostanie karta NUMB liczâc od wczeôniej wybranej, jeôli NUMB
    jest wiëksze od liczby kart, ûadna nie zostanie wybrana.
 6. RELATIVE, LEAVE, NUMB ujemne lub dodatnie:
    Zaznaczona zostanie karta NUMB liczâc od wczeôniej wybranej, jeôli NUMB
    jest wiëksze od liczby kart, wybrana zostanie karta ostatnia lub pierwsza
    (gdy NUMB jest ujemne).
 Niezaleûnie od zastosowanych parametrów w zmiannej RESULT znajdzie sië
 ciâg pusty ('') jeûeli karta nie zostanie wybrana lub ciâg postaci
  '<kolor> <wartoôê> <status>'
 kolor: wartoôê od 0 do 3 ozanczajâca odpowiednio kiery, piki, kara, trefle,
 wartoôê: liczba od 0 (as) do 12 (król).
 status: 1 gdy karta zwrócona jest koszulkâ do góry w przeciwnym wypadku 0.
 Przykîad:
  Uûytkownik wybraî 10 trefl,
  CARDSELECT mystock 0 RELATIVE
  RESULT jest teraz równy '3 9 0' 
-----------------------------------------------------------------------------
CARDREVERSE CS/A/N
 Odwraca wybranâ kartë na stosie CS.
-----------------------------------------------------------------------------
CLEANUP CS/A/N
 Przenosi wszystkie karty ze wszystkich stosów nie posiadajâcych flagi
 'poza grâ' na stos CS, a nastëpnie je odwraca koszulkâ do góry i tasuje.
-----------------------------------------------------------------------------
ERRBEEP
 Powoduje migniëcie ekranu, powinno byê uûywane dla zasygnalizowania bîëdu
 uûytkownika.
-----------------------------------------------------------------------------
GETGADGET NUM/A/N
 W zmiennej RESULT podaje aktualnâ wartoôê gadûetu o numerze NUM.
-----------------------------------------------------------------------------
MOVECARDS CS/A/N,CS2/A/N,REVERSE/S,ATONCE/S
 Przenosi karty (od pierwszej do karty wybranej przez uûytkownika lub
 funkcjâ CARDSELECT) ze stosu CS na stos CS2. Jeôli podasz parametr
 REVERSE kaûda karta przed przeîoûeniem bëdzie odwracana. ATONCE powoduje,
 ûe karty przekîadane sâ jednoczeônie (pierwsza karta na CS po przeîoûeniu
 bëdzie na CS2 nadal pierwszâ).
-----------------------------------------------------------------------------
NEWSTOCK ID/A/N,FLAGS/A/N,BACK/N,W/N,H/N,WL/N,HL/N,LEN/N,XLEN/N
 Rezerwuje pamiëê na nowy stos.
  ID    - identyfikator stosu (uûywany jedynie przez ACTION)
  FLAGS - parametry stosu w postaci bitów:
  Wartoôê Bit Znaczenie
        1   0 Stos bëdzie wyôwietlany poziomo,
        2   1 Karty bëdâ ukîadane w górë (kolumna) lub w lewo (rzâd),
        4   2 Klikniëcie na górnâ kartë stosu gdy jest zakryta powoduje
              jej odsîoniëcie (bez przerywania ACTION)
        8   3 przerwanie ACTION ma miejsce jedynie gdy zostanie wybrana
              pierwsza karta
       16   4 nie przerywa ACTION jeôli wybrana zostanie karta odwrócona
              koszulkâ do góry
       32   5 wartoôê XLEN bëdzie dotyczyê wierzchnich kart na stosie
       64   6 stos poza grâ (nie jest uwzglëdniany przez CLEANUP)
      128   7 stos nie bëdzie wyôwietlany
  BACK  - oznaczenie pustego stosu
          0   - ramka
          1   - ramka z notatkâ o autorze
          2-5 - miejsca z rysunkami przeznaczone na karty bazowe
  W, H  - pozycja x i y stosu na ekranie wyraûona w kartach
  WL,HL - pozycja x i y stosu na ekranie wyraûona w maksymalnych widocznych
          czëôciach karty.
  LEN   - dîugoôê stosu - iloôê moûliwych do wyôwietlenia maksymalnie
          widocznych kart (nie licâc pierwszej).
  XLEN  - iloôê kart na stosie, które muszâ byê widoczne (wartoôê nie
          moûe byê wiëksza od LEN)
 Funkcja zwraca adres stosu w zmiennej RESULT, wartoôê ta przekazywana jest
 do wszystkich funkcji wymagajâcych stosu jako parametru.
 Przykîad:
 (Wspóîrzëdne podawane w formacie H.HL i W.WL, strzaîki pokazyjâ kierunek
  rozkîadania kart)

 0.0  1.0  1.5  2.5
 |    |    |    |

 #####---> #####   - 0.0
 #####---> #####
 ##1##---> ##2##
 #####---> #####
 #####---> #####
                   - 1.0
 ^^^^^
 |||||
 |||||
 ##### <---#####   - 1.7
 ##### <---#####
 ##3## <---##4##
 ##### <---#####
 ##### <---#####
                   - 2.7
 Mamy wiëc 4 stosy kart o wspóîrzëdnych i dîugoôci (W.WL,H.HL,LEN):
  1 - 0.0, 0.0, 5
  2 - 1.5, 0.0, 0
  3 - 0.0, 1.7, 7
  4 - 1.5, 1.7, 5
 Caîy ukîad ma wymiary 2.5, 2.7 uûywamy wiëc
  SCREENSIZE 2 5 2 7
 Kierunki rozkîadania kart to odpowiednio:
  1 - rzâd          - FLAGS = 1
  2 - bez znaczenia - FLAGS = 0 (gdyby LEN >0 oznaczaîo by to kolumnë)
  3 - w górë        - FLAGS = 2
  4 - rzâd i w lewo - FLAGS = 1+2 = 3
 Wszystkie stosy bëdâ miaîy standartowe tîo BACK = 0
  NEWSTOCK 1 1 0 0 0 0 0 5
  stos1 = RESULT
  NEWSTOCK 2 0 0 1 0 5 0 0
  stos2 = RESULT
  NEWSTOCK 3 2 0 0 1 0 7 7
  stos3 = RESULT
  NEWSTOCK 4 3 0 1 1 5 7 5
  stos4 = RESULT
-----------------------------------------------------------------------------
REDRAW ON/S,OFF/S
 REDRAW OFF - zatrzymuje odôwierzanie ekranu grafiki
 REDRAW ON  - przywraca odôwierzanie
-----------------------------------------------------------------------------
SCREENSIZE W/A/N,W2/A/N,H/A/N,H2/A/N
 Zmienia wielkoôê ekranu graficznego na takâ która mieôci:
 W kart oraz W2 maksymalnych widocznych czëôci kart w poziomie.
 H kart oraz H2 maksymalnych widocznych czëôci kart w pionie.
-----------------------------------------------------------------------------
SELECTGUI F/A/N
 Powoduje wyôwietlenie gadûetów na ekranie. Poniewaû dodawanie gadûetów
 nie powoduje ich wyôwietlania, instrukcja ta powinna byê wywoîana zawsze
 pomiëdzy zmianâ gadûetów, a przekazaniem sterowania uûytkownikowi (ACTION).
 Parametr F jest 16-bitowâ maskâ. Ustawienie bitu spowoduje wyôwietlenie
 linii o numerze tego bitu na ekranie. Przykîad:
   F =  3 = %0000000000000011 - Pojwiâ sië linie 1 i 2
   F =  4 = %0000000000000100 - Tylko linia 3
   F = 14 = %0000000000001110 - Linie 2,3 i 4
 Linie zawsze bëdâ pokazywane w rosnâcej kolejnoôci (nie moûna wyôwietliê
 np. linii w kolejnoôci 3,2,4). Naleûy pamiëtaê, ûe linia, która bëdzie na
 ekranie pierwszâ (w naszym przykîadzie odpowiednio pierwsza, trzecia, druga)
 nie moûe byê dîuûsza niû 52 jednostki (28 to gadûety Load, Quit i Prefs).
-----------------------------------------------------------------------------
SETGADGET NUM/A/N,VAL/N/K,STR/K
 Ustawia wartoôê gadûetu o numerze NUM, przy czym wartoôci tekstowe podaje
 sië po sîowie STR, a liczbowe po VAL. Przykîad:
   SETGADGET 1 VAL 2
   SETGADGET 11 STR '"Nowy tekst"'
 linia 1 (0-5), dîugoôê 39
 @{"   Zero    " link 0} Jeden@{"@  C  " link 0}@{"      Trzy      " link 0}
 linia 2 (6-11), dîugoôê 47
                @{"      Siedem      " link 0}Nowy Tekst
-----------------------------------------------------------------------------
SHUFFLECARDS CS/A/N
 Tasuje karty na stosie CS.
-----------------------------------------------------------------------------
WHICHCARD CS/A/N,VISIBLE/S
 Podaje numer zaznaczonej karty liczâc od doîu stosu CS. Parametr VISIBLE
 powoduje pomijanie zakrytych kart podczas zliczania.
@endnode
@node TUTORIAL "Przykîad skryptu"
  Poniûszy skrypt jest znacznie uproszczonâ wersjâ pasjansu Klondike z
 dodanym komentarzem.

 Zaczynamy od komentarza oraz wîâczenia przekazywania wyników funkcji:
@{fg shine}
/* Klondike Tutorial */
OPTIONS RESULTS
@{fg text}
 Krok pierwszy to opracowanie wyglâdu gadûetów w naszym przykîadze bëdzie
 to wyglâdaê nastëpujâco:
 linia 1 (0-5), dîugoôê 10+42,
 @{" Start " link 0}    Klondike Tutorial
 linia 2 (6-11), dîugoôê 28+12+12,
               Cards at once@{"@|   One   " link 0}
 linia 3 (12-17), dîugoôê 10+42,
 @{" Abort " link 0}    Klondike Tutorial
 Linie 1 i 2 bëdâ pokazywane przed rozpoczëciem gry, a trzecia podczas gry.
 Maska bitowa dla SELECTGUI bëdzie równa
 przed grâ    - %0011 - 3
 w czasie gry - %0100 - 4
 W linii drugiej uûyta zostaîa funkcja ADDSPACE w celu umieszczenia gadûetu
 na ôrodku ekranu.
@{fg shine}
ADDBUTTON 0 10 "Start"
ADDTEXT 4 42 '"Klondike Tuturial"' 6
ADDSPACE 6 28
ADDCYCLE 10 12 '"One|Two|Three"' 0 '"Cards at once"' 12
ADDBUTTON 12 10 "Abort"
ADDTEXT 14 42 '"Klondike Tuturial"' 6
SELECTGUI 3
@{fg text}
 Drugi krok to rozmieszczenie stosów kart na ekranie.
 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0
 |   |   |   |   |   |   |   |

 ### ### ### ### ### ### ### - 0.0
 #4# #4# #4# #4# #4# #4# #4#
 ### ### ### ### ### ### ###
 ||| ||| ||| ||| ||| ||| ||| - 1.0
 ||| ||| ||| ||| ||| ||| |||
 VVV VVV VVV VVV VVV VVV VVV
 ### ###->   ### ### ### ### - 1.15
 #5# #6#->   #0# #1# #2# #3#
 ### ###->   ### ### ### ###
                             - 2.15
  Zauwaû, ûe nie jest uwzglëdniona dîugoôê stosu 6. Zostaîo tu wykorzystane
 to, ûe 0.2 jest zawsze mniejsze lub równe 1.0, wiëc stos 6 nie zakryje
 nigdy swoimi kartami stosu 0 poniewaû jego dîugoôê wynosi 2.
 Wszystkie górne stosy zostaîy oznaczone czwórkâ, gdyû ich obsîuga jest
 w skrypcie bëdzie identyczna.
  W stosie 6 wykorzystana zostaîa XLEN równa 2 aby pierwsze trzy karty
 (dwie + wierzchnia karta) byîy zawsze widoczne, poniewaû dîugoôê stosu
 wynosi równieû 2 nie ma juû miejsca na wyôwietlanie innych kart.
 Parametr FLAGS zostaî ustawiony na 32 aby karty XLEN byîy wierzchnimi.
  Na stosach 4 ustawione zostaîy bity odpowiedzialne za automatyczne
 odkrywanie zakrytych kart (4) i uniemoûliwienie ich wybrania (16)
  Przed tworzeniem stosów zostaîa okreôlona wielkoôê ekranu (2.15, 7.0).

@{fg shine}
SCREENSIZE 2 15 7 0
DO i = 0 TO 6
	NEWSTOCK 4 16+4 0 i 0 0 0 15
	stock.i = RESULT
END
DO i = 0 TO 3
	NEWSTOCK i 0 i+2 i+3 1 0 15
	base.i = RESULT
END
NEWSTOCK 5 0 1 0 1 0 15
deck = RESULT
NEWSTOCK 6 32+1 1 1 1 0 15 2 2
waste = RESULT
@{fg text}
 Teraz wystarczy dodaê talië potasowanych kart.
@{fg shine}
ADDCARDS deck SHUFFLED
@{fg text}
  Wreszcie pëtla gîówna. Zostaîa znaczâco uproszczona. Nie obsîugiwane jest
 wybieranie kart (act = 2). Nie jest takûe sprawdzany numer wciôniëtego
 gadûetu (jest tylko Start, gadûet typu CYCLE przerywa ACTION tylko jeôli
 podamy parametr HANDLE), zawsze wywoîywana jest procedura GAME.
@{fg shine}
DO FOREVER
	ACTION
	PARSE VAR RESULT act rest
	IF act = 1 THEN EXIT
	IF act = 3 THEN CALL GAME
END
@{fg text}
  Na poczâtku procedury GAME zmianiamy gadûety (SELECTGUI), sprzâtamy
 karty na stos <deck> (CLEANUP) oraz ustawiamy wartoôci poczâtkowe zmiennych
   sel      - adres wybranego stosu,
   fin.     - tablica zawirajâca w polach fin.0 - fin.3 wartoôê karty,
              jakâ naleûy poîoûyê na pole bazowe w odpowiednim kolorze
              (poczâtkowo 0, gdyû as ma wartoôê 0),
   gadcards - odczytywana z gadûetu 'Cards at once' (numer 10)
@{fg shine}
GAME:
	CLEANUP deck
	SELECTGUI 4
	sel = 0
	fin. = 0
	GETGADGET 10
	gadcards = RESULT +1
@{fg text}
 Rozkîadanie kart w ukîad poczâtkowy realizowane za pomocâ pëtli.
 Na stos o numerze 'i' przekîadane jest 'i' kart zakrytych i jedna odkryta.
@{fg shine}
	DO i=0 TO 6
		CARDSELECT deck i
		MOVECARDS deck stock.i
		CARDSELECT deck 1
		MOVECARDS deck stock.i REVERSE
	END
@{fg text}
  W tym miejscu nastëpuje pëtla podobna do gîównej, tym razem z obsîugâ
 wyboru karty na ekranie graficznym. Naciôniëcie gadûetu powoduje
 zmianë gadûetów i powrót z podprogramu.
  Instrukcja SELECT w czëôci dla act = 2 rozpatruje nastëpujâce wypadki:
 1. klikniëcie na stos talonu - powoduje to wywoîanie DODECK
 2. ûaden stos nie jest wybrany (sel=0), a klikniëta zostaîa karta (card>0)
    na stosie nie bazowym (sid>3) - klikniëty stos staje sië wybranym
 3. zostaî wybrany ponownie ten sam stos - wywoîanie procedury DOBASE
 4. zostaî wybrany stos roboczy - wywoîanie procedury DOSTOCK
 5. zostaî wybrany stos bazowy - wywoîanie procedury DOBASE
@{fg shine}
	DO FOREVER
		ACTION
		PARSE VAR RESULT act stock sid card
		IF act = 1 THEN EXIT
		IF act = 2 THEN SELECT
			WHEN sid = 5 THEN CALL DODECK
			WHEN sel = 0 & card>0 & sid>3 THEN sel = stock
			WHEN sel = stock THEN CALL DOBASE
			WHEN sel>0 & sid = 4 THEN CALL DOSTOCKS
			WHEN sel>0 & sid < 4 THEN CALL DOBASE
			OTHERWISE NOP
		END
		IF act = 3 THEN DO
			SELECTGUI 3
			RETURN
		END
	END
RETURN
@{fg text}
  Procedura DODECK sprawdza czy w talonie sâ jeszcze karty jeôli tak 
 przekîadamy liczë kart okreôlonâ w zmiennej gadcards z talonu na stos,
 w przeciwnym wypadku wszystkie karty przekîadamy ponownie do talonu.
@{fg shine}
DODECK:
	CARDSELECT deck gadcards
	IF RESULT = '' THEN DO
		CARDSELECT waste 52
		MOVECARDS waste deck REVERSE
	END
	ELSE MOVECARDS deck waste REVERSE
RETURN
@{fg text}
  Procedura DOSTOCKS odpowiada za przekîadanie kart pomiëdzy stosami
 roboczymi.
  Sprawdzamy zaznaczonâ kartë na poprzednio wybranym stosie i pierwszâ
 na aktualnie wybranym. Jeôli na tym ostatnim nie ma kart dokonujemy
 przeîoûenia w wypadku gdy wczeôniej wybrana karta jest królem.
 Jeûeli na ostatnio wybranym stosie znajdujâ sië karty sprawdzamy zgodnoôê
 wartoôci i kolorów przed przeîoûeniem kart.
@{fg shine}
DOSTOCKS:
	CARDSELECT sel 0 RELATIVE
	PARSE VAR RESULT stype sval xx
	CARDSELECT stock 1
	PARSE VAR RESULT type val xx
	IF type = '' THEN DO
		IF sval = 12 THEN MOVECARDS sel stock ATONCE
	END
	ELSE DO
		IF (val = sval+1) & (((type + stype) // 2) = 1) THEN MOVECARDS sel stock ATONCE
	END
	sel = 0
RETURN
@{fg text}
  Jeôli wybrany zostanie stos bazowy sprawdzamy czy pierwsza karta z
 wybranego stosu pasuje na odpowiedni stos bazowy. W przypadku zgodnoôci
 zwiëkszamy licznik tego stosu i przekîadamy kartë
@{fg shine}
DOBASE:
	CARDSELECT sel 1
	PARSE VAR RESULT type val xx
	IF val = fin.type THEN DO
		fin.type = fin.type +1
		MOVECARDS sel base.type
	END
	sel = 0
RETURN
@{fg text}
  To juû wszystko. Peîny skrypt przykîadu zapisany jest w katalogu Scripts
 pod nazwâ Tutorial.srx.

@endnode

@node ADDRESS "Gdzie jest autor?"

 Michaî Szafraïski
 ul. J. Korczaka 21/15
 08-400 Garwolin

 e-mail: ms174761@students.mimuw.edu.pl

@endnode

@node HISTORY "Historia"

 v1.1  28.07.97
    - WHICHCARD, ERRBEEP, zmieniony REDRAW,
    - rozdzielczoôê ekranu z GUI taka jak ekranu gîównego,
    - wybór czcionki w preferencjach,
    - GUI wraûliwe na szerokoôê ekranu oraz wysokoôê czcionki,
    - obsîuga nazw gadûetów CYCLE,
    - poprawiona obsîuga bîëdów,
    - skrypt jako parametr CLI lub Workbench'a,
 v1.0  14.07.97
    - CLEANUP, GETGADGET, CARDREVERSE - nowe instrukcje arexx'a,
    - CARDSELECT zmieniony kod, nowe parametry,
    - SELECTGUI - uûywa maski bitowej zamiast pierwszej linii i dîugoôci
        interfejsu,
    - powstaîy dwa pierwsze sensowne skrypty - Klondike i Demon
 v0.50 08.07.97
    Wiëkszoôê zaplanowanych funkcji dziaîa w tej wersji. Interfejs
    arexx'a wyposaûony w 14 podstawowych instrukcji w tym obsîuga
    trzech typów gadûetów (button, text, cycle).
 v0.00 - v0.10  07.96
 v0.11 - v0.16  05.97 - 06.97

@endnode

@node FUTURE "Co nowego w przyszîych wersjach ?"

 - efekty dzwiëkowe w formacie 8SVX,
 - obsîuga gadûetów typu STRING, INTEGER, CHECKBOX,
 - ustawienia wîasne skryptu zapisywane przez uûycie Save w preferencjach
   programu (listy wyników, stan gadûetów),
 - ukîad kart opisywany w sposób podobny do rozkîadu gadûetów MUI
   zamiast podawania wspóîrzëdnych i dîugoôci.

 Jeûeli jesteô zainteresowany przyszîymi wersjami programu, przysyîaj
 swoje propozycje, uwagi i sugestie na adres autora.

@endnode
