All pastes #607200 Raw Edit

Untitled

public text v1 · immutable
·published 2007-07-07 12:52 UTC
rendered paste body
menu * { 
  Pacman:{ 
    window -pdk0 @Pacman -1 -1 614 640 
    drawreplace @Pacman 00 14 
    var %c = 5 | while (%c <= 590) { 
      set %p 58.5 58.5 
      drawrect -f @Pacman 1 1 %c 5 33 33 
      drawrect -f @Pacman 1 1 %c 565 33 33 
      drawrect -f @Pacman 1 1 5 %c 33 33 
      drawrect -f @Pacman 1 1 565 %c 33 33 
      drawdot @Pacman 8 16.5 58.5 58.5 
      inc %c 35 
    } 
    drawtext @pacman 9 arial 15 30 12 Score: 0 
    set %pacdo 2 1-3 1-4 1-5 1-6 1-7 1-8 1-9 1-10 1-11 1-12 1-13 1-14 1-15 1- $+ $& 
      1 2-8 2-15 2- $+ $& 
      1 3-3 3-4 3-5 3-6 3-7 3-8 3-9 3-10 3-11 3-12 3-13 3-15 3- $+ $& 
      1 4-3 4-6 4-10 4-13 4-15 4- $+ $& 
      1 5-2 5-3 5-4 5-5 5-6 5-7 5-8 5-9 5-10 5-11 5-12 5-13 5-14 5-15 5- $+ $& 
      2 6-14 6- $+ $& 
      1 7-2 7-3 7-13 7-14 7-15 7- $+ $& 
      1 8-3 8-13 8-15 8- $+ $& 
      1 9-3 9-13 9-15 9- $+ $& 
      1 10-2 10-3 10-13 10-14 10-15 10- $+ $& 
      1 11-2 11-3 11-4 11-5 11-6 11-7 11-8 11-9 11-10 11-11 11-12 11-13 11-14 11-15 11- $+ $& 
      1 12-3 12-6 12-10 12-13 12-15 12- $+ $& 
      1 13-3 13-4 13-5 13-6 13-7 13-8 13-9 13-10 13-11 13-12 13-13 13-15 13- $+ $& 
      1 14-8 14-15 14- $+ $& 
      1 15-2 15-3 15-4 15-5 15-6 15-7 15-8 15-9 15-10 15-11 15-12 15-13 15-14 15-15 15 
    var %k = 1, %a = 75 75.110 75.145 75.180 75.215 75.250 75.320 75.355 75.390 75.425 75.460 75.495 75.75 110.495 110.75 145.145 145.180 145.250 145.285 145.320 145.390 145.425 145.495 145.40 215.110 215.145 215.180 215.215 215.250 215.320 215.355 215.390 215.425 215.460 215.530 215.145 250.180 250.390 250.425 250.75 285.145 285.425 285.495 285.75 285.75 320.145 320.180 320.390 320.425 320.495 320.145 355.180 355.215 355.250 355.320 355.355 355.390 355.425 355.75 425.145 425.180 425.250 425.285 425.320 425.390 425.425 425.495 425.75 460.495 460.75 495.110 495.145 495.180 495.215 495.250 495.320 495.355 495.390 495.425 495.460 495.495 495 
    while (%k <= $numtok(%a,46)) { 
      drawrect -f @Pacman 1 1 $gettok(%a,%k,46) 33 33 
      inc %k 
    } 
    set %pacrg 320 285 
    set %pacpg 250 285 
    .timerPacRg -m 0 800 pacm 
    drawrect -f @Pacman 4 1 %pacrg 33 33 
    drawrect -f @Pacman 13 1 %pacpg 33 33 
    var %z = 1 
    while (%z <= $numtok(%pacdo,45)) { 
      drawdot @pacman 7 6 $calc($PacPi1($gettok($gettok(%pacdo,%z,45),1,32)) + 18.5) $calc($PacPi1($gettok($gettok(%pacdo,%z,45),2,32)) + 18.5) 
      inc %z 
    } 
  } 
} 
alias pacm { 
  if ($getdot(@Pacman,$calc($gettok(%pacrg,1,32) + 35),$gettok(%pacrg,2,32))) var %zr = %zr $+ . $+ $calc($gettok(%pacrg,1,32) + 35) $gettok(%pacrg,2,32),46) 
  if ($getdot(@Pacman,$calc($gettok(%pacrg,1,32) - 35),$gettok(%pacrg,2,32))) var %zr = %zr $+ . $+ $calc($gettok(%pacrg,1,32) - 35) $gettok(%pacrg,2,32),46) 
  if ($getdot(@Pacman,$gettok(%pacrg,1,32),$calc($gettok(%pacrg,2,32) + 35))) var %zr = %zr $+ . $+ $gettok(%pacrg,1,32) $calc($gettok(%pacrg,2,32) + 35),46) 
  if ($getdot(@Pacman,$gettok(%pacrg,1,32),$calc($gettok(%pacrg,2,32) - 35))) var %zr = %zr $+ . $+ $gettok(%pacrg,1,32) $calc($gettok(%pacrg,2,32) - 35),46) 
  if ($getdot(@Pacman,$calc($gettok(%pacpg,1,32) + 35),$gettok(%pacpg,2,32))) var %zp = %zp $+ . $+ $calc($gettok(%pacpg,1,32) + 35) $gettok(%pacpg,2,32),46) 
  if ($getdot(@Pacman,$calc($gettok(%pacpg,1,32) - 35),$gettok(%pacpg,2,32))) var %zp = %zp $+ . $+ $calc($gettok(%pacpg,1,32) - 35) $gettok(%pacpg,2,32),46) 
  if ($getdot(@Pacman,$gettok(%pacpg,1,32),$calc($gettok(%pacpg,2,32) + 35))) var %zp = %zp $+ . $+ $gettok(%pacpg,1,32) $calc($gettok(%pacpg,2,32) + 35),46) 
  if ($getdot(@Pacman,$gettok(%pacpg,1,32),$calc($gettok(%pacpg,2,32) - 35))) var %zp = %zp $+ . $+ $gettok(%pacpg,1,32) $calc($gettok(%pacpg,2,32) - 35),46) 
  drawreplace @pacman 4 14 
  drawreplace @pacman 13 14 
  set %pacrg $gettok(%zr,$r(1,$numtok(%zr,46)),46) 
  set %pacpg $gettok(%zp,$r(1,$numtok(%zp,46)),46) 
  if (($getdot(@pacman,$calc($gettok(%pacpg,1,32) + 18),$calc($gettok(%pacpg,2,32) + 18)) == 65535) || ($getdot(@pacman,$calc($gettok(%pacrg,1,32) + 18),$calc($gettok(%pacrg,2,32) + 18)) == 65535)) { 
    .timerpac* off 
    unset %pac* 
    set %over $true 
    drawtext @pacman 11 arial 50 170 300 Game over! 
  } 
  else { 
    drawrect -f @pacman 4 1 %pacrg 33 33 
    drawrect -f @pacman 13 1 %pacpg 33 33 
    var %z = 1 
    while (%z <= $numtok(%pacdo,45)) { 
      drawdot @pacman 7 6 $calc($PacPi1($gettok($gettok(%pacdo,%z,45),1,32)) + 18.5) $calc($PacPi1($gettok($gettok(%pacdo,%z,45),2,32)) + 18.5) 
      inc %z 
    } 
  } 
} 
on *:keydown:@Pacman:37,38,39,40:{ 
  if ((!%PaCli) && (!%over)) { 
    if ($keyval == 37) var %z = $calc($gettok(%p,1,32) - 35) $gettok(%p,2,32) 
    if ($keyval == 38) var %z = $gettok(%p,1,32) $calc($gettok(%p,2,32) - 35) 
    if ($keyval == 39) var %z = $calc($gettok(%p,1,32) + 35) $gettok(%p,2,32) 
    if ($keyval == 40) var %z = $gettok(%p,1,32) $calc($gettok(%p,2,32) + 35) 
    if ($getdot(@Pacman,$gettok(%z,1,32),$gettok(%z,2,32))) { 
      set %p %z 
      if (($getdot(@pacman,$gettok(%p,1,32),$gettok(%p,2,32)) == 255) || ($getdot(@pacman,$gettok(%p,1,32),$gettok(%p,2,32)) == 16711935)) { 
        .timerpac* off 
        unset %pac* 
        set %over $true 
        drawtext @pacman 11 arial 50 170 300 Game over! 
      } 
      else { 
        drawreplace @pacman 08 14 
        if ($istok(%PacDo,$PacPi2($calc($gettok(%p,1,32) - 18.5)) $PacPi2($calc($gettok(%p,2,32) - 18.5)),45)) { 
          set %PacDo $remtok(%PacDo,$PacPi2($calc($gettok(%p,1,32) - 18.5)) $PacPi2($calc($gettok(%p,2,32) - 18.5)),45) 
          inc %PacSc 
          drawrect -f @Pacman 1 1 75 5 33 33 
          drawtext @pacman 9 arial 15 30 12 Score: %PacSc 
          if (%PacSc >= 125) { 
            .timerpac* off 
            unset %pac* 
            set %over $true 
            drawtext @pacman 11 arial 50 170 300 You won! 
          } 
        } 
        drawdot @Pacman 8 16.5 %p 
        set %PaCli $true | .timer -m 1 600 unset %PaCli 
        var %z = 1 
        while (%z <= $numtok(%pacdo,45)) { 
          drawdot @pacman 7 6 $calc($PacPi1($gettok($gettok(%pacdo,%z,45),1,32)) + 18.5) $calc($PacPi1($gettok($gettok(%pacdo,%z,45),2,32)) + 18.5) 
          inc %z 
        } 
      } 
    } 
  } 
} 
alias PacPi1 { 
  if ($1 isnum 1) return 40 
  elseif ($1 isnum 2) return 75 
  elseif ($1 isnum 3) return 110 
  elseif ($1 isnum 4) return 145 
  elseif ($1 isnum 5) return 180 
  elseif ($1 isnum 6) return 215 
  elseif ($1 isnum 7) return 250 
  elseif ($1 isnum 8) return 285 
  elseif ($1 isnum 9) return 320 
  elseif ($1 isnum 10) return 355 
  elseif ($1 isnum 11) return 390 
  elseif ($1 isnum 12) return 425 
  elseif ($1 isnum 13) return 460 
  elseif ($1 isnum 14) return 495 
  elseif ($1 isnum 15) return 530 
} 
alias PacPi2 { 
  if ($1 isnum 40) return 1 
  elseif ($1 isnum 75) return 2 
  elseif ($1 isnum 110) return 3 
  elseif ($1 isnum 145) return 4 
  elseif ($1 isnum 180) return 5 
  elseif ($1 isnum 215) return 6 
  elseif ($1 isnum 250) return 7 
  elseif ($1 isnum 285) return 8 
  elseif ($1 isnum 320) return 9 
  elseif ($1 isnum 355) return 10 
  elseif ($1 isnum 390) return 11 
  elseif ($1 isnum 425) return 12 
  elseif ($1 isnum 460) return 13 
  elseif ($1 isnum 495) return 14 
  elseif ($1 isnum 530) return 15 
} 
on *:CLOSE:*:{ 
  if ($target == @Pacman) { 
    unset %pac* 
    .timerPac* off 
    unset %over 
  } 
}