HP Prime for All
English
Русский
| Name | Blotch |
| Description | Draws square blotches with random colors. |
| Author | Eddie Shore |
Source code formatted by website engine
BEGIN // EWS 04-20-2014
// Initialize
LOCAL m, m1, mx, my, j, k, r;
WHILE MOUSE(1) ≥ 0 DO END;
// Clear Canvas
RECT;
LOCAL s := 50, d := 4;
// Menu - to be redrawn
DRAWMENU("Clear", "S+5", "S-5", "D+2", "D-2", "Exit");
// Start main loop
REPEAT
// Get mouse data
REPEAT m := MOUSE; m1 := m(1);
UNTIL SIZE(m1) > 0;
mx := m1(1); my := m1(2);
DRAWMENU("Clear", "S+5", "S-5", "D+2", "D-2", "Exit");
// Clear Screen
IF (my ≥ 220 AND my ≤ 319) AND (mx ≥ 0 AND mx ≤ 51) THEN RECT;
END;
// Change Size
IF (my ≥ 220 AND my ≤ 319) AND (mx ≥ 53 AND mx ≤ 104) THEN IF s < 80 THEN s := s+5; END;
END;
IF (my ≥ 220 AND my ≤ 319) AND (mx ≥ 106 AND mx ≤ 157) THEN IF s > 5 THEN s := s-5; END;
END;
// Change Depth
IF (my ≥ 220 AND my ≤ 319) AND (mx ≥ 159 AND mx ≤ 210) THEN IF d < 8 THEN d := d+2; END;
END;
IF (my ≥ 220 AND my ≤ 319) AND (mx ≥ 212 AND mx ≤ 263) THEN IF d > 2 THEN d := d-2; END;
END;
// Exit Key
IF (my ≥ 220 AND my ≤ 319) AND (mx ≥ 256 AND mx ≤ 319) THEN BREAK;
END;
// Draw Blotch
FOR j FROM mx-s/2 TO mx+s/2 STEP d DO FOR k FROM my-s/2 TO my+s/2 STEP d DO r := RANDINT(1677215);
RECT_P(j, k, j+d-1, k+d-1, r);
END; END;
// Close main loop
UNTIL (my ≥ 220 AND my ≤ 319) AND (mx ≥ 256 AND mx ≤ 319);
RECT_P(0, 220, 319, 239);
TEXTOUT_P("DONE!", 146, 220, 4, #FF0000h);
WAIT(-1);
END;