Asciimatics adalah paket untuk membantu orang membuat UI teks layar penuh (dari formulir interaktif hingga animasi ASCII) di platform apa pun. Ini dilisensikan di bawah Lisensi Apache Software Foundation 2.0.
Mengapa tidak? Ini memberikan sedikit kegembiraan bagi siapa pun yang memprogram di tahun 80an... Oh dan ini menyediakan satu kelas Python lintas platform untuk melakukan semua fungsi konsol tingkat rendah yang dapat Anda minta, termasuk:
Selain itu, ia menyediakan beberapa API sederhana dan tingkat tinggi untuk menyediakan fitur yang lebih kompleks termasuk:
Saat ini paket ini telah terbukti bekerja pada CentOS 6 & 7, Raspbian (yaitu Debian wheezy), Ubuntu 14.04, Windows 7, 8 & 10, OSX 10.11 dan Android Marshmallow (milik https://termux.com), meskipun demikian juga harus berfungsi untuk platform lain yang menyediakan implementasi kutukan yang berfungsi.
Ini harus implementasi agnostik dan telah berhasil diuji pada CPython dan PyPy2.
(Tolong beri tahu saya jika Anda berhasil memverifikasinya di platform lain sehingga saya dapat memperbarui daftar ini).
Asciimatics mendukung Python versi 3. Untuk daftar versi yang diuji secara tepat, lihat pypi. Versi terakhir asciimatics yang mendukung Python 2 adalah v1.14.
Untuk menginstal asciimatics, cukup instal dengan pip sebagai berikut:
$ pip install asciimatics
Ini akan menginstal semua dependensi Anda untuk Anda. Jika Anda tidak menggunakan pip atau gagal menginstalnya, Anda dapat menginstal dependensi secara langsung menggunakan paket yang tercantum di persyaratan.txt. Selain itu, pengguna Windows (yang tidak menggunakan pip) perlu menginstal pywin32.
Untuk menggunakan API tingkat rendah, cukup buat Layar dan gunakan untuk mencetak teks berwarna di lokasi mana pun, atau dapatkan input mouse/keyboard. Misalnya, berikut adalah varian dari "hello world" klasik:
from random import randint
from asciimatics . screen import Screen
def demo ( screen ):
while True :
screen . print_at ( 'Hello world!' ,
randint ( 0 , screen . width ), randint ( 0 , screen . height ),
colour = randint ( 0 , screen . colours - 1 ),
bg = randint ( 0 , screen . colours - 1 ))
ev = screen . get_key ()
if ev in ( ord ( 'Q' ), ord ( 'q' )):
return
screen . refresh ()
Screen . wrapper ( demo )
Kode yang sama berfungsi pada Windows, OSX dan Linux dan membuka jalan bagi semua fitur tingkat yang lebih tinggi. Ini masih memerlukan Layar, tapi sekarang Anda juga membuat Adegan menggunakan beberapa Efek dan kemudian mendapatkan Layar untuk memainkannya. Misalnya, kode ini:
from asciimatics . effects import Cycle , Stars
from asciimatics . renderers import FigletText
from asciimatics . scene import Scene
from asciimatics . screen import Screen
def demo ( screen ):
effects = [
Cycle (
screen ,
FigletText ( "ASCIIMATICS" , font = 'big' ),
int ( screen . height / 2 - 8 )),
Cycle (
screen ,
FigletText ( "ROCKS!" , font = 'big' ),
int ( screen . height / 2 + 3 )),
Stars ( screen , 200 )
]
screen . play ([ Scene ( effects , 500 )])
Screen . wrapper ( demo )
harus menghasilkan sesuatu seperti ini:
Atau mungkin Anda ingin membuat TUI? Dalam hal ini kode sederhana ini akan memberi Anda ini:
Dokumentasi lengkap mengenai semua hal di atas (dan lebih banyak lagi!) tersedia di http://asciimatics.readthedocs.org/
Contoh lainnya tentang apa yang dapat Anda lakukan tersedia di direktori sampel proyek, yang dihosting di GitHub. Lihat https://github.com/peterbrittain/asciimatics/tree/v1.15/samples.
Untuk melihatnya, cukup unduh file-file ini dan jalankan langsung dengan python. Alternatifnya, Anda dapat menelusuri rekaman banyak sampel di galeri di https://github.com/peterbrittain/asciimatics/wiki.
Jika Anda mengalami masalah, silakan lihat panduan pemecahan masalah di http://asciimatics.readthedocs.io/en/latest/troubleshooting.html. Jika ini tidak menyelesaikan masalah Anda, Anda dapat melaporkan bug (atau mengirimkan permintaan penyempurnaan) di https://github.com/peterbrittain/asciimatics/issues.
Atau, jika Anda hanya memiliki beberapa pertanyaan, silakan mampir di https://gitter.im/asciimatics/Lobby.
Jika Anda ingin mengambil bagian dalam proyek ini (dan lihat nama Anda di kredit!), lihat panduannya di http://asciimatics.readthedocs.org/en/latest/contributing.html