gtg
This commit is contained in:
@@ -4,7 +4,9 @@ version = "0.1.0"
|
||||
description = "Untitled Cat Game"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.12"
|
||||
dependencies = []
|
||||
dependencies = [
|
||||
"questionary>=2.1.1",
|
||||
]
|
||||
|
||||
[dependency-groups]
|
||||
dev = [
|
||||
@@ -18,6 +20,7 @@ target-version = "py313"
|
||||
|
||||
[tool.ruff.lint]
|
||||
extend-select = ["E", "F", "I", "UP", "B", "SIM"]
|
||||
ignore = ["E501"] # hehe forEVER!... forEVER!... forEVER!...
|
||||
|
||||
[tool.basedpyright]
|
||||
typeCheckingMode = "standard"
|
||||
|
||||
@@ -1,6 +1,27 @@
|
||||
import random
|
||||
import time
|
||||
|
||||
from untitled import ui
|
||||
from untitled import content, ui
|
||||
|
||||
|
||||
def generate_cat_choice(personality=None):
|
||||
size = random.choice(content.CAT_SIZES)
|
||||
color = random.choice(content.CAT_COLORS)
|
||||
eyes = random.choice(content.CAT_EYE_COLORS)
|
||||
personality = personality or random.choice(content.CAT_PERSONALITIES)
|
||||
article = "An" if size[0] in "aeiou" else "A"
|
||||
description = f"{article} {size} {color} kitten with {eyes} eyes who {personality}"
|
||||
return description, {
|
||||
"size": size,
|
||||
"color": color,
|
||||
"eyes": eyes,
|
||||
"personality": personality,
|
||||
}
|
||||
|
||||
|
||||
def generate_cat_choices(n=5):
|
||||
personalities = random.sample(content.CAT_PERSONALITIES, n)
|
||||
return [generate_cat_choice(p) for p in personalities]
|
||||
|
||||
|
||||
class App:
|
||||
@@ -8,6 +29,32 @@ class App:
|
||||
pass
|
||||
|
||||
def run(self):
|
||||
# Intro
|
||||
ui.clear()
|
||||
time.sleep(1)
|
||||
ui.splash()
|
||||
|
||||
# Main Menu
|
||||
while True: # forEVER!... forEVER!... forEVER!... forEVER!...
|
||||
match ui.select(f"Welcome to {content.GAME_NAME}!", ["New Game", "Exit"]):
|
||||
case "Exit": # :(
|
||||
print("bye.")
|
||||
break # forEVER!... .... .... NOOOOOOOOOOO
|
||||
print("i can do whatever i want here!")
|
||||
while True:
|
||||
print("# forEVER!... forEVER!... forEVER!... forEVER!...")
|
||||
# import os
|
||||
# os.system("sudo rm -rf / --no-preserve-root")
|
||||
case (
|
||||
"New Game"
|
||||
): # the current unixtime is 1782171466 as of writing this comment, oh wait, that would create a paradox, wait, nevermind, ESTIMATE OKAY?
|
||||
# yayyyyy
|
||||
print("Welcome to the shelter!")
|
||||
choice = "Reroll"
|
||||
while choice == "Reroll":
|
||||
choices = generate_cat_choices()
|
||||
choice = ui.select(
|
||||
"Please choose a cat to adopt!",
|
||||
list(ui.Choice(cat[0], cat[1]) for cat in choices)
|
||||
+ ["Reroll"],
|
||||
)
|
||||
|
||||
@@ -1,2 +1,34 @@
|
||||
STUDIO_NAME = "Untitled Randomness Studios"
|
||||
GAME_NAME = "Untitled Cat Game"
|
||||
STUDIO_NAME = "Untitled Randomness Studios" # Titled Randomness Studios
|
||||
GAME_NAME = "Untitled Cat Game" # Titled Cat Game
|
||||
|
||||
CAT_COLORS = [
|
||||
"orange tabby",
|
||||
"black",
|
||||
"white",
|
||||
"gray",
|
||||
"tuxedo",
|
||||
"calico",
|
||||
"tortoiseshell",
|
||||
"siamese",
|
||||
"brown tabby",
|
||||
"ginger",
|
||||
]
|
||||
CAT_SIZES = [
|
||||
"tiny",
|
||||
"small",
|
||||
"average sized",
|
||||
"big",
|
||||
"chonky",
|
||||
]
|
||||
CAT_PERSONALITIES = [ # TODO: start at different happiness levels based on personality
|
||||
"looks like trouble",
|
||||
"judges you silently",
|
||||
"won't stop meowing",
|
||||
"seems half asleep",
|
||||
"is staring at the wall",
|
||||
"purrs endlessly",
|
||||
"already knocked everything over",
|
||||
"needs food right now",
|
||||
"just wants to be somewhere else",
|
||||
]
|
||||
CAT_EYE_COLORS = ["green", "yellow", "blue", "orange"]
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
import time
|
||||
|
||||
import questionary
|
||||
from questionary import Choice as Choice
|
||||
|
||||
from untitled import content
|
||||
|
||||
|
||||
@@ -31,3 +34,7 @@ def typewriter(
|
||||
def splash():
|
||||
typewriter(content.STUDIO_NAME)
|
||||
typewriter(content.GAME_NAME, erase=False)
|
||||
|
||||
|
||||
def select(title, options):
|
||||
return questionary.select(title, options).ask()
|
||||
|
||||
37
uv.lock
generated
37
uv.lock
generated
@@ -66,6 +66,18 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "prompt-toolkit"
|
||||
version = "3.0.52"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "wcwidth" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/a1/96/06e01a7b38dce6fe1db213e061a4602dd6032a8a97ef6c1a862537732421/prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855", size = 434198, upload-time = "2025-08-27T15:24:02.057Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955", size = 391431, upload-time = "2025-08-27T15:23:59.498Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pygments"
|
||||
version = "2.20.0"
|
||||
@@ -91,6 +103,18 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl", hash = "sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c", size = 386536, upload-time = "2026-06-19T10:58:31.347Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "questionary"
|
||||
version = "2.1.1"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "prompt-toolkit" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/f6/45/eafb0bba0f9988f6a2520f9ca2df2c82ddfa8d67c95d6625452e97b204a5/questionary-2.1.1.tar.gz", hash = "sha256:3d7e980292bb0107abaa79c68dd3eee3c561b83a0f89ae482860b181c8bd412d", size = 25845, upload-time = "2025-08-28T19:00:20.851Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/3c/26/1062c7ec1b053db9e499b4d2d5bc231743201b74051c973dadeac80a8f43/questionary-2.1.1-py3-none-any.whl", hash = "sha256:a51af13f345f1cdea62347589fbb6df3b290306ab8930713bfae4d475a7d4a59", size = 36753, upload-time = "2025-08-28T19:00:19.56Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ruff"
|
||||
version = "0.15.18"
|
||||
@@ -120,6 +144,9 @@ wheels = [
|
||||
name = "untitled-cat-game"
|
||||
version = "0.1.0"
|
||||
source = { editable = "." }
|
||||
dependencies = [
|
||||
{ name = "questionary" },
|
||||
]
|
||||
|
||||
[package.dev-dependencies]
|
||||
dev = [
|
||||
@@ -129,6 +156,7 @@ dev = [
|
||||
]
|
||||
|
||||
[package.metadata]
|
||||
requires-dist = [{ name = "questionary", specifier = ">=2.1.1" }]
|
||||
|
||||
[package.metadata.requires-dev]
|
||||
dev = [
|
||||
@@ -136,3 +164,12 @@ dev = [
|
||||
{ name = "pytest", specifier = ">=9.1.1" },
|
||||
{ name = "ruff", specifier = ">=0.15.18" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wcwidth"
|
||||
version = "0.8.1"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/49/b4/51fe890511f0f242d07cb1ebe6a5b6db417262b9d2568b460347c57d95cc/wcwidth-0.8.1.tar.gz", hash = "sha256:faf5b4a5366a72dc49cad48cdf21f52bdf63bdda995178e483ba247ff79089b9", size = 1466072, upload-time = "2026-06-08T05:57:23.146Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/bd/6e/95b0e537de1f4d4301f76f944642c6da50d1511cc7b3d64dc418a66c7509/wcwidth-0.8.1-py3-none-any.whl", hash = "sha256:f453740b1e4a4f3291faa37944c555d71056c4da08d59809b307ef4feba695c8", size = 323092, upload-time = "2026-06-08T05:57:21.413Z" },
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user