A downloadable game

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?

STARTING VIA EMULATOR
=====================
Recommended emulator: YAPE http://yape.homeserver.hu/
How to start the game:
1. File / Attach disk image...
2. Select and open the .d64 image
3. Enter command: DLOAD"*" and press Enter
4. If you wish to LIST the program, see PROGRAM LINES OVERVIEW down below.
5. Enter command: RUN and press Enter

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 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

Download

Download
Good Monkey.d64 170 kB

Development log

Leave a comment

Log in with itch.io to leave a comment.