DECLARE SUB MoveBarre (Sens AS INTEGER, Incr AS INTEGER)
DECLARE SUB MoveBalle ()
TYPE TpSens
X AS INTEGER
Y AS INTEGER
END TYPE
TYPE TpBalle
X AS INTEGER
Y AS INTEGER
END TYPE
DIM SHARED Sens AS TpSens
DIM SHARED Balle AS TpBalle
DIM SHARED Position AS INTEGER
DIM SHARED ImageBarre(400) AS INTEGER
DIM SHARED FuturTmp AS LONG
CONST Gauche = 0
CONST Droite = 1
Balle.X = 2
Balle.Y = 2
Sens.X = 20
Sens.Y = 20
FuturTmp = TIMER + 0.5
SCREEN 7
FOR A = 1 TO 5
FOR B = 1 TO 80
READ Couleur
PSET (B, A), Couleur
NEXT
NEXT
GET (1, 1)-(80, 5), ImageBarre
CLS
PUT (0, 195), ImageBarre
DO
Key$ = INKEY$
Temps = TIMER
IF Key$ = CHR$(0) + CHR$(75) THEN CALL MoveBarre(Gauche, 10)
IF Key$ = CHR$(0) + CHR$(77) THEN CALL MoveBarre(Droite, 10)
IF TIMER = FuturTmp THEN CALL MoveBalle
LOOP UNTIL Key$ = CHR$(27)
DATA 10,00,10,00,10,10,00,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,00,10,10,00,10,00
DATA 00,10,00,10,10,00,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,00,10,10,00,10,00,10
DATA 10,00,10,00,10,10,00,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,00,10,10,00,10,00
DATA 00,10,00,10,10,00,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,00,10,10,00,10,00,10
DATA 10,00,10,00,10,10,00,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,10,00,10,00,10,00,10,00,10,00,10,10,00,10,00
SUB MoveBalle
FuturTmp = TIMER + 0.5
Balle.X = Balle.X + Sens.X
Balle.Y = Balle.Y + Sens.Y
IF Balle.X < 2 THEN
Balle.X = 2
Sens.X = 20
ELSEIF Balle.Y < 2 THEN
Balle.Y = 2
Sens.Y = 20
ELSEIF Balle.X > 318 THEN
Balle.X = 318
Sens.X = -20
ELSEIF Balle.Y > 198 THEN
IF Balle.X > Position AND Balle.X < Position + 80 THEN
Balle.Y = 198
Sens.Y = -20
ELSE
PRINT "Game Over"
END
END IF
END IF
CLS
CIRCLE (Balle.X, Balle.Y), 4
PUT (Position, 195), ImageBarre
END SUB
SUB MoveBarre (Sens AS INTEGER, Incr AS INTEGER)
SELECT CASE Sens
CASE Gauche
Position = Position - Incr
CASE Droite
Position = Position + Incr
END SELECT
IF Sens = Gauche AND Position < 0 THEN Position = 0
IF Sens = Droite AND Position + 80 >= 320 THEN Position = 240
CLS
PUT (Position, 195), ImageBarre
CIRCLE (Balle.X, Balle.Y), 4
END SUB