" Dies ist ein Demoprogramm fuer SCF: Atomium Programmierer: Fritz Hohl, letzte Aenderung: 2.7.91 Programmstart mit <#atomium exec>" " eigener Ordner" #Atomium library " Startwort" #atomium [ " Brett aufbauen: 0 -> weiss, 1 -> schwarz, 2 -> neutral" #brett 64 0 fill #farben 64 2 fill #amZug 0 vardef #spiel 320 320 graphicWindow vardef #spiel fetch [ swap 40 div inc swap 40 div inc #zugMachen exec] whenMouseKlick [ Anleitung\Ende] [ 1 eq [ #Anleitung textWindow drop] [ #spiel fetch close] ifElse] #spiel fetch bindMenu 279 39 40 [ #spiel fetch swap dup 0 swap 320 line] foriBy 279 39 40 [ #spiel fetch swap 0 swap dup 320 swap line] foriBy ] def " Hilfsroutinen" " Die Schwellwertroutine gibt zu jedem Feld die zur Explosion noetige Anzahl an Steinen an" #sw [ dup 1 eq swap 8 eq add swap dup 1 eq swap 8 eq add add 4 swap sub] def #anzahl [ dup2 dec 8 mul add #brett swap peek] def #farbe [ dup2 dec 8 mul add #farben swap peek] def #neueAnzahl [ rot rot dec 8 mul add #brett swap rot poke] def #neueFarbe [ rot rot dec 8 mul add #farben swap rot poke] def #zugMachen [ #farbe exec dup 2 eq [ drop #amZug fetch] if #amZug fetch eq [ #steinSetzen exec #naechsterZug exec] [ drop drop] ifElse] def #steinSetzen [ dup2 #anzahl exec inc #neueAnzahl exec dup2 #amZug fetch #neueFarbe exec dup2 #zeigeFeld exec #anzahl exec 3 copy 3 copy #sw exec eq #explodieren [ drop drop] ifElse] def #explodieren [ dup2 0 #neueAnzahl exec dup2 2 #neueFarbe exec dup2 #zeigeFeld exec dup 8 ne [ 2 copy 2 copy inc #steinSetzen exec] if dup 1 ne [ 2 copy 2 copy dec #steinSetzen exec] if swap dup 8 ne [ dup inc 3 copy #steinSetzen exec] if dup 1 ne [ dec swap #steinSetzen exec] if] def #zeigeFeld [ dup2 dup2 #loescheFeld exec #farbe exec dup 2 lt [ 4 mul rot rot #anzahl exec rot drop swap drop add exec] [ drop drop drop drop drop] ifElse] def #naechsterZug [ #amZug fetch 1 eq [ #amZug 0 store] [ #amZug 1 store] ifElse] def #loescheFeld [ #spiel fetch rot dec 40 mul inc rot dec 40 mul inc 38 38 wipe] def " Routinen zum Kreise zeichnen, hier mit Zahlen als Bezeichner" 1 [ #spiel fetch rot dec 40 mul 20 add rot dec 40 mul 20 add 5 1 circle] def 2 [ #spiel fetch rot dec 40 mul 20 add rot dec 40 mul 20 add 3 ncopy 10 sub 5 1 circle 10 add 5 1 circle] def 3 [ #spiel fetch rot dec 40 mul 20 add rot dec 40 mul 20 add 3 ncopy 3 ncopy 10 sub 5 1 circle 10 add swap 10 sub swap 5 1 circle 10 add swap 10 add swap 5 1 circle] def 4 [ #spiel fetch rot dec 40 mul 20 add rot dec 40 mul 20 add 3 ncopy 3 ncopy 3 ncopy 10 sub swap 10 sub swap 5 1 circle 10 sub swap 10 add swap 5 1 circle 10 add swap 10 add swap 5 1 circle 10 add swap 10 sub swap 5 1 circle] def 5 [ #spiel fetch rot dec 40 mul 20 add rot dec 40 mul 20 add 3 3 circle] def 6 [ #spiel fetch rot dec 40 mul 20 add rot dec 40 mul 20 add 3 ncopy 10 sub 3 3 circle 10 add 3 3 circle] def 7 [ #spiel fetch rot dec 40 mul 20 add rot dec 40 mul 20 add 3 ncopy 3 ncopy 10 sub 3 3 circle 10 add swap 10 sub swap 3 3 circle 10 add swap 10 add swap 3 3 circle] def 8 [ #spiel fetch rot dec 40 mul 20 add rot dec 40 mul 20 add 3 ncopy 3 ncopy 3 ncopy 10 sub swap 10 sub swap 3 3 circle 10 sub swap 10 add swap 3 3 circle 10 add swap 10 add swap 3 3 circle 10 add swap 10 sub swap 3 3 circle] def " Anleitung" #Anleitung [ Atomium\laesst sich in dieser Version mit zwei SpielerInnen spielen. Beide haben\'beliebig' viele Spielsteine von jeweils einheitlicher Farbe zur Verfuegung.\Auf das Spielbrett mit 8 x 8 = 64 Feldern wird abwechselnd ein Steinchen gelegt. Dabei duerfen Steine nur auf Felder mit keinen oder aber mit Steinchen gleicher Farbe gesetzt werden.\Die Felder haben einen 'Explosions-Grad', der erreicht wird, wenn eine bestimmte Anzahl von Steinen auf dem Feld liegen. Bei Eckfeldern lassen zwei Steine das Feld 'explodieren', bei Kantenfeldern drei und bei inneren Feldern vier. Bei einer 'Explosion' verteilen sich die Steine dieses Feldes auf die mit einer Kantenlaenge angrenzenden Felder (jeweils ein Stein wird in eine Richtung `geschleudert`). Befinden sich auf einem angrenzenden Feld Steine der anderen Spielfarbe so aendern diese ihre Farbe.\ Das Spiel ist beendet, wenn eine Spielfarbe voellig vom Spielfeld verschwunden ist.\Im Spielverlauf wird es zu Kettenreaktionen kommen, die mit einem Mal die ganze Spielsituation umaendern: Deshalb niemals aufgeben!] def