Login
Good Monkey
Title:Good Monkey
Category:Game/Trivia
Release Date:
Language:English
Size:16K
Machine:PAL & NTSC
Code Type:Basic
Distribution:Freeware
Game ending type:Has an end, restarts (reward)
 Play Online!
Code by:RoePipi
Notes: 
No votes yet.
Good Monkey Screenshot


Compos
ComposCategoryRankScoreNotes
BASIC 10 Liners 2021PUR-80544.10


Description
PROGRAM DESCRIPTION
===================
In an imagined experiment, a computer asks monkeys (played by you) to differentiate between cirles and ellipses, which task is getting gradually more difficult. Well, it's only 6 questions, anyone can do it, right?


GAME INSTRUCTIONS
=================
You are a well-trained monkey. Your task is to answer 6 questions right at a computer. At each screen, you are presented with 2 objects, one is a perfect circle and the another is an ellipse. They are labeled "1" and "2". At the top, the text tells you which one to select. You are to press the corresponding key each time (or press anything else to refuse). Your task will get more and more difficult as you progress by. If you're a good monkey, you'll get a fitting treatment at the end. If you choose poorly, the computer will draw perfect squares around the objects to let you measure your error, then let you start over.


PROGRAM LINES OVERVIEW
======================
Use the LIST command to view the program lines.

lines purpose
----- -------
0 init
1 start next question, blank the screen, change color, decide the task
2 at each side, generate radiuses which are different enough (or the same if generating a circle)
3 ask the question
4 draw a circle/ellipse, label them with "1" or "2", then reveal the screen
5 delete keyboard buffer, reset timer, get keyboard input, roll up time, value input, calculate a logical value of it, exclude other keys -> see 7
6 if logical value is accepted, compliment the player, wait a bit, increase difficulty; on out of questions -> see 8
7 draw 2 perfect squares around both objects to let the player measure their fault, call them "bad monkey"
8 display overall reaction time; if all questions passed, display "banana time!"
9 signal end of experiment, restart after keypress


EXTENDED CODE
=============
0 GRAPHIC 1, 1 : D=64 : H=22 : F=14 : O$(.)="CIRCLE" : O$(1)="ELLIPSE" : DEF FNR(I)=INT(RND(.)*I)
1 FOR Q=1 TO 6 : POKE 65286, 11 : COLOR 4, Q+2 : COLOR ., Q+2 : GRAPHIC 1, 1 : C=FNR(2) : G=FNR(2)
2 FOR S=. TO 1 : DO : X=FNR(D) : Y=FNR(D) : LOOP WHILE ABS(X-Y)<=D/2-1 : IF C=S THEN Y=X
3 CHAR , ., ., "QUESTION"+STR$(Q)+" OF 6: WHICH IS THE "+O$(G)+"?"
4 CIRCLE , 75+S*169, 91, 76-D+X, 76-D+Y : CHAR , 9+S*21, 11, CHR$(49+S), 1 : NEXT : POKE 65286, 27
5 POKE 239, . : TI$="000000" : GETKEY A$ : T=T+TI : A=VAL(A$) : R=C+G+A : IF A<1 OR A>2 THEN 7
6 IF R=1 OR R=3 THEN CHAR , F, 3, "GOOD MONKEY!" : FOR I=. TO 840 : NEXT : D=D/2 : NEXT : GOTO 8
7 FOR S=. TO 1 : BOX , S*169, 16, 150+S*169, 166 : NEXT : CHAR , F, 15, "BAD MONKEY!!", 1
8 CHAR , 1, H, "OVERALL REACTION TIME:"+STR$(T)+"/60 SEC" : IF Q>6 THEN CHAR , F, 9, "BANANA TIME!"
9 CHAR , 1, 24, "END OF EXPERIMENT, ANY KEY TO RESTART", 1 : GETKEY A$ : RUN : ROEPIPI2021


FUNCTIONS
=========
FNR(x) random integer between 0 and x-1


VARIABLES
=========
A$ answer from keyboard
A answer's value (0-9, accepted range: 1-2)
C circle is (0:left, 1:right)
D max divergence from circle (1,2,4,8,16,32,64)
F 14
G Good reply (0:circle, 1:ellipse)
H 22
I loop variable for waiting
O$(0-1) object text (0:circle, 1:ellipse)
Q question number (1-6)
R reply's logical value (1-4, odd is good)
S actual side of screen (0:left, 1:right)
T overall reaction time in 1/60th seconds
X actual X radius
Y actual Y radius

Copyright © Plus/4 World Team, 2001-2024. Support Plus/4 World on Patreon