07-04-2003, 12:48 PM
Well i fixed it so you die when u hit the walls but i can't think of a good fix for the up/down movement speed it's due to the 80x25 screen res. i've tried using 80x50 but it flickers for some reason, any1 have a idea?
DEFINT A-Z
TYPE SnakeData
X AS INTEGER
Y AS INTEGER
END TYPE
DIM Snake(3744) AS SnakeData
Tail = 10
Delay = 3
FOR I = 0 TO Tail - 1
Snake(I).X = 40
Snake(I).Y = 11
NEXT
Xa(1) = 1
Xa(2) = -1
Ya(3) = 1
Ya(4) = -1
SCREEN 0, 0, 1, 0
FOR I = 0 TO 15
PALETTE I, I
OUT 968, I
OUT 969, 0
OUT 969, I * 4
OUT 969, 0
NEXT
DO
RANDOMIZE TIMER + (Gx + Gy)
Gx = INT(RND * 20) + 2
Gy = INT(RND * 15) + 2
LOOP UNTIL Gx <> 5 AND Gy <> 5
Snke$ = "Programmed_By_BinaryShocK--"
RANDOMIZE TIMER
DO
M = 1
L = 15
Z = 1
xKey$ = RIGHT$(INKEY$, 1)
IF xKey$ <> "" THEN
SELECT CASE ASC(xKey$)
CASE 77: D = 1
CASE 75: D = 2
CASE 80: D = 3
CASE 72: D = 4
CASE 27: END
END SELECT
END IF
FOR I = Tail - 1 TO 0 STEP -1
SWAP Snake(I), Snake(I + 1)
NEXT
FOR I = 1 TO 80
LOCATE 1, I: PRINT "*"
LOCATE 23, I: PRINT "*"
NEXT
FOR I = 1 TO 23
LOCATE I, 1: PRINT "*"
LOCATE I, 80: PRINT "*"
NEXT
LOCATE Gy, Gx: COLOR 14: PRINT "÷"
Snake(0).X = Snake(1).X + Xa(D)
Snake(0).Y = Snake(1).Y + Ya(D)
IF Snake(0).X = Gx AND Snake(0).Y = Gy THEN
Tail = Tail + 1
Snke$ = Snke$ + STR$(INT(RND * 2))
DO
RANDOMIZE TIMER + (Gx + Gy)
Gx = INT(RND * 78) + 2
Gy = INT(RND * 21) + 2
LOOP UNTIL Gx <> 5 AND Gy <> 5
END IF
FOR I = 1 TO Tail
IF (Snake(I).X = Snake(0).X) AND (Snake(I).Y = Snake(0).Y) AND D THEN
SCREEN 0, 0, 0, 0
CLS
PRINT "Final Score:"; Tail - 10
A$ = INPUT$(1)
END
END IF
NEXT
IF Snake(0).X = 1 THEN Exit Do
IF Snake(0).X = 80 THEN Exit do
IF Snake(0).Y = 1 THEN Exit do
IF Snake(0).Y = 23 THEN Exit do
FOR I = 1 TO Tail - 1
L = L - M
IF (L = 7) OR (L = 15) THEN M = -M
IF Snake(0).X > 0 AND Snake(0).X < 81 AND Snake(0).Y > 0 AND Snake(0).Y < 23 THEN
LOCATE Snake(I).Y, Snake(I).X: COLOR L: PRINT MID$(Snke$, Z, 1)
COLOR 7
END IF
Z = Z + 1
IF Z = LEN(Snke$) + 1 THEN Z = 1
NEXT
LOCATE 23, 2: PRINT (Tail - 10)
LOCATE Snake(0).Y, Snake(0).X: COLOR 15: PRINT CHR$(1)
PCOPY 1, 0
CLS
FOR I = 0 TO Delay - 1
WAIT 986, 8
WAIT 986, 8, 8
NEXT
LOOP
SCREEN 0, 0, 0, 0
CLS
PRINT "Final Score:"; Tail - 10
A$ = INPUT$(1)
END
DEFINT A-Z
TYPE SnakeData
X AS INTEGER
Y AS INTEGER
END TYPE
DIM Snake(3744) AS SnakeData
Tail = 10
Delay = 3
FOR I = 0 TO Tail - 1
Snake(I).X = 40
Snake(I).Y = 11
NEXT
Xa(1) = 1
Xa(2) = -1
Ya(3) = 1
Ya(4) = -1
SCREEN 0, 0, 1, 0
FOR I = 0 TO 15
PALETTE I, I
OUT 968, I
OUT 969, 0
OUT 969, I * 4
OUT 969, 0
NEXT
DO
RANDOMIZE TIMER + (Gx + Gy)
Gx = INT(RND * 20) + 2
Gy = INT(RND * 15) + 2
LOOP UNTIL Gx <> 5 AND Gy <> 5
Snke$ = "Programmed_By_BinaryShocK--"
RANDOMIZE TIMER
DO
M = 1
L = 15
Z = 1
xKey$ = RIGHT$(INKEY$, 1)
IF xKey$ <> "" THEN
SELECT CASE ASC(xKey$)
CASE 77: D = 1
CASE 75: D = 2
CASE 80: D = 3
CASE 72: D = 4
CASE 27: END
END SELECT
END IF
FOR I = Tail - 1 TO 0 STEP -1
SWAP Snake(I), Snake(I + 1)
NEXT
FOR I = 1 TO 80
LOCATE 1, I: PRINT "*"
LOCATE 23, I: PRINT "*"
NEXT
FOR I = 1 TO 23
LOCATE I, 1: PRINT "*"
LOCATE I, 80: PRINT "*"
NEXT
LOCATE Gy, Gx: COLOR 14: PRINT "÷"
Snake(0).X = Snake(1).X + Xa(D)
Snake(0).Y = Snake(1).Y + Ya(D)
IF Snake(0).X = Gx AND Snake(0).Y = Gy THEN
Tail = Tail + 1
Snke$ = Snke$ + STR$(INT(RND * 2))
DO
RANDOMIZE TIMER + (Gx + Gy)
Gx = INT(RND * 78) + 2
Gy = INT(RND * 21) + 2
LOOP UNTIL Gx <> 5 AND Gy <> 5
END IF
FOR I = 1 TO Tail
IF (Snake(I).X = Snake(0).X) AND (Snake(I).Y = Snake(0).Y) AND D THEN
SCREEN 0, 0, 0, 0
CLS
PRINT "Final Score:"; Tail - 10
A$ = INPUT$(1)
END
END IF
NEXT
IF Snake(0).X = 1 THEN Exit Do
IF Snake(0).X = 80 THEN Exit do
IF Snake(0).Y = 1 THEN Exit do
IF Snake(0).Y = 23 THEN Exit do
FOR I = 1 TO Tail - 1
L = L - M
IF (L = 7) OR (L = 15) THEN M = -M
IF Snake(0).X > 0 AND Snake(0).X < 81 AND Snake(0).Y > 0 AND Snake(0).Y < 23 THEN
LOCATE Snake(I).Y, Snake(I).X: COLOR L: PRINT MID$(Snke$, Z, 1)
COLOR 7
END IF
Z = Z + 1
IF Z = LEN(Snke$) + 1 THEN Z = 1
NEXT
LOCATE 23, 2: PRINT (Tail - 10)
LOCATE Snake(0).Y, Snake(0).X: COLOR 15: PRINT CHR$(1)
PCOPY 1, 0
CLS
FOR I = 0 TO Delay - 1
WAIT 986, 8
WAIT 986, 8, 8
NEXT
LOOP
SCREEN 0, 0, 0, 0
CLS
PRINT "Final Score:"; Tail - 10
A$ = INPUT$(1)
END
very F***ing song remains the same
To everyone who sucks-up for the fame
Out of strength you know we speak the truth
Every trend that dies is living proof
MasterMinds Software
To everyone who sucks-up for the fame
Out of strength you know we speak the truth
Every trend that dies is living proof
MasterMinds Software