HP Prime for All
English
Русский
Name | Angry Birds |
Description | Inspired by the Angry Birds game for other mobile platforms. |
Author | Mickaël Nicotera |
Source code formatted by website engine
BEGIN
//By Mickaël Nicotera
local touch;
LOCAL X, Y, A, B, C, S, T, E;
LOCAL W, G, H, J;
LOCAL L1, L2;
S := 0;
E := 10;
L1 := {1, 1, 1};
L2 := {#78FF37h, #303030h};
W := 1;
G := RANDOM(60, 170);
H := RANDOM(60, 170);
J := RANDOM(60, 170);
WHILE E > 0 DO
IF irem(S, 30) == 0 AND S > 29 AND E <> 10-W THEN
W := W+1;
E := 10-W;
L1 := {1, 1, 1};
G := RANDOM(60, 170);
H := RANDOM(60, 170);
J := RANDOM(60, 170);
END;
X := 0;
Y := 190;
DIMGROB_P(G1, 320, 220);
RECT_P(G1, RGB(73, 194, 255));
RECT_P(G1, 20, 200, 60, 240, RGB(127, 70, 0), RGB(127, 70, 0));
FOR I FROM 1 TO 6 DO
ARC_P(G1, 40, 193, 7-I, 0, 360, RGB(244, 30, 30));
END;
FOR I FROM 0 TO 2 DO
LINE_P(G1, 43, 189+I, 51, 189+I, RGB(255, 161, 1));
END;
RECT_P(G1, 200, G, 240, 240, RGB(127, 70, 0), RGB(127, 70, 0));
FOR I FROM 1 TO 6 DO
ARC_P(G1, 220, G-6, 7-I, 0, 360, L2(L1(1)));
END;
RECT_P(G1, 240, H, 280, 240, RGB(127, 70, 0), RGB(127, 70, 0));
FOR I FROM 1 TO 6 DO
ARC_P(G1, 260, H-6, 7-I, 0, 360, L2(L1(2)));
END;
RECT_P(G1, 280, J, 320, 240, RGB(127, 70, 0), RGB(127, 70, 0));
FOR I FROM 1 TO 6 DO
ARC_P(G1, 300, J-6, 7-I, 0, 360, L2(L1(3)));
END;
TEXTOUT_P("Tries = "+E, G1, 200, 7, 1, RGB(255, 244, 43));
TEXTOUT_P("Score = "+S, G1, 250, 7, 1, RGB(255, 244, 43));
TEXTOUT_P("ANGRY BIRDS", G1, 80, 7, 3, RGB(255, 255, 255));
TEXTOUT_P("Power ", G1, 25, 22, 1, RGB(255, 0, 0));
TEXTOUT_P("By Mic ", G1, 138, 22, 1, RGB(255, 255, 255));
TEXTOUT_P("Level "+W, G1, 118, 198, 1, RGB(255, 255, 255));
WHILE ISKEYDOWN(30) <> 1 do
blit_p(G0, G1, 0, 0);
touch := mouse();
LINE_P(52, 190, 72, Y-20);
RECT_P(20, 10, 20+iquo(X, 6), 20, RGB(255, 0, 0), RGB(255, 0, 0));
WAIT(0.1);
if size(touch(1)) then
IF touch(1, 5) == 2 THEN
X := B→R(touch(1, 1));
Y := B→R(touch(1, 2));
LINE_P(52, 190, 72, Y-20);
RECT_P(20, 10, 20+iquo(X, 6), 20, RGB(255, 0, 0), RGB(255, 0, 0));
end;
end;
END;
A := 0.008 - (230-Y) / 70000;
B := 2.71 + (40-Y) / 500 + (X-50) / 500;
C := 305-X/10;
T := 0;
E := E-1;
TEXTOUT_P("Score = "+S, G1, 250, 7, 1, RGB(255, 244, 43));
IF (G-19 < A*220^2-B*220+C < G+6) AND L1(1) <> 2 THEN
S := S+10;
L1(1) := 2;
END;
IF (H-19 < A*260^2-B*260+C < H+6) AND L1(2) <> 2 THEN
S := S+10;
L1(2) := 2;
END;
IF (J-19 < A*300^2-B*300+C < J+6) AND L1(3) <> 2 THEN
S := S+10;
L1(3) := 2;
END;
M := 51;
N := 189;
FOR I FROM 1 TO 30 DO
TEXTOUT_P("o", M, N, 1, RGB(255, 41, 38));
M := M+10;
N := A*M^2-B*M+C;
WAIT(0.2);
END;
END;
MSGBOX("Score = "+S);
END;