Listing 5: Die Türme von HanoiCard-Scriptfunction startSt return 100 end startSt function helpSt return 250 end helpSt function goalSt return 400 end goalSt function bottomLine return 250 end bottomLine function anzScheiben return 5 end anzScheiben Script of cd button "Initialize"on mouseUp repeat with i = 1 to anzScheiben() set the loc of cd button i to startSt(), bottomLine()¬ - 24*(anzScheiben() - i) - 13 end repeat end mouseUp Script of cd button "Hanoi"on mouseUp if the hilite of me is TRUE then set the hilite of me to FALSE exit mouseUp end if set the hilite of me to TRUE -- Konstanten-Vorbesetzung put anzScheiben() into hoehe put 1 into startStapel put 2 into zielStapel put 3 into hilfsStapel choose button tool set dragspeed to 100 hanoi hoehe, startStapel, hilfsStapel, zielStapel set the hilite of me to FALSE choose browse tool play boing end mouseUp on hanoi hoehe, start, ziel, hilf if hoehe = 0 then exit hanoi end if hanoi hoehe-1, start, hilf, ziel verlegeScheibe hoehe, start, ziel hanoi hoehe-1, hilf, ziel, start end hanoi on verlegeScheibe hoehe, vonStapel, nachStapel put 0 into stapel put 75 into oben put item 1 of the loc of cd button hoehe into xPos if nachStapel = 1 then -- Anzahl der Scheiben auf Start-Stapel bestimmen repeat with i = 1 to anzScheiben() if item 1 of the loc of cd button i = startSt() then add 1 to stapel end if end repeat -- Scheibe auf Start-Stapel legen: -- erst einmal nach oben schieben drag from the loc of cd button hoehe to xPos, oben -- dann über Start-Stapel drag from xPos, oben to startSt(), oben -- dann nach unten fallen lassen drag from startSt(), oben to startSt(), bottomLine()¬ - 24*stapel - 13 end if if nachStapel = 2 then -- Anzahl der Scheiben auf Hilfs-Stapel bestimmen repeat with i = 1 to anzScheiben() if item 1 of the loc of cd button i = helpSt() then add 1 to stapel end if end repeat -- Scheibe auf Hilfs-Stapel legen: -- erst einmal nach oben schieben drag from the loc of cd button hoehe to xPos, oben -- dann über Hilfs-Stapel drag from xPos, oben to helpSt(), oben -- dann nach unten fallen lassen drag from helpSt(), oben to helpSt(), bottomLine()¬ - 24*stapel - 13 end if if nachStapel = 3 then -- Anzahl der Scheiben auf Ziel-Stapel bestimmen repeat with i = 1 to anzScheiben() if item 1 of the loc of cd button i = goalSt() then add 1 to stapel end if end repeat -- Scheibe auf Ziel-Stapel legen: -- erst einmal nach oben schieben drag from the loc of cd button hoehe to xPos, oben -- dann über Ziel-Stapel drag from xPos, oben to goalSt(), oben -- dann nach unten fallen lassen drag from goalSt(), oben to goalSt(), bottomLine()¬ - 24*stapel - 13 end if end verlegeScheibe Zurück zum Inhaltsverzeichnis |