ZXSnake __qaF******************************************************************** 4ZXSnake by Federico J. Alvarez Valero (05-02-2003) FThis program is free software; you can redistribute it and/or modify Fit under the terms of the GNU General Public License as published by Cthe Free Software Foundation; either version 2 of the License, or %(at your option) any later version. AThis program is distributed in the hope that it will be useful, @but WITHOUT ANY WARRANTY; without even the implied warranty of ?MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .GNU General Public License for more details. CYou should have received a copy of the GNU General Public License =along with this program; if not, write to the Free Software ;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. (F******************************************************************** 2 7 :7 :0 : 353,13 ; 1 ; 7 ; "ZXSnake" 475,9 ; 7 ; 0 ; "Q - ARRIBA" 566,9 ; 7 ; 0 ; "A - ABAJO" 6:7,9 ; 7 ; 0 ; "O - IZQUIERDA" 788,9 ; 7 ; 0 ; "P - DERECHA" 8I10 ,3 ; 7 ; 0 ; "Recoge la mayor cantidad de" 9D11 ,3 ; 7 ; 0 ; "frutas posible y crece" :=12 ,3 ; 7 ; 0 ; "sin chocarte..." ;H15,3 ; 7 ; 0 ; "Pulsa una tecla para jugar" <j$ = =j$ = ""60< FUDG G 75K H(i = 0 7:d :"S"+i,d :i I(i = 0 7:d :"F"+i,d :i Kd60<, 66B, 129, 129, 129, 129, 66B, 60< :serpiente (S) L`24, 60<, 60<, 60<, 126~, 251, 247, 126~ :fruta (F) dDefinicion de variables n0cabezax = 11 :coordenada x de la cabeza x/cabezay = 5 :coordenada y de la cabeza +colax = 5 :coordenada x de la cola +colay = 5 :coordenada y de la cola orientacionx = 1 orientaciony = 0 !p(23,34") :Pantalla 'x(23,34") :Orientacionesx 'y(23,34") :Orientacionesy puntos = 0 comido = 0 maxx = 33! maxy = 22 minx = 0 miny = 0 Inicializacion de la pantalla  1  N21,0 ; 1 ; 7 ; " PUNTOS : " c = minx maxx %p(miny+1,c+1) = 4 %p(maxy+1,c+1) = 4 $c .f = miny maxy 8%p(f+1,minx+1) = 4 B%p(f+1,maxx+1) = 4 Lf '8000@ :Generar la primera fruta *Pintamos la serpiente (posicion inicial) 7 :0 Pintamos el cuerpo c = colax cabezax-1 colay,c ; 0 ; "O" &p(colay+2,c+2) = 3 &x(colay+2,c+2) = 1 &y(colay+2,c+2) = 0 c Pintamos la cabeza #cabezay,cabezax ; 0 ; "" .p(cabezay+2,cabezax+2) = 2 .x(cabezay+2,cabezax+2) = 1  .y(cabezay+2,cabezax+2) = 0 Movemos la serpiente 0 Cambiamos la orientacion 3x(cabezay+2,cabezax+2) = orientacionx 3y(cabezay+2,cabezax+2) = orientaciony Borramos la antigua cabeza cabezay,cabezax ; "O" .p(cabezay+2,cabezax+2) = 3 "cabezax = cabezax + orientacionx "cabezay = cabezay + orientaciony ;p(cabezay+2,cabezax+2) > 1 9900& p(cabezay+2,cabezax+2) = 1 puntos = puntos + 10 :21,10 ; 1 ; 7 ; puntos :comido = 1 :8000@ Pintamos la nueva cabeza cabezay,cabezax ; "" .p(cabezay+2,cabezax+2) = 2 comido = 0 8100 comido = 0 Leemos el teclado a$ = `orientacionx < 1 (a$ = "O"a$ = "o") orientacionx = -1 :orientaciony = 0 `orientacionx > -1 (a$ = "P"a$ = "p") orientacionx = 1 :orientaciony = 0 `orientaciony < 1 (a$ = "Q"a$ = "q") orientacionx = 0 :orientaciony = -1 `orientaciony > -1 (a$ = "A"a$ = "a") orientacionx = 0 :orientaciony = 1 > 3000 @Generacion de frutas J frutax = (*30)+1 T frutay = (*20)+1 ^9p(frutay+2,frutax+2) = 0 8050r h 8010J r!frutay,frutax ; 2 ; "" |,p(frutay+2,frutax+2) = 1  Borramos la cola colay,colax ; " " 5nuevacolax = colax + x(colay+2,colax+2) 5nuevacolay = colay + y(colay+2,colax+2) *p(colay+2,colax+2) = 0 *x(colay+2,colax+2) = 0 *y(colay+2,colax+2) = 0 colax = nuevacolax colay = nuevacolay  &Fin de la partida &/10 ,12 ; 2 ; "SE ACABO..." &911 ,10 ; 2 ; "PUNTUACION : "; puntos &313 ,10 ; 0 ; "Pulsa una tecla" &.Pausa obligada para que se vean los letreros &i = 0 100d &i &i$ = &i$ ""100d & 9940& ~