[script] n0=; ------------------------------------------------ n1=; Pad's $1 with zeros n2=; ------------------------------------------------ n3=alias pad { n4= var %l = $len($1) n5= if (%l == 1) return 0000 $+ $1 n6= if (%l == 2) return 000 $+ $1 n7= if (%l == 3) return 00 $+ $1 n8= if (%l == 4) return 0 $+ $1 n9= return $1 n10=} n11= n12=alias F10 snake n13= n14=alias snake { n15= %width = 320 n16= %height = 200 n17= n18= %scrWidth = $window(-2).w n19= %scrHeight = $window(-2).h n20= n21= %sX = $calc(%width / 2) n22= %sY = $calc(%height / 2) n23= %xSpeed = 0 n24= %ySpeed = 0 n25= n26= %sLen = 5 n27= %tail = n28= %crash = $false n29= %tmp = $calc(%sY * 320 + %sX) n30= n31= window -fkp +bt @snake $calc(%scrWidth / 2 - %width / 2) $calc(%scrHeight / 2 - %height) %width %height n32= drawrect -f @snake 0 1 0 0 %width %height n33= .timer1 0 0 movesnake n34= drawfood n35=} n36= n37=on 1:KEYDOWN:@snake:*:{ n38= if (%crash == $false) { n39= if ($keyval == 38) { n40= %xSpeed = 0 n41= %ySpeed = -4 n42= movesnake n43= } n44= if ($keyval == 40) { n45= %xSpeed = 0 n46= %ySpeed = 4 n47= movesnake n48= } n49= if ($keyval == 37) { n50= %xSpeed = -4 n51= %ySpeed = 0 n52= movesnake n53= } n54= if ($keyval == 39) { n55= %xSpeed = 4 n56= %ySpeed = 0 n57= movesnake n58= } n59= } n60=} n61= n62=alias drawfood { n63= :loop n64= %fX = $calc($rand(0,$calc(%width / 4)) * 4) n65= %fY = $calc($rand(0,$calc(%height / 4)) * 4) n66= n67= if ($getdot(@snake,$calc(%fX + 2),$calc(%fY + 2)) == 0) goto loop n68= n69= drawrect -f @snake 4 1 %fX %fY 4 4 n70=} n71= n72=alias movesnake { n73= if ((%xSpeed != 0) || (%ySpeed != 0)) { n74= n75= %tail = $pad($calc(%sY * %width + %sX)) $+ %tail n76= %tLen = $len(%tail) n77= if ($calc(%tLen / 5) >= %sLen) { n78= %tmp = $mid(%tail,$calc(%tLen - 4),5) n79= %tail = $mid(%tail,1,$calc(%tLen - 5)) n80= } n81= n82= %tX = $int($calc(%tmp % 320)) n83= %tY = $int($calc(%tmp / 320)) n84= n85= %sX = $calc(%sX + %xSpeed) n86= %sY = $calc(%sY + %ySpeed) n87= n88= drawrect -f @snake 0 1 %tX %tY 4 4 n89= n90= %crash = $false n91= %col = $getdot(@snake,$calc(%sX + 2),$calc(%sY + 2)) n92= if (%col == 0) %crash = $true n93= if (%col == 255) { n94= %sLen = $calc(%sLen + 5) n95= drawfood n96= } n97= if ((%sX < 0) || (%sX > %width) || (%sY < 0) || (%sY > %height)) %crash = $true n98= } n99= n100= if (%crash == $false) { n101= drawrect -f @snake 1 1 %sX %sY 4 4 n102= } n103= else { n104= .timer1 off n105= drawtext @snake 2 0 0 Score: %sLen n106= } n107=}