The code base for this project is entirely written. However, I have never gotten around to actually fleshing out levels for the game.
Fortunately, this is actually easy to do,
and I welcome contributions from anyone who wants to add them.
All you have to do is submit four Asymptote files (in *.asy
format),
formatted appropriately, and I'll add them into the live game.
Here is an example of a user-contributed submission.
The syntax for one of the asymptote files looks like this:
pair A=dir(120);
pair B=dir(210);
pair C=dir(330);
pair H=A+B+C;
pair E=extension(B,H,A,C);
pair F=extension(C,H,A,B);
pair N=(B+C)/2;
pair R=extension(E,F,B,C);
pair G=extension(-A,N,A,R);
pair Q=extension(R,H,A,N);
dot("$A$",A,A);
dot("$B$",B,B);
dot("$C$",C,C);
dot("$E$",E,E);
dot("$F$",F,NW);
dot("$H$",H,S);
dot("$G$",G,G);
dot("$Q$",Q,SE);
dot("$R$",R,S);
draw(A--B--C--cycle);
draw(circumcircle(A,B,C)^^circumcircle(A,E,F),dotted);
draw(arc(N,abs(B-N),-10,190),dotted);
draw(A--N^^B--R--E);
draw(B--E, dashed);
draw(C--F, dashed);
/*
Source: Miquel point and HM-point
Points: A B C H E F Q G R
Item: B H Q C
Item: R H Q
Item: R G A
Item: R B F G
Item: R C E G
Text: Point $Q$ is the second intersection of the $A$- median and the circumcircle of $AEF$,
Text: and is also known as the $A$-HM point.
*/
An explanation of the file structure:
- Everything before the big comment is just for drawing the picture itself.
- The
Source
header is a human-readable description of the picture. - The
Points
header is a space-separated list of all the point names. They should match the names of variables used inpair
declaration. - Each
Item
line is a space-separated list of either three collinear points or four concyclic points that are not already marked in the diagram (i.e. the items worth points in the game). - Finally, each
Text
line is a description that shows up in the game. Line breaks occur after each declaration.
And that's it! Four files like this form a level.