Good Monkey by RoePipi
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
Status | Released |
Author | BASIC 10Liner |
Tags | 8-Bit, basic, basic10liner, c16, commodore |
Download
Development log
- Image downloadApr 08, 2021
Leave a comment
Log in with itch.io to leave a comment.