Skip to content

Instantly share code, notes, and snippets.

View Pinacolada64's full-sized avatar

Ryan Sherwood Pinacolada64

View GitHub Profile
@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 1, 2024 02:10
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
@Pinacolada64
Pinacolada64 / output.py
Created November 17, 2023 20:19
Output various player character information using a Character subclass
import logging
from dataclasses import dataclass, field
import datetime
import doctest
from typing import Optional
# Totally Awesome Dungeon Adventure modules:
from server import Player, Room
@Pinacolada64
Pinacolada64 / object_subclassing.py
Last active November 27, 2023 06:36
Trying to subclass items & characters in game
from dataclasses import dataclass
import datetime
import doctest
import logging
from random import randrange
from typing import Sequence
# some of this was--sadly--cribbed from Bing AI.
# https://www.reddit.com/r/learnpython/comments/17oblv2/class_method_vs_instance_method/
@Pinacolada64
Pinacolada64 / dungeon.py
Created August 8, 2023 20:51
Random dungeon generator
# map.py
# modified from https://www.roguebasin.com/index.php?title=Python_Curses_Example_of_Dungeon-Building_Algorithm
# https://roguebasin.com/index.php/Dungeon_builder_written_in_Python/Examples
# FIXME: 2d maze generator output doesn't match examples
# TODO: get height/width of map, if > screen height/width, display quadrants or something
# TODO: display room names underneath?
# https://lvngd.com/blog/generating-and-solving-mazes-with-python/#
@Pinacolada64
Pinacolada64 / parser-classes.py
Created July 20, 2023 01:56
Make command classes for each category of command
# This is based on dot_commands.py
# some interesting ideas here:
# https://colab.research.google.com/github/interactive-fiction-class/interactive-fiction-class.github.io/blob/master/homeworks/text-adventure-game/Text_Adventure_Game.ipynb#scrollTo=8Cug7Bs3Qpdd
from dataclasses import dataclass
from typing import Callable, Any, Union
import re as regex
@dataclass
@Pinacolada64
Pinacolada64 / basic_keymap.py
Created April 29, 2023 05:58
Demonstrate a Commodore keymap with named keys.
import sys
def show_keymap():
for value, key_name in keymap.items():
print(f"{value:3} {key_name}")
if value % 20 == 0:
_ = input("Pause ('Q' quits): ")
if _.lower() == "q":
print("Aborted.")
@Pinacolada64
Pinacolada64 / text-editor.py
Last active March 15, 2023 06:31
Beginning a simple line-based text editor.
try:
import getch
except ImportError as e:
print(f"Can't import getch: {e}.")
def get_character():
"""
Wait for a character to be typed
return tuple: 'in_char': character, 'asc': ascii value
"""