Ну почему, почему нейронки появились только сейчас?

Чисто, ради любопытства, спросил нейронку можно ли рисовать мышью в терминале. Говорит, можно. И не только рисовать, но и клавиши использовать.

Ну почему, почему нейронки появились только сейчас?

То есть можно на питоне накидать код а-ля Нортон коммандер, терминальные приложухи, игры и прочее. Просто кайф для челиков, которые увлекаются ретро.

import sys import termios import tty # ====== ANSI ====== def write(s: str): sys.stdout.write(s) sys.stdout.flush() def goto(x: int, y: int): write(f"\x1b[{y};{x}H") def enable_mouse(): write("\x1b[?1000;1002;1006h") # click + drag SGR mode def disable_mouse(): write("\x1b[?1000;1002;1006l") def clear_screen(): write("\x1b[2J\x1b[H") def hide_cursor(): write("\x1b[?25l") def show_cursor(): write("\x1b[?25h") # ====== Чтение события ====== def read_event(): ch = sys.stdin.read(1) if ch == 'q': return ('key', 'q') if ch != '\x1b': return ('key', ch) ch2 = sys.stdin.read(1) if ch2 != '[': return ('other', None) ch3 = sys.stdin.read(1) if ch3 != '<': return ('other', None) buf = "" while True: c = sys.stdin.read(1) if c in ('M', 'm'): pressed = (c == 'M') break buf += c try: btn_str, x_str, y_str = buf.split(';') btn = int(btn_str) x = int(x_str) y = int(y_str) except ValueError: return ('other', None) return ('mouse', btn, x, y, pressed) # ====== MAIN ====== def main(): if not sys.stdin.isatty(): print("Run in a real terminal (TTY).") return fd = sys.stdin.fileno() old = termios.tcgetattr(fd) drawing = False # признак зажатой кнопки try: tty.setraw(fd) clear_screen() hide_cursor() enable_mouse() write("🖱 Зажми и держи левую кнопку чтобы рисовать. Нажми q чтобы выйти.\n") while True: ev = read_event() # выход if ev[0] == 'key': if ev[1] == 'q': break # мышь elif ev[0] == 'mouse': _, btn, x, y, pressed = ev # левая кнопка (btn=0) if btn == 0: if pressed: drawing = True # нажали — режим рисования включился goto(x, y) write("█") else: drawing = False # отпустили кнопку # если мы в режиме рисования — рисуем даже при движении if drawing and pressed: goto(x, y) write("█") finally: disable_mouse() show_cursor() termios.tcsetattr(fd, termios.TCSADRAIN, old) goto(1, 9999) write("\nВыход.\n") if __name__ == "__main__": main()

Хотел бы я такую игрушку ИИ в своё детство. Реально, не нужно быть книжным червём, чтобы все эти технические тонкости знать.

Ну почему, почему нейронки появились только сейчас?

PETAI окончательно релизну в понедельник. Сегодня только промо подготовлю, в остальном весь код вылизал.

3
1
10 комментариев