More Python-ish Python implementation of Knewjade's tetris-fumen
Original project: hsohliyt105's py-fumen
python3 -m pip install py-fumen-pyfrom py_fumen_py import *bold namesare automatically imported withfrom py_fumen_py import *
| Name | Description | Importable Names |
|---|---|---|
action |
Codec for action in a fumen string | Action, ActionCodec |
comment |
Codec for comment in a fumen string | CommentCodec |
constant |
Constants used in the project | FieldConstants, FieldConstants110, FumenStringConstants |
field |
Playing field object | Field |
fumen_buffer |
Buffer objects for saved data | FumenBuffer, FumenBufferReader, FumenBufferWriter |
fumen_codec |
The Fumen codec | decode, encode |
js_escape |
escape() ported from JavaScript |
escape, unescape, escaped_compare |
operation |
Tetrimino placement object | Mino, Rotation, Operation |
page |
Page object | Flags, Refs, Page |
quiz |
Quiz object | Quiz |
- Decoding
from py_fumen_py import *
pages = decode('v115@9gQ4EeAtBewhR4CeBtBewhg0Q4CeAtglRpwhi0Aeil?RpwhJeAgWSANxiSASowNE1oo2AzyBUAT5AAA')
for i, page in enumerate(pages):
print(i)
print(page.field)- Encoding
from py_fumen_py import *
field = Field(
field='\n'.join([
'S_____Z__I',
'SS___ZZ__I',
'JS___ZLOOI',
'JJJ_LLLOOI',
]),
garbage='__________'
)
pages = [Page(
field=field,
operation=None,
comment='MKO you say?',
flags=Flags(),
refs=Refs())
]
print(encode(pages))- Action encoding and decoding are moved to
action - Comment encoding and decoding are moved to
comment - Added
FieldConstants110toconstantto accomodate for Fumen version110 decoderandencoderare combined into onefumen-codecmodulefieldandinner_fieldare combined into onefieldmodule- Action, comment and field reading/writing are moved to
fumen_buffer - Placement tetrimino
enumobjects are moved tooperation quizworks completely differently (based on this editor instead oftetris-fumen)