alias -l setupgame { window -p +tfn @Fences 50 50 407 325 @Fences clear @Fences if (%Fences.RPlayer == 4) { window -e +b @FencesTalk 50 374 407 100 @FencesTalk } drawfill @Fences 3 3 5 5 %Loop.Count.Y = 1 :LoopY %Loop.Count.X = 1 :LoopX drawdot -n @Fences 1 2 $calc(%Loop.Count.X * 20) $calc(%Loop.Count.Y * 20) inc -u1 %Loop.Count.X if (%Loop.Count.X < 20) { goto LoopX } inc -u1 %Loop.Count.Y if (%Loop.Count.Y < 15) { goto LoopY } drawdot @Fences %Fences.BColor = $getdot(@Fences,1,1) %Fences.LScore = 0 %Fences.RScore = 0 } ON 1:CLOSE:@FENCE*: { window -c @Fences window -c @FencesTalk sockclose FenceSock sockclose FenceServ } menu @Fences { sclick { if (%Fences.Turn == L) { AddLine $mouse.X $Mouse.Y %Fences.LPlayer if ($result == GGOOD) { if (%Fences.RName != Computer) { sockwrite -tn FenceSock MOV $mouse.X $Mouse.Y %Fences.LPlayer } else { if (%Fences.Turn == R) { ; Do computer move here :AnotherTurn FencesComputerMove %Fences.RPlayer if (%Fences.Turn == R) { goto AnotherTurn } } } } } else { echo @FencesTalk ERR Other players turn } } } alias -l AddLine { if ($1 !isnum) || ($2 !isnum) || ($3 !isnum) { return } set -u2 %Fence.Mouse.Y $2 set -u2 %Fence.Mouse.X $1 if (%Fence.Mouse.X < 19) || (%Fence.Mouse.Y < 19) || (%Fence.Mouse.X > 380) || (%Fence.Mouse.Y > 280) { return } if (($calc((%Fence.Mouse.X - $roundtowenty(%Fence.Mouse.X)) ^ 2) < 9) && ($calc((%Fence.Mouse.Y - $roundtowenty(%Fence.Mouse.Y)) ^ 2) > 9)) && ($getdot(@Fences,$calc($rounduowenty(%Fence.mouse.x) - 2),$calc($rounduowenty(%Fence.mouse.y) - 8)) == %fences.BColor) { drawline @Fences $3 1 $calc($rounduowenty(%Fence.mouse.x) - 2) $calc($rounduowenty(%Fence.mouse.y) - 2) $calc($rounduowenty(%Fence.mouse.x) - 2) $calc($rounduowenty(%Fence.mouse.y) - 22) %Fences.Turn = $iif(%Fences.Turn == R,L,R) if $checksquare(Y,%Fence.Mouse.X,%Fence.Mouse.Y,$3) && (%Fences.Style == 1) { %Fences.Turn = $iif(%Fences.Turn == R,L,R) } WriteScores %Fences.Turn return GGOOD } elseif ($calc((%Fence.Mouse.X - $roundtowenty(%Fence.Mouse.X)) ^ 2) > 9) && ($calc((%Fence.Mouse.Y - $roundtowenty(%Fence.Mouse.Y)) ^ 2) < 9) && ($getdot(@Fences,$calc($roundowenty(%Fence.mouse.x) + 10),$calc($roundtowenty(%Fence.mouse.y) - 2)) == %fences.BColor) { drawline @Fences $3 1 $calc($roundowenty(%Fence.mouse.x) - 2) $calc($roundtowenty(%Fence.mouse.y) - 2) $calc($roundowenty(%Fence.mouse.x) + 18) $calc($roundtowenty(%Fence.mouse.y) - 2) %Fences.Turn = $iif(%Fences.Turn == R,L,R) if $checksquare(X,%Fence.Mouse.X,%Fence.Mouse.Y,$3) && (%Fences.Style == 1) { %Fences.Turn = $iif(%Fences.Turn == R,L,R) } WriteScores %Fences.Turn return GGOOD } elseif ($calc((%Fence.Mouse.X - $roundtowenty(%Fence.Mouse.X)) ^ 2) < 9) && ($calc((%Fence.Mouse.Y - $roundtowenty(%Fence.Mouse.Y)) ^ 2) < 9) { beep } return BAD } alias -l roundtowenty return $iif($calc($$1 % 20) >= 10 , $calc($$1 + $calc(20 - $calc($$1 % 20))) , $calc($$1 - $calc($$1 % 20))) alias -l roundowenty return $calc($$1 - $calc($$1 % 20)) alias -l rounduowenty return $roundowenty($calc($$1 + 16)) alias -l CheckSquare { set -u1 %Fences.Return $false if (($1 != X) || ($1 != Y)) && (($3 !isnum) || ($2 !isnum) || ($4 !isnum)) { return } if ($1 == X) { if ($isfence($getdot(@Fences, $2, $calc($roundtowenty($3) - 22)),$getdot(@Fences, $2, $calc($roundtowenty($3) - 2)),$getdot(@Fences, $calc($roundowenty($2) - 2), $calc($3 - 18)),$getdot(@Fences, $calc($roundowenty($2) + 18), $calc($3 - 18)))) && ($getdot(@Fences, $calc($rounduowenty($2) - 10), $calc($rounduowenty($3) - 10)) == %Fences.BColor) { if ($4 == %Fences.LPlayer) { inc %Fences.LScore } | else { inc %Fences.RScore } drawdot @Fences $4 8 $calc($rounduowenty($2) - 10) $calc($rounduowenty($3) - 10) set -u1 %Fences.Return $true } if ($isfence($getdot(@Fences, $2, $calc($roundtowenty($3) +18 )),$getdot(@Fences, $2, $calc($roundtowenty($3) - 2)),$getdot(@Fences, $calc($roundowenty($2) - 2), $calc($3 + 2)) ,$getdot(@Fences, $calc($roundowenty($2) + 18), $calc($3 + 2)))) && ($getdot(@Fences, $calc($rounduowenty($2) - 10), $calc($rounduowenty($3) + 10)) == %Fences.BColor) { if ($4 == %Fences.LPlayer) { inc %Fences.LScore } | else { inc %Fences.RScore } drawdot @Fences $4 8 $calc($rounduowenty($2) - 10) $calc($rounduowenty($3) + 10) set -u1 %Fences.Return $true } } else { if ($isfence($getdot(@Fences, $calc($rounduowenty($2) - 20), $calc($roundowenty($3) - 2)), $getdot(@Fences, $calc($rounduowenty($2) - 20), $calc($roundowenty($3) + 18)), $getdot(@Fences, $calc($roundtowenty($2) - 22),$3), $getdot(@Fences, $calc($roundtowenty($2) - 2), $3))) && ($getdot(@Fences, $calc($roundtowenty($2) - 10), $calc($roundowenty($3) + 10)) == %Fences.BColor) { if ($4 == %Fences.LPlayer) { inc %Fences.LScore } | else { inc %Fences.RScore } drawdot @Fences $4 8 $calc($roundtowenty($2) - 10) $calc($roundowenty($3) + 10) set -u1 %Fences.Return $true } if ($isfence($getdot(@Fences, $rounduowenty($2), $calc($roundowenty($3) - 2)),$getdot(@Fences, $rounduowenty($2), $calc($roundowenty($3) + 18)),$getdot(@Fences, $calc($roundtowenty($2) - 2), $3),$getdot(@Fences, $calc($roundtowenty($2) + 18), $3))) && ($getdot(@Fences, $calc($roundtowenty($2) + 10), $calc($roundowenty($3) + 10)) == %Fences.BColor) { if ($4 == %Fences.LPlayer) { inc %Fences.LScore } | else { inc %Fences.RScore } drawdot @Fences $4 8 $calc($roundtowenty($2) + 10) $calc($roundowenty($3) + 10) set -u1 %Fences.Return $true } } return %Fences.Return } alias -l isfence { if ($1 !isnum) || ($2 !isnum) || ($3 !isnum) || ($4 !isnum) { return } if ($1 != 0) && ($1 != %Fences.BColor) && ($2 != 0) && ($2 != %Fences.BColor) && ($3 != 0) && ($3 != %Fences.BColor) && ($4 != 0) && ($4 != %Fences.BColor) { return $true } else { return $false } } ON 1:SOCKLISTEN:FenceServ: { sockaccept FenceSock sockwrite -tn FenceSock PLYR $me %Fences.LPlayer $lof($script) sockwrite -tn FenceSock GAME %Fences.Style SetupGame } ON 1:SOCKREAD:FenceSock: { if ($sockerr > 0) return :nextread sockread %Fences.temp if (%Fences.temp != $null) { if ($gettok(%Fences.Temp,1,32) == PLYR) { if ($lof($script) != $gettok(%Fences.Temp,4,32)) { echo @FencesTalk ERR: Possible Version Conflict! } %Fences.RPlayer = $gettok(%Fences.Temp,3,32) %Fences.RName = $gettok(%Fences.Temp,2,32) %Fences.LName = $me writescores %Fences.Turn } elseif ($gettok(%Fences.Temp,1,32) == GAME) { %Fences.Style = $gettok(%Fences.Temp,2,32) } elseif ($gettok(%Fences.Temp,1,32) == MOV) { if (%Fences.Turn != L) { AddLine $gettok(%Fences.temp,2-,32) } else { sockwrite -tn $sockname ERR Other players Turn } } elseif ($gettok(%Fences.Temp,1,32) == MESG) { echo %Fences.RPlayer @FencesTalk < $+ $gettok(%Fences.temp,2,32) $+ > $gettok(%Fences.temp,3-,32) } elseif ($gettok(%Fences.Temp,1,32) == ACT) { echo %Fences.RPlayer @FencesTalk * $gettok(%Fences.temp,2,32) $gettok(%Fences.temp,3,32) } } if ($sockbr == 0) return goto nextread } alias -l StartFences { unset %Fences.* if ($1 == REM) { if ($?="Enter IP" == $null) { beep return } sockopen FenceSock $! 7393 %Fences.LPlayer = 4 %Fences.Turn = R } else { if ($1 == OLD) { %Fences.Style = 0 } | else { %Fences.Style = 1 } if ($2 !isnum) { if ($portfree(7393)) { sockclose fenceserv } socklisten FenceServ 7393 %Fences.Turn = L %Fences.LPlayer = 2 } else { %Fences.LPlayer = 2 %Fences.RPlayer = $2 + 4 %Fences.Turn = L %Fences.LName = $me %Fences.RName = Computer setupgame writescores %Fences.turn } } } ON 1:SOCKOPEN:FenceSock: { sockwrite -tn $sockname PLYR $me %Fences.LPlayer $lof($script) setupgame } ON 1:INPUT:@FENCE*: { if ($1 == /me) || ($left($1,1) != /) { if ($1 == /me) { sockwrite -tn FenceSock ACT %Fences.LName $2- echo %Fences.LPlayer @Fencestalk * %Fences.LName $2- } else { sockwrite -tn FenceSock MESG %Fences.LName $1- echo %Fences.LPlayer @Fencestalk < $+ %Fences.LName $+ > $1- } halt } } alias -l WriteScores { drawrect -f @Fences 1 1 0 287 420 25 if ($1 == L) { drawrect -f @Fences 3 1 211 289 210 25 drawrect -f @Fences 0 1 0 289 209 25 } elseif ($1 == R) { drawrect -f @Fences 3 1 0 289 209 25 drawrect -f @Fences 0 1 211 289 210 25 } else { drawrect -f @Fences 3 1 0 289 209 25 drawrect -f @Fences 3 1 211 289 210 25 } %Fences.Garbage = %Fences.LName $+ : %Fences.LScore drawtext -c @Fences %Fences.LPlayer Arial 16 10 288 $width(%Fences.Garbage,Arial,16,0,0) 16 %Fences.Garbage set -u1 %Fences.Garbage %Fences.RName $+ : %Fences.RScore set -u1 %Fences.GarbageWidth $width(%Fences.Garbage,Arial,16,0,0) drawtext -c @Fences %Fences.RPlayer Arial 16 $calc(397 - %Fences.GarbageWidth) 288 %Fences.GarbageWidth 16 %Fences.Garbage if ($calc(%Fences.RScore + %Fences.LScore) >= 234) && ($1 != E) { EndFences } } ON 1:SOCKCLOSE:FenceSock { echo @FencesTalk Socket Closed! } alias BeginTheFences { window -p +tfn @Fences 50 50 407 325 @OFences clear @Fences drawfill @Fences 3 3 5 5 %Fences.Garbage = Fence the Cows! set -u1 %Fences.GarbageWidth $width(%Fences.Garbage,Arial,38,0,0) drawtext -c @Fences 8 Arial 38 $calc($int($calc($window(@Fences).w / 2)) - $int($calc(%Fences.GarbageWidth / 2))) 15 %Fences.GarbageWidth 38 %Fences.Garbage drawrect -f @Fences 8 1 20 250 100 20 150 250 100 20 280 250 100 20 %Fences.Garbage = Singles! set -u1 %Fences.GarbageWidth $width(%Fences.Garbage,Arial,18,0,0) drawtext -c @Fences 1 Arial 18 $calc(20 + ($int($calc(100 / 2)) - $int($calc(%Fences.GarbageWidth / 2)))) 252 %Fences.GarbageWidth 20 %Fences.Garbage %Fences.Garbage = Multiplayer! set -u1 %Fences.GarbageWidth $width(%Fences.Garbage,Arial,18,0,0) drawtext -c @Fences 1 Arial 18 $calc(150 + ($int($calc(100 / 2)) - $int($calc(%Fences.GarbageWidth / 2)))) 252 %Fences.GarbageWidth 20 %Fences.Garbage set -u1 %Fences.Garbage Exit! set -u1 %Fences.GarbageWidth $width(%Fences.Garbage,Arial,18,0,0) drawtext -c @Fences 1 Arial 18 $calc(280 + ($int($calc(100 / 2)) - $int($calc(%Fences.GarbageWidth / 2)))) 252 %Fences.GarbageWidth 20 %Fences.Garbage } alias BeginTheFencesMulti { window -p +tfn @Fences 50 50 407 325 @MFences clear @Fences drawfill @Fences 3 3 5 5 %Fences.Garbage = Fence the Cows! set -u1 %Fences.GarbageWidth $width(%Fences.Garbage,Arial,38,0,0) drawtext -c @Fences 8 Arial 38 $calc($int($calc($window(@Fences).w / 2)) - $int($calc(%Fences.GarbageWidth / 2))) 15 %Fences.GarbageWidth 38 %Fences.Garbage drawrect -f @Fences 8 1 20 250 100 20 150 250 100 20 280 250 100 20 %Fences.Garbage = Server! set -u1 %Fences.GarbageWidth $width(%Fences.Garbage,Arial,18,0,0) drawtext -c @Fences 1 Arial 18 $calc(20 + ($int($calc(100 / 2)) - $int($calc(%Fences.GarbageWidth / 2)))) 252 %Fences.GarbageWidth 20 %Fences.Garbage %Fences.Garbage = Client! set -u1 %Fences.GarbageWidth $width(%Fences.Garbage,Arial,18,0,0) drawtext -c @Fences 1 Arial 18 $calc(150 + ($int($calc(100 / 2)) - $int($calc(%Fences.GarbageWidth / 2)))) 252 %Fences.GarbageWidth 20 %Fences.Garbage set -u1 %Fences.Garbage Exit! set -u1 %Fences.GarbageWidth $width(%Fences.Garbage,Arial,18,0,0) drawtext -c @Fences 1 Arial 18 $calc(280 + ($int($calc(100 / 2)) - $int($calc(%Fences.GarbageWidth / 2)))) 252 %Fences.GarbageWidth 20 %Fences.Garbage } alias BeginTheFencesSingle { window -p +tfn @Fences 50 50 407 325 @SFences clear @Fences drawfill @Fences 3 3 5 5 %Fences.Garbage = Fence the Cows! set -u1 %Fences.GarbageWidth $width(%Fences.Garbage,Arial,38,0,0) drawtext -c @Fences 8 Arial 38 $calc($int($calc($window(@Fences).w / 2)) - $int($calc(%Fences.GarbageWidth / 2))) 15 %Fences.GarbageWidth 38 %Fences.Garbage drawrect -f @Fences 8 1 20 250 100 20 150 250 100 20 280 250 100 20 drawrect -f @Fences 8 1 20 220 100 20 150 220 100 20 280 220 100 20 %Fences.Garbage = Easy! set -u1 %Fences.GarbageWidth $width(%Fences.Garbage,Arial,18,0,0) drawtext -c @Fences 1 Arial 18 $calc(20 + ($int($calc(100 / 2)) - $int($calc(%Fences.GarbageWidth / 2)))) 222 %Fences.GarbageWidth 20 %Fences.Garbage %Fences.Garbage = Normal! set -u1 %Fences.GarbageWidth $width(%Fences.Garbage,Arial,18,0,0) drawtext -c @Fences 1 Arial 18 $calc(150 + ($int($calc(100 / 2)) - $int($calc(%Fences.GarbageWidth / 2)))) 222 %Fences.GarbageWidth 20 %Fences.Garbage set -u1 %Fences.Garbage Difficult! set -u1 %Fences.GarbageWidth $width(%Fences.Garbage,Arial,18,0,0) drawtext -c @Fences 1 Arial 18 $calc(280 + ($int($calc(100 / 2)) - $int($calc(%Fences.GarbageWidth / 2)))) 222 %Fences.GarbageWidth 20 %Fences.Garbage %Fences.Garbage = Main! set -u1 %Fences.GarbageWidth $width(%Fences.Garbage,Arial,18,0,0) drawtext -c @Fences 1 Arial 18 $calc(20 + ($int($calc(100 / 2)) - $int($calc(%Fences.GarbageWidth / 2)))) 252 %Fences.GarbageWidth 20 %Fences.Garbage %Fences.Garbage = Impossible! set -u1 %Fences.GarbageWidth $width(%Fences.Garbage,Arial,18,0,0) drawtext -c @Fences 1 Arial 18 $calc(150 + ($int($calc(100 / 2)) - $int($calc(%Fences.GarbageWidth / 2)))) 252 %Fences.GarbageWidth 20 %Fences.Garbage set -u1 %Fences.Garbage Exit! set -u1 %Fences.GarbageWidth $width(%Fences.Garbage,Arial,18,0,0) drawtext -c @Fences 1 Arial 18 $calc(280 + ($int($calc(100 / 2)) - $int($calc(%Fences.GarbageWidth / 2)))) 252 %Fences.GarbageWidth 20 %Fences.Garbage } menu @OFences { uclick: { if ($inrect($mouse.x, $mouse.y, 20, 250, 100, 20)) { BeginTheFencesSingle } elseif ($inrect($Mouse.X, $Mouse.Y, 150, 250, 100, 20)) { BeginTheFencesMulti } elseif ($inrect($Mouse.X, $Mouse.Y, 280, 250, 100, 20)) { window -c @Fences } } } menu @MFences { uclick: { if ($inrect($mouse.x, $mouse.y, 20, 250, 100, 20)) { StartFences } elseif ($inrect($Mouse.X, $Mouse.Y, 150, 250, 100, 20)) { StartFences Rem } elseif ($inrect($Mouse.X, $Mouse.Y, 280, 250, 100, 20)) { window -c @Fences } } } menu @SFences { uclick: { if ($inrect($mouse.x, $mouse.y, 20, 220, 100, 20)) { StartFences Game 1 } elseif ($inrect($Mouse.X, $Mouse.Y, 150, 220, 100, 20)) { StartFences Game 2 } elseif ($inrect($Mouse.X, $Mouse.Y, 280, 220, 100, 20)) { StartFences Old 3 } if ($inrect($mouse.x, $mouse.y, 20, 250, 100, 20)) { BeginTheFences } elseif ($inrect($Mouse.X, $Mouse.Y, 150, 250, 100, 20)) { StartFences Old 4 } elseif ($inrect($Mouse.X, $Mouse.Y, 280, 250, 100, 20)) { window -c @Fences } } } alias -l FencesComputerMove { set -u2 %Fences.RedoCounter 0 if (%Fences.RPlayer == 5) { :RedoLine %Fences.Move = $iif($rand(0,100) > 50, Y, X) %Fences.Move.X = $rand(1,19) %Fences.move.Y = $rand(1,14) if (%Fences.Move == X) { AddLine $calc($iif(%Fences.Move.X == 19,18,%Fences.Move.X) * 20 + 5) $calc(%Fences.Move.Y * 20) %Fences.RPlayer if ($result != GGOOD) { goto RedoLine } } else { addline $Calc(%Fences.Move.X * 20) $calc($iif(%Fences.Move.Y == 14,13,%Fences.Move.Y) * 20 + 5) %Fences.RPlayer if ($result != GGOOD) { goto RedoLine } } } elseif (%Fences.Rplayer == 6) { :RedoLine inc -u1 %Fences.RedoCounter %Fences.Move = $iif($rand(0,100) > 50, Y, X) %Fences.Move.X = $rand(1,19) %Fences.move.Y = $rand(1,14) if (%Fences.Move == X) { if (($CheckFences(X1,$calc($iif(%Fences.Move.X == 19,18,%Fences.Move.X) * 20 + 5),$calc(%Fences.Move.Y * 20)) > 2) || ($CheckFences(X1,$calc($iif(%Fences.Move.X == 19,18,%Fences.Move.X) * 20 + 5),$calc(%Fences.Move.Y * 20)) == 1)) && (($CheckFences(X2,$calc($iif(%Fences.Move.X == 19,18,%Fences.Move.X) * 20 + 5),$calc(%Fences.Move.Y * 20)) == 1) || ($CheckFences(X2,$calc($iif(%Fences.Move.X == 19,18,%Fences.Move.X) * 20 + 5),$calc(%Fences.Move.Y * 20)) > 2)) || (%Fences.RedoCounter > 800) { AddLine $calc($iif(%Fences.Move.X == 19,18,%Fences.Move.X) * 20 + 5) $calc(%Fences.Move.Y * 20) %Fences.RPlayer if ($result != GGOOD) { goto RedoLine } } else { goto RedoLine } } else { if (($CheckFences(Y1,$Calc(%Fences.Move.X * 20),$calc($iif(%Fences.Move.Y == 14,13,%Fences.Move.Y) * 20 + 5)) == 1) || ($CheckFences(Y1,$Calc(%Fences.Move.X * 20),$calc($iif(%Fences.Move.Y == 14,13,%Fences.Move.Y) * 20 + 5)) > 2)) && (($CheckFences(Y2,$Calc(%Fences.Move.X * 20),$calc($iif(%Fences.Move.Y == 14,13,%Fences.Move.Y) * 20 + 5)) == 1) || ($CheckFences(Y2,$Calc(%Fences.Move.X * 20),$calc($iif(%Fences.Move.Y == 14,13,%Fences.Move.Y) * 20 + 5)) > 2)) || (%Fences.RedoCounter > 800) { addline $Calc(%Fences.Move.X * 20) $calc($iif(%Fences.Move.Y == 14,13,%Fences.Move.Y) * 20 + 5) %Fences.RPlayer if ($result != GGOOD) { goto RedoLine } } else { goto RedoLine } } } elseif (%Fences.Rplayer == 7) { set -u1 %Fences.Temp $rand(1,100) if (%Fences.Temp < 33) { if ($checkforsquares) { goto JumpOut } inc -u1 %Fences.LoopX if (%Fences.LoopX < 20) { goto LoopX } inc -u1 %Fences.LoopY if (%Fences.LoopY < 14) { goto LoopY } } :RedoLine if (%Fences.RedoCounter == 200) { inc %Fences.Freaked } inc -u1 %Fences.RedoCounter %Fences.Move = $iif($rand(0,100) > 50, Y, X) %Fences.Move.X = $rand(1,19) %Fences.move.Y = $rand(1,14) if (%Fences.Move == X) { if ((($CheckFences(X1,$calc($iif(%Fences.Move.X == 19,18,%Fences.Move.X) * 20 + 5),$calc(%Fences.Move.Y * 20)) > 2) || ($CheckFences(X1,$calc($iif(%Fences.Move.X == 19,18,%Fences.Move.X) * 20 + 5),$calc(%Fences.Move.Y * 20)) == 1)) && (($CheckFences(X2,$calc($iif(%Fences.Move.X == 19,18,%Fences.Move.X) * 20 + 5),$calc(%Fences.Move.Y * 20)) == 1) || ($CheckFences(X2,$calc($iif(%Fences.Move.X == 19,18,%Fences.Move.X) * 20 + 5),$calc(%Fences.Move.Y * 20)) > 2)) || (%Fences.RedoCounter > 800)) || (%Fences.Freaked > 5) { AddLine $calc($iif(%Fences.Move.X == 19,18,%Fences.Move.X) * 20 + 5) $calc(%Fences.Move.Y * 20) %Fences.RPlayer if ($result != GGOOD) { goto RedoLine } } else { goto RedoLine } } else { if ((($CheckFences(Y1,$Calc(%Fences.Move.X * 20),$calc($iif(%Fences.Move.Y == 14,13,%Fences.Move.Y) * 20 + 5)) == 1) || ($CheckFences(Y1,$Calc(%Fences.Move.X * 20),$calc($iif(%Fences.Move.Y == 14,13,%Fences.Move.Y) * 20 + 5)) > 2)) && (($CheckFences(Y2,$Calc(%Fences.Move.X * 20),$calc($iif(%Fences.Move.Y == 14,13,%Fences.Move.Y) * 20 + 5)) == 1) || ($CheckFences(Y2,$Calc(%Fences.Move.X * 20),$calc($iif(%Fences.Move.Y == 14,13,%Fences.Move.Y) * 20 + 5)) > 2)) || (%Fences.RedoCounter > 800)) || (%Fences.Freaked > 5) { addline $Calc(%Fences.Move.X * 20) $calc($iif(%Fences.Move.Y == 14,13,%Fences.Move.Y) * 20 + 5) %Fences.RPlayer if ($result != GGOOD) { goto RedoLine } } else { goto RedoLine } } :JumpOut } elseif (%Fences.Rplayer == 8) { if ($checkforsquares) { goto JumpOut } inc -u1 %Fences.LoopX if (%Fences.LoopX < 20) { goto LoopX } inc -u1 %Fences.LoopY if (%Fences.LoopY < 14) { goto LoopY } :RedoLine if (%Fences.RedoCounter == 200) { inc %Fences.Freaked } inc -u1 %Fences.RedoCounter %Fences.Move = $iif($rand(0,100) > 50, Y, X) %Fences.Move.X = $rand(1,19) %Fences.move.Y = $rand(1,14) if (%Fences.Move == X) { if ((($CheckFences(X1,$calc($iif(%Fences.Move.X == 19,18,%Fences.Move.X) * 20 + 5),$calc(%Fences.Move.Y * 20)) > 2) || ($CheckFences(X1,$calc($iif(%Fences.Move.X == 19,18,%Fences.Move.X) * 20 + 5),$calc(%Fences.Move.Y * 20)) == 1)) && (($CheckFences(X2,$calc($iif(%Fences.Move.X == 19,18,%Fences.Move.X) * 20 + 5),$calc(%Fences.Move.Y * 20)) == 1) || ($CheckFences(X2,$calc($iif(%Fences.Move.X == 19,18,%Fences.Move.X) * 20 + 5),$calc(%Fences.Move.Y * 20)) > 2)) || (%Fences.RedoCounter > 800)) || (%Fences.Freaked > 5) { AddLine $calc($iif(%Fences.Move.X == 19,18,%Fences.Move.X) * 20 + 5) $calc(%Fences.Move.Y * 20) %Fences.RPlayer if ($result != GGOOD) { goto RedoLine } } else { goto RedoLine } } else { if ((($CheckFences(Y1,$Calc(%Fences.Move.X * 20),$calc($iif(%Fences.Move.Y == 14,13,%Fences.Move.Y) * 20 + 5)) == 1) || ($CheckFences(Y1,$Calc(%Fences.Move.X * 20),$calc($iif(%Fences.Move.Y == 14,13,%Fences.Move.Y) * 20 + 5)) > 2)) && (($CheckFences(Y2,$Calc(%Fences.Move.X * 20),$calc($iif(%Fences.Move.Y == 14,13,%Fences.Move.Y) * 20 + 5)) == 1) || ($CheckFences(Y2,$Calc(%Fences.Move.X * 20),$calc($iif(%Fences.Move.Y == 14,13,%Fences.Move.Y) * 20 + 5)) > 2)) || (%Fences.RedoCounter > 800)) || (%Fences.Freaked > 5) { addline $Calc(%Fences.Move.X * 20) $calc($iif(%Fences.Move.Y == 14,13,%Fences.Move.Y) * 20 + 5) %Fences.RPlayer if ($result != GGOOD) { goto RedoLine } } else { goto RedoLine } } :JumpOut } } alias -l EndFences { window -p +tfn @Fences 50 50 407 325 @FFences clear @Fences drawfill @Fences 3 3 5 5 %Fences.Garbage = Fence the Cows! set -u1 %Fences.GarbageWidth $width(%Fences.Garbage,Arial,38,0,0) drawtext -c @Fences 8 Arial 38 $calc($int($calc($window(@Fences).w / 2)) - $int($calc(%Fences.GarbageWidth / 2))) 15 %Fences.GarbageWidth 38 %Fences.Garbage drawrect -f @Fences 8 1 20 250 100 20 280 250 100 20 %Fences.Garbage = Start Over set -u1 %Fences.GarbageWidth $width(%Fences.Garbage,Arial,18,0,0) drawtext -c @Fences 1 Arial 18 $calc(20 + ($int($calc(100 / 2)) - $int($calc(%Fences.GarbageWidth / 2)))) 252 %Fences.GarbageWidth 20 %Fences.Garbage %Fences.Garbage = Exit! set -u1 %Fences.GarbageWidth $width(%Fences.Garbage,Arial,18,0,0) drawtext -c @Fences 1 Arial 18 $calc(280 + ($int($calc(100 / 2)) - $int($calc(%Fences.GarbageWidth / 2)))) 252 %Fences.GarbageWidth 20 %Fences.Garbage writescores E if (%Fences.LScore != %Fences.RScore) { %Fences.Garbage = Congratultaions! set -u1 %Fences.GarbageWidth $width(%Fences.Garbage,Arial,25,0,0) drawtext -c @Fences 8 Arial 25 $calc($int($calc($window(@Fences).w / 2)) - $int($calc(%Fences.GarbageWidth / 2))) 80 %Fences.GarbageWidth 25 %Fences.Garbage %Fences.Garbage = $iif(%Fences.LScore > %Fences.RScore, %Fences.LName, %Fences.RName) set -u1 %Fences.GarbageWidth $width(%Fences.Garbage,Arial,25,0,0) drawtext -c @Fences 8 Arial 25 $calc($int($calc($window(@Fences).w / 2)) - $int($calc(%Fences.GarbageWidth / 2))) 120 %Fences.GarbageWidth 25 %Fences.Garbage } else { %Fences.Garbage = DraW! set -u1 %Fences.GarbageWidth $width(%Fences.Garbage,Arial,25,0,0) drawtext -c @Fences 8 Arial 25 $calc($int($calc($window(@Fences).w / 2)) - $int($calc(%Fences.GarbageWidth / 2))) 80 %Fences.GarbageWidth 25 %Fences.Garbage } unset %Fences.* halt } ON 1:LOAD: { BeginTheFences } alias -l CheckFences { set -u1 %Fences.Return 0 if (($1 != X1) || ($1 != X2) || ($1 != Y1) || ($1 != Y2)) && (($3 !isnum) || ($2 !isnum)) { return } if ($1 == X1) { if ($getdot(@Fences, $2, $calc($roundtowenty($3) - 22)) == %Fences.BColor) { inc %Fences.Return } if ($getdot(@Fences, $2, $calc($roundtowenty($3) - 2)) == %Fences.BColor) { inc %Fences.Return } if ($getdot(@Fences, $calc($roundowenty($2) - 2), $calc($3 - 18)) == %Fences.BColor) { inc %Fences.Return } if ($getdot(@Fences, $calc($roundowenty($2) + 18), $calc($3 - 18)) == %Fences.BColor) { inc %Fences.Return } } elseif ($1 == X2) { if ($getdot(@Fences, $2, $calc($roundtowenty($3) +18)) == %Fences.BColor) { inc %Fences.Return } if ($getdot(@Fences, $2, $calc($roundtowenty($3) - 2)) == %Fences.BColor) { inc %Fences.Return } if ($getdot(@Fences, $calc($roundowenty($2) - 2), $calc($3 + 2)) == %Fences.BColor) { inc %Fences.Return } if ($getdot(@Fences, $calc($roundowenty($2) + 18), $calc($3 + 2)) == %Fences.BColor) { inc %Fences.Return } } elseif ($1 == Y1) { if ($getdot(@Fences, $calc($rounduowenty($2) - 20), $calc($roundowenty($3) - 2)) == %Fences.BColor) { inc %Fences.Return } if ($getdot(@Fences, $calc($rounduowenty($2) - 20), $calc($roundowenty($3) + 18)) == %Fences.BColor) { inc %Fences.Return } if ($getdot(@Fences, $calc($roundtowenty($2) - 22),$3) == %Fences.BColor) { inc %Fences.Return } if ($getdot(@Fences, $calc($roundtowenty($2) - 2), $3) == %Fences.BColor) { inc %Fences.Return } } elseif ($1 == Y2) { if ($getdot(@Fences, $rounduowenty($2), $calc($roundowenty($3) - 2)) == %Fences.BColor) { inc %Fences.Return } if ($getdot(@Fences, $rounduowenty($2), $calc($roundowenty($3) + 18)) == %Fences.BColor) { inc %Fences.Return } if ($getdot(@Fences, $calc($roundtowenty($2) - 2), $3) == %Fences.BColor) { inc %Fences.Return } if ($getdot(@Fences, $calc($roundtowenty($2) + 18), $3) == %Fences.BColor) { inc %Fences.Return } } return %Fences.Return } alias -l CheckSides { if ($1 !isnum) || ($2 !isnum) { return } set -u1 %Fences.Return 4 set -u1 %Fences.Return1 $false ;Top set -u1 %Fences.Return2 $false ;Bottom set -u1 %Fences.Return3 $false ;Left set -u1 %Fences.Return4 $false ;Right if ($getdot(@Fences, $calc($rounduowenty($1) - 20), $calc($roundowenty($2) - 2)) == %Fences.BColor) { dec -u1 %Fences.Return set -u1 %Fences.Return1 $true } if ($getdot(@Fences, $calc($rounduowenty($1) - 20), $calc($roundowenty($2) + 18)) == %Fences.BColor) { dec -u1 %Fences.Return set -u1 %Fences.Return2 $true } if ($getdot(@Fences, $calc($roundtowenty($1) - 22),$2) == %Fences.BColor) { dec -u1 %Fences.Return set -u1 %Fences.Return3 $true } if ($getdot(@Fences, $calc($roundtowenty($1) - 2), $2) == %Fences.BColor) { dec -u1 %Fences.Return set -u1 %Fences.Return4 $true } return %Fences.Return %Fences.Return1 %Fences.Return2 %Fences.Return3 %Fences.Return4 } alias -l CheckForSquares { %Fences.LoopY = 1 %Fences.LoopX = 1 :LoopY %Fences.LoopX = 1 :LoopX set -u1 %Fences.Temp $CheckSides($calc(%Fences.LoopX * 20), $calc(%Fences.LoopY * 20 + 5)) if ($gettok(%Fences.Temp,1,32) == 3) { if ($gettok(%Fences.Temp, 2, 32) == $true) { AddLine $Calc(%Fences.LoopX * 20 - 15) $Calc(%Fences.LoopY * 20) %Fences.RPlayer return $true } if ($gettok(%Fences.Temp, 3, 32) == $true) { AddLine $Calc(%Fences.LoopX * 20 - 15) $Calc(%Fences.LoopY * 20 + 20) %Fences.RPlayer return $true } if ($gettok(%Fences.Temp, 4, 32) == $true) { AddLine $Calc(%Fences.LoopX * 20 - 20) $Calc(%Fences.LoopY * 20 + 5) %Fences.RPlayer return $true } if ($gettok(%Fences.Temp, 5, 32) == $true) { AddLine $Calc(%Fences.LoopX * 20) $Calc(%Fences.LoopY * 20 + 5) %Fences.RPlayer return $true } } inc -u1 %Fences.LoopX if (%Fences.LoopX < 20) { goto LoopX } inc -u1 %Fences.LoopY if (%Fences.LoopY < 14) { goto LoopY } return $false } menu @FFences { uclick: { if ($inrect($mouse.x, $mouse.y, 20, 250, 100, 20)) { BeginTheFences } elseif ($inrect($Mouse.X, $Mouse.Y, 280, 250, 100, 20)) { window -c @Fences } } }