AI prompts
base on SDL based Lua programming environment for kids similar to Codea README
===
Load81 is an attempt at creating a Codea-inspired environment to teach
children how to write Lua programs. It features a graphical programming
environment and a Commodore-64 style integrated editor so that the programmer
is confined into a friendly environment with a simple editor:

The following is a screenshot of the running program (examples/asteroids.lua).
The programmer can currently switch between edit and play mode pressing the
ESC key.

Load81 is written in ANSI C and uses `SDL` and `SDL_gfx` and `SDL_image`, so
should compile on Mac OS X and Linux without issues. It should not be hard
to port it to Windows.
The coordinate system and the basic drawing functions are compatible with
Codea (check http://twolivesleft.com/Codea/ for more information), but there
is no support for stroke.
There is no aim at Codea compatibility, but who is familiar with Codea should
feel at home with Load81 in terms of API and structure of the program.
I wrote it mainly because I and my children have fun with Codea but we don't
have an iPad at home, and using a real keyboard sometimes can be less
frustrating.
The name Load81 originates from the fact that in popular Commodore home
computers the command `LOAD "*",8,1` would load the first program on the disk
starting from the file-specified memory location.
USAGE
===
Start Load81 with:
./load81 example.lua
To switch between program and editor mode press the ESC key.
Check the "examples" folder for small examples.
PROGRAMMING INTERFACE
===
Drawing functions:
* fill(r,g,b,alpha): select the drawing color.
* background(r,g,b): paint the whole background with the specified color.
* rect(x,y,width,height): draw a rectangle at x,y (left-bottom corner).
* ellipse(x,y,width,height): draw an ellipse centered at x,y.
* line(x1,y1,x2,y2): draw a line from x1,y1 to x2,y2.
* text(x,y,string): print the specified text at x,y using a bitmap font.
* triangle(x1,y1,x2,y2,x3,y3): draw a triangle with the specified vertex.
* getpixel(x,y): return the red,gree,blue value of the specified pixel.
* sprite(file,x,y,[rotation],[antialiasing]): draw sprite at coordinates with the specified rotation (in degrees, default 0) and antialiasing (default false).
Control functions:
* setFPS(fps): Set the frame rate. For default it's set to 30 frames per second.
KEYBOARD EVENTS
===
To check if a key 'a' is pressed use:
if keyboard.pressed['a'] then ...
SDL Key symbol names are used. You can easily find how a given key is
called using the following Lua program:
function draw()
for k,v in pairs(keyboard.pressed) do
print(k)
end
end
(You can find this program under the examples folder).
LOW LEVEL KEYBOARD EVENTS
===
It is also possible to trap low level SDL events accessing keyboard.state
and keyboard.key fields of the keyboard table.
keyboard.state is one of:
"down" -> KEYDOWN event
"up" -> KEYUP event
"none" -> No event
keyboard.key is set to the key pressed or released when state is different
than "none".
MOUSE EVENTS
===
mouse.x and mouse.y gives you the current mouse coordinates. To check
if a button is pressed use:
if mouse.pressed['1'] then ...
Mouse buttons are called '1', '2', '3', ... and so forth.
LICENSE
===
Load81 was written by Salvatore Sanfilippo and is released under the
BSD two-clause license, see the COPYING file for more information.
The load81 project is dedicated to Jack Tramiel, founder of Commodore.
", Assign "at most 3 tags" to the expected json: {"id":"12097","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"