In classical cryptography, the Hill cipher is a polygraphic substitution cipher based on linear algebra. Invented by Lester S. Hill in 1929, it was the first polygraphic cipher in which it was practical (though barely) to operate on more than three symbols at once. The following discussion assumes an elementary knowledge of matrices.
I have added the space after the 'Z' in the alphabet so each symbol is represented by a number modulo 27.
This is a custom font library. You can create your own font. Just use the matrix to set the drawing of the char. Use a dot a the begin of each line. The drawing for the letter 'F' can be '.PAC.FG'. Put the pen in P then a line to A and from A to C. Next, put the pen in F and draw a line to G.
Sampe of use:
function _draw() cls(5) font:drawtext(3,10,'t⬇️his is a way to create custom',7) font:drawtext(3,20,'⬇️vector ⬆️font.',7) font:size(4,5) font:drawtext(11,52,'s⬇️ize matters!',1) font:drawtext(10,50,'s⬇️ize matters!',14) font:size(2) line(55,113,127,113,8) font:drawtext(56,105,'⬇️picoscope101.fr',7) end
This game has be made for Ludum Dare 45 : “Start with nothing”. You’re the Spirit of the Nature. You have nothing and should collect with the appropriate tool droplets of water, sun and earth to feed the plant.
Use arrows to move and [x] key to change the current tools.
Could you help Greta to grow? ( the name of the flower)
(Done by @s_yanik & @wdwave)
You’re the Spirit of the stones and have to collect (and sacrifice) them.
Will you find the path ?
Could you resolve the gods challenge?
Is 1min16 is enough for you to succeed ?
This my compo for LD-43 : 'Sacrifices must be made'
This a code sample of splitscreen in pico8 to allow 2 players to play on the same screen (and go where they want).
This cartridge is an exploration about 'how to show things to the player'.
Arrow keys to move, [O] button (usually Z/W key on qwerty/azerty keyboard) to change the view mode.
Sometime, I just make pico stuffs for the pleasure to scratch my head... :-)
These cartriges show how to manage double-action buttons.
Two methods for the same result. The version 2.0 is better.
In hope this may helps at least the guys who were asking for it ;-)
I'm working on the topics for picoscope 2017 (in april). I love to code, so I will speak about about tables, object oriented programming, using functions in variables, converting arguments to an array (and an array to arguments), events...
You will find samples in these cartridges.
The last event we were involded, was a great success (Roc'n Stick in Niort, France).
Pictures of the PICO-8 workshop, march 25th
I hope I will see you in the next coming weeks ;-)
I_EDITOR is a programming game. The goal is to write simple scripts to reproduce a drawing on screen. The commands used in the scripts move a pointer (“turtle”). The pointer has a pen, which can be up or down. When the pen is down, each move lays a print. There are additional instructions to make calculus, evaluate conditions and call previous declared sequences. The syntax and semantic are organized in language called I_CORE.
Now you can download the manual !
Le manuel en français est disponible.
Try to reproduce the blueprints or play with the sandbox...
I will add a score and more blueprints soon ;-)
In the main menu:
Choose a blueprint or the sandbox (up/down, x)
In the editor:
Choose the command in the first column (up/down, x) or return to the main menu (o)
Change column (left/right)
Change the value in the second colum (x, then left/right to decrease/increase)
Delete instruction in the second colum with (o)
Have a look on i_core thread to have more explanation about the language "I".
I will make a tutorial soon and post a link and additional information here.
:A 20 FD 90 TR ; :B 1 - # A ?B ; 4 B
CLR : clear
<CP : copy from clipboard
>CP : copy to clipboard
Copy the line below into the clipboard
:a 10 fd 90 tr ; a a a a
Paste in PICO-8, then activate <CP
Clipboard functions (<CP,>CP) aren't working in HTML exported cartridge.
Copy from notepad (text in the html browser may contain tag or additional characters)
WARNING : This is not (yet) a game. It's a strange thing (only) for programers.
This cartridge includes i_core and the turtle extension.
It shows how to:
- bind a personal extension (turtle object, turtle binding) to the language core engine,
- initialize the external extension and call its methods (from PICO-I and i_core)
- pass parameters from PICO-8 to i_core (N).
The turtle extension includes the following commands:
- FD forward, 20 FD
- BD backward, 20 BD
- TR turn right, 90 TR
- TL turn left, 90 TL
- CL change color, 1 CL
- PU pen up, PU
- PD pen down, PD
- TO go to, 10 10 TO
- HD head to (0 right, 90 top, 180 left, 270 down), 0 HD
':loop 20 fd <a tr 1 - # ?loop ; :side >n 360 <n / >a <n loop ; cls 4 side'
Have fun ;-)
This is the core engine of a language ('I') and its virtual machine (all of this in PICO-8).
You can extend this engine (see how _SHW or _CLS are implemented).
You can create synonyms for a simplier use (see ADD and +).
The programs must be writen in a line. Terms are separated by space.
The engine is stack based (like forth): '5 4 + .' => shows 9
The operators + - * / and flr function are available.
The '#' duplicates the last value (of the stack).
You can evaluate (5 + 4) (3 + 2) with '5 4 + 3 2 + .' => 45
Create a sub function
:NAME <sequence of instructions> ;
':A 5 4 + ; :B 3 2 + ; A B * .' => 45
You can call the sub function NAME with its NAME (see A and B in the sample).
Create SQUARE and evaluate 3^2:
':SQUARE # * ; 3 SQUARE .' => 9
If the last value in the stack isn't zero it calls NAME else it goes to the next instruction.
This is usefull to create tests and loops:
':SA # . 1 - ; :LP SA # ?LP ; 5 LP 0 .'
Count down from 5 to 0 (then stop).
You can use variables:
>NAME (load value from stack)
<NAME (push value in the stack)
'1 >A <A <A + .' =>2
You can use many :EVAL call to enter your program (one line per call).
You can use as many i_core engines as you want at the same time (object).
You can execute the whole program (:EXEC) or run it :STEP by step.
:STATE returns 3 when done. You can restart with :STATE(0).
If you have read the description so far, you may have a question.
This sounds crazy... So, why?
I'm working on two games. In the first you have to build a program by stacking graphic items to draw on screen to replicate a drawing with the minimal amonth of items. In the second, some robots fight together using genetic algorithms to evolve (by sharing part of their own code to create new ones).
I think I can share this library and my interest in doing this.
picoscope101.fr where mad things come to life...
Picoscope2016 is coming in April 2017
We are organising a PICO-8 coding party in France.
You are welcome to join us in the workshops.
I'm on this since a couple of hours done on several days. I have a lack of time for the jam.
I will improve as I can but I submit like it is. I hope you will be kind enough to play with it.
Follow the radar indication. Shoot but don't be hurt. You have only one life.
The levels change each time the game is played.
With PICO-8 0.1.6, you can now programming using OOP design. This sample use setmetatable to build a constructor.
Commencée, délaissée et finalement terminée...
Voici la documentation en français de PICO-8 : PDF.
Je vais progressivement compléter ce document avec mes notes, remarques et projets illustrant les différentes notions présentées (et d'autres selon l'humeur du moment).
We are organising a coding party in Nantes (France). You are welcome to join us in the workshops and for the game jam. All of this made with PICO-8.
Returns the closest integer below x flr(-0.3) returns -1.0 [u]Same as (x%1) for positive values of x[/u]
print(flr(1.3)) --> 1
print(1.3%1) --> 0.3
Same as ([b]x - x%1[/b]) for positive values of x
This should be corrected in the manual.
View Older Posts