Skip to content

Instantly share code, notes, and snippets.

View Pinacolada64's full-sized avatar

Ryan Sherwood Pinacolada64

View GitHub Profile
@Pinacolada64
Pinacolada64 / color_map.py
Last active February 11, 2025 06:51
A color string parser meant to handle ANSI and Commodore terminal colors
import enum
import logging
from dataclasses import dataclass
from enum import Enum
import codecs
import cbmcodecs2
from colorama import init, Fore
@Pinacolada64
Pinacolada64 / submenus.py
Last active March 26, 2025 02:36
Options in sub-menus. A bit buggy.
import logging
from dataclasses import dataclass, field
from typing import List, Optional, Callable
from flags import Player, PlayerFlags, PlayerStat
def edit_string(prompt: str, data: str) -> str:
user_input = input(f"Edit {prompt}: ")
if user_input is None or user_input == data:
@Pinacolada64
Pinacolada64 / items.py
Created January 9, 2025 22:46
Trying out some Item classes and functions
from dataclasses import dataclass
from enum import StrEnum
from typing import Optional
# from flags import Size
@dataclass
class Item(object):
@Pinacolada64
Pinacolada64 / terminal_settings.py
Last active December 24, 2024 20:33
A better attempt at terminal settings
import logging
import textwrap
from dataclasses import asdict, dataclass, is_dataclass, field
from enum import Enum
"""
Goal: to display a settings menu. The way I think it should work:
- Enumerate through Player atributes, get a key (LINE_ENDING)
- Get a key name common to both SettingString.LINE_ENDING (to display in the menu item) and SettingValue.LINE_ENDING
@Pinacolada64
Pinacolada64 / scratch_3.py
Created December 6, 2024 00:07
Terminal settings attempt
import random
from dataclasses import dataclass, field
from enum import Enum
class ClientSettingsNames(str, Enum):
NAME = "Name"
ROWS = "Screen rows"
COLUMNS = "Screen columns"
RETURN_KEY = "Return key"
@Pinacolada64
Pinacolada64 / macro-preprocessor.py
Last active May 10, 2024 06:34
experiment to create a macro system for c64list
import re
import logging
import doctest
import tempfile
def process_macros(code: list):
"""
This function processes macro definitions and stores them in a dictionary.
@Pinacolada64
Pinacolada64 / convert-c64list-to-vice.py
Created May 4, 2024 16:21
Convert c64list symbol files to VICE label files
"""
convert C64List symbols file...
chrout = $ffd2
llen = $0ca4
ones_digit = $0ca3
...to Vice label file:
# al $addr .label
al $ffd2 .chrout
al $0c04 .llen
@Pinacolada64
Pinacolada64 / shop.py
Created May 3, 2024 02:28
Shop routine, maintain shop and player inventory (with item quantities)
import logging
from dataclasses import dataclass, field
@dataclass
class ShopItem:
name: str
quantity: int
price: int
@Pinacolada64
Pinacolada64 / flag_enum_operations.py
Last active May 14, 2024 13:38
Flag operations using Enum
import logging
from enum import Enum
from dataclasses import dataclass, field
from typing import Tuple
import doctest
@dataclass
class PlayerFlagTypes(str, Enum):
YESNO: str = "yes/no"
@Pinacolada64
Pinacolada64 / new_parser.py
Last active February 23, 2024 02:47
New parser with individual functions per command
# https://gist.github.com/anoryx/c34380a0a3ef4031f41c9ed8035e305b
# https://stackoverflow.com/questions/51575931/class-inheritance-in-python-3-7-dataclasses/53085935#53085935
# combat considerations:
# https://codereview.stackexchange.com/questions/139121/my-implementation-of-item-objects-in-a-text-adventure
# thanks, volca & google gemini (née bard)
import doctest