All pastes #498937 Raw Edit

Stuff

public text v1 · immutable
·published 2007-05-20 19:39 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
  }
}