Removed spaces from top-level directory names.

Spaces tend to cause annoyances in a Unix-style shell environment.
This change fixes that.
This commit is contained in:
Chris Reuter
2021-11-21 18:30:21 -05:00
parent df2e7426eb
commit d26dbf036a
1725 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
Original source downloaded [from Vintage Basic](http://www.vintage-basic.net/games.html)
Conversion to [Python](https://www.python.org/about/)

160
70_Poetry/python/poetry.py Normal file
View File

@@ -0,0 +1,160 @@
"""
POETRY
A poetry generator
Ported by Dave LeCompte
"""
"""
PORTING EDITORIAL NOTE:
The original code is a pretty convoluted mesh of GOTOs and global
state. This adaptation pulls things apart into phrases, but I have
left the variables as globals, which makes goes against decades of
wisdom that global state is bad.
"""
PAGE_WIDTH = 64
import random
# globals
u = 0
i = 0
j = 0
k = 0
phrase = 1
line = ""
def print_centered(msg):
spaces = " " * ((PAGE_WIDTH - len(msg)) // 2)
print (spaces + msg)
def process_phrase_1():
global line
line_1_options = ["MIDNIGHT DREARY",
"FIERY EYES",
"BIRD OR FIEND",
"THING OF EVIL",
"PROPHET"]
line = line + line_1_options[i]
return line
def process_phrase_2():
global line
global u
line_2_options = [
("BEGUILING ME", 2),
("THRILLED ME", None),
("STILL SITTING....", None),
("NEVER FLITTING", 2),
("BURNED", None)]
words, u_modifier = line_2_options[i]
line += words
if not (u_modifier is None):
u = u_modifier
def process_phrase_3():
global line
phrases = [
(False, "AND MY SOUL"),
(False, "DARKNESS THERE"),
(False, "SHALL BE LIFTED"),
(False, "QUOTH THE RAVEN"),
(True, "SIGN OF PARTING"),
]
only_if_u, words = phrases[i]
if (not only_if_u) or (u > 0):
line = line + words
def process_phrase_4():
global line
phrases = [
("NOTHING MORE"),
("YET AGAIN"),
("SLOWLY CREEPING"),
("...EVERMORE"),
("NEVERMORE")]
line += phrases[i]
def maybe_comma():
# line 210
global u
global line
if len(line) > 0 and line[-1] == ".":
# don't follow a period with a comma, ever
return
if u != 0 and random.random() <= 0.19:
line += ", "
u = 2
# line 212
if random.random() <= 0.65:
line += " "
u += 1
else:
# line 214
print(line)
line = ""
u = 0
def pick_phrase():
global phrase
global line
global i, j, k
i = random.randint(0, 4)
j += 1
k += 1
if u <= 0 and (j % 2) != 0:
# random indentation is fun!
line += " " * 5
phrase = j + 1
def main():
print_centered("POETRY")
print_centered("CREATIVE COMPUTING MORRISTOWN, NEW JERSEY")
print()
print()
print()
global line, phrase, j, k, u
phrase_processors = {
1: process_phrase_1,
2: process_phrase_2,
3: process_phrase_3,
4: process_phrase_4
}
while True:
if phrase >= 1 and phrase <= 4:
phrase_processors[phrase]()
maybe_comma()
elif phrase == 5:
j = 0
print(line)
line = ""
if k > 20:
print()
u = 0
k = 0
else:
phrase = 2
continue
pick_phrase()
if __name__ == "__main__":
main()