Merge branch 'JoeStrout:main' into main

This commit is contained in:
chinhouse
2023-10-04 16:00:37 -07:00
committed by GitHub
27 changed files with 1742 additions and 11 deletions

View File

@@ -41,6 +41,7 @@ end function
// Bonus little feature when running in Mini Micro: display a header bar
// always at the top of the screen.
drawHeaders = function
if version.hostName != "Mini Micro" then return
display(2).mode = displayMode.text; td = display(2)
td.color = text.color; td.backColor = color.black
td.row = 25; td.column = 0

View File

@@ -0,0 +1,18 @@
Original source downloaded from [Vintage Basic](http://www.vintage-basic.net/games.html).
Conversion to [MiniScript](https://miniscript.org).
Ways to play:
1. Command-Line MiniScript:
Download for your system from https://miniscript.org/cmdline/, install, and then run the program with a command such as:
```
miniscript pizza.ms
```
2. Mini Micro:
Download Mini Micro from https://miniscript.org/MiniMicro/, launch, and then click the top disk slot and chose "Mount Folder..." Select the folder containing the MiniScript program and this README file. Then, at the Mini Micro command prompt, enter:
```
load "pizza"
run
```

View File

@@ -0,0 +1,98 @@
print " "*33 + "Pizza"
print " "*15 + "Creative Computing Morristown, New Jersey"
print; print; print
print "Pizza Delivery Game"; print
name = input("What is your first name? "); print
print "Hi, " + name + ". In this game you are to take orders"
print "for pizzas. Then you are to tell a delivery boy"
print "where to deliver the ordered pizzas."; print; print
// Convert a house name like "G" into coordinates like [3,2].
nameToCoords = function(name)
idx = name.code - "A".code
row = floor(idx / 4)
col = idx % 4
return [col+1, row+1]
end function
// Convert house coordinates like [3,2] into a house name like "G".
coordsToName = function(coords)
idx = (coords[1]-1)*4 + (coords[0]-1)
return char("A".code + idx)
end function
askYesNo = function(prompt)
while true
yn = input(prompt + "? ").lower + " "
if yn[0] == "y" then return "yes"
if yn[0] == "n" then return "no"
print "'Yes' or 'no' please, now then,"
end while
end function
input "(Press Return.)"; print
print "Map of the city of Hyattsville"; print
print " -----1-----2-----3-----4-----"
for row in range(4, 1)
print "-"; print "-"; print "-"
s = row + " "
for col in range(1, 4)
s += coordsToName([col, row]) + " "
end for
s += row
print s
end for
print "-"; print "-"; print "-"
print " -----1-----2-----3-----4-----"
input
print "The output is a map of the homes where"
print "you are to send pizzas."; print
print "Your job is to give a truck driver"
print "the location or coordinates of the"
print "home ordering the pizza."; print
if askYesNo("Do you need more directions") == "yes" then
print; print "Somebody will ask for a pizza to be"
print "delivered. Then a delivery boy will"
print "ask you for the location.";
print " Example:"
print "This is J. Please send a pizza."
print "Driver to " + name + ". Where does j live?"
print "Your answer would be 2,3"; print
if askYesNo("Understand") == "no" then
print "This job is definitely too difficult for you. Thanks anyway"
exit
end if
print "Good. you are now ready to start taking orders."; print
print "Good luck!!"; print
end if
while true
for turn in range(1,5)
coords = [floor(rnd*4+1), floor(rnd*4+1)]
buyer = coordsToName(coords)
print "Hello " + name + "'s Pizza. This is " + buyer +
". Please send a pizza."
while true
while true
inp = input(" Driver to " + name + ": Where does " + buyer + " live? ")
inp = inp.replace(",", " ").replace(" ", " ")
inp = inp.split + [0,0]
guess = [inp[0].val, inp[1].val]
if 1 <= guess[0] <= 4 and 1 <= guess[1] <= 4 then break
end while
if guess == coords then
print "Hello " + name + ". This is " + buyer + ", thanks for the pizza."
break
else
print "This is " + coordsToName(guess) + ". I did not order a pizza."
print "I live at " + guess.join(",")
end if
end while
print
end for
if askYesNo("Do you want to deliver more pizzas") == "no" then break
end while
print; print "O.K. " + name + ", see you later!"; print

View File

@@ -0,0 +1,18 @@
Original source downloaded from [Vintage Basic](http://www.vintage-basic.net/games.html).
Conversion to [MiniScript](https://miniscript.org).
Ways to play:
1. Command-Line MiniScript:
Download for your system from https://miniscript.org/cmdline/, install, and then run the program with a command such as:
```
miniscript poetry.ms
```
2. Mini Micro:
Download Mini Micro from https://miniscript.org/MiniMicro/, launch, and then click the top disk slot and chose "Mount Folder..." Select the folder containing the MiniScript program and this README file. Then, at the Mini Micro command prompt, enter:
```
load "poetry"
run
```

View File

@@ -0,0 +1,51 @@
print " "*30 + "POETRY"
print " "*15 + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
print; print; print
I = 0; J = 0; K = 0; U = 0
// Note: infinite loop. Press control-C to break.
while true
if J == 1 then
print ["MIDNIGHT DREARY", "FIERY EYES",
"BIRD OR FIEND", "THING OF EVIL", "PROPHET"][I-1], ""
else if J == 2 then
if I == 1 or I == 4 then U = 2
if I == 3 then U = 0
print ["BEGUILING ME", "THRILLED ME",
"STILL SITTING....", "NEVER FLITTING", "BURNED"][I-1], ""
else if J == 3 then
if U != 0 or I < 5 then
print ["AND MY SOUL", "DARKNESS THERE",
"SHALL BE LIFTED", "QUOTH THE RAVEN", "SIGN OF PARTING"][I-1], ""
end if
else if J == 4 then
print ["NOTHING MORE", "YET AGAIN",
"SLOWLY CREEPING", "...EVERMORE", "NEVERMORE"][I-1], ""
end if
if U != 0 and rnd <= 0.19 then
print ",", ""
U = 2
end if
if rnd <= 0.65 then
print " ", ""
U += 1
else
print
U = 0
end if
while true
I =floor(floor(10*rnd)/2)+1
J += 1
K += 1
if U == 0 and floor(J/2) == J/2 then print " ", ""
if J <= 5 then break
J = 0
print
if K <= 20 then continue
print
U = 0
K = 0
break
end while
end while

View File

@@ -0,0 +1,18 @@
Original source downloaded from [Vintage Basic](http://www.vintage-basic.net/games.html).
Conversion to [MiniScript](https://miniscript.org).
Ways to play:
1. Command-Line MiniScript:
Download for your system from https://miniscript.org/cmdline/, install, and then run the program with a command such as:
```
miniscript poker.ms
```
2. Mini Micro:
Download Mini Micro from https://miniscript.org/MiniMicro/, launch, and then click the top disk slot and chose "Mount Folder..." Select the folder containing the MiniScript program and this README file. Then, at the Mini Micro command prompt, enter:
```
load "poker"
run
```

View File

@@ -0,0 +1,557 @@
print " "*33 + "POKER"
print " "*15 + "Creative Computing Morristown, New Jersey"
print; print; print
print "Welcome to the casino. We each have $200."
print "I will open the betting before the draw; you open after."
print "To fold bet 0; to check bet .5."
print "Enough talk -- let's get down to business."
print
askYesNo = function(prompt)
while true
yn = input(prompt + "? ").lower + " "
if yn[0] == "y" then return "yes"
if yn[0] == "n" then return "no"
print "Answer yes or no, please."
end while
end function
askNumber = function(prompt, maxQty=3, minQty=1, maxErr=null, minErr=null)
while true
value = input(prompt + "? ").val
if minQty <= value <= maxQty then return value
if value < minQty and minErr != null then
print minErr
else if maxErr != null then
print maxErr
else
print "Enter a value between " + minQty + " and " + maxQty + ", please."
end if
end while
end function
random = function(n)
return floor(n * rnd)
end function
rand10 = function
return floor(10 * rnd)
end function
pad = function(s, width)
return s + " " * (width - s.len)
end function
// Bonus little feature when running in Mini Micro: display a header bar
// always at the top of the screen, showing current balances. Does nothing
// on other platforms.
drawHeaders = function
if version.hostName != "Mini Micro" then return
display(2).mode = displayMode.text; td = display(2)
td.color = color.black; td.backColor = text.color
td.row = 25; td.column = 0
td.print pad("Computer: $" + computer.balance, 25) +
pad("Table: $" + Table.pot, 25) +
pad("Player: $" + human.balance, 18)
end function
// Card class: represents a single playing card
Card = {}
Card.rank = 0 // from 2 to 14 (Ace)
Card.suit = "Clubs"
Card.keep = false // temp flag, used to note which cards to keep vs. discard
Card.make = function(rank, suit)
result = new Card
result.rank = rank
result.suit = suit
return result
end function
Card.rankStr = function(plural=false)
if self.rank > 10 then
return ["Jack", "Queen", "King", "Ace"][self.rank-11] + "s"*plural
else
return str(self.rank) + "'s" * plural
end if
end function
Card.str = function
return self.rankStr + " of " + self.suit
end function
// Prepare a standard deck of 52 cards, and functions to draw and discard
deck = []
for suit in ["Clubs", "Diamonds", "Hearts", "Spades"]
for rank in range(2, 14)
deck.push Card.make(rank, suit)
end for
end for
deck.shuffle
discardPile = []
drawCard = function
if not deck then
globals.deck = discardPile
deck.shuffle
globals.discardPile = []
end if
return deck.pop
end function
discard = function(cardOrCards)
if cardOrCards isa Hand then
globals.discardPile += cardOrCards.cards
else if cardOrCards isa list then
globals.discardPile += cardOrCards
else
discardPile.push cardOrCards
end if
end function
// Hand ranks: how we compare Poker hands
HandRank = {}
HandRank.value = 0
HandRank.str = function(highCard); return ""; end function
HandRank.make = function(value)
result = new HandRank
result.value = value
return result
end function
HandRank.None = new HandRank
HandRank.Schmaltz = HandRank.make(1)
HandRank.Schmaltz.str = function(c); return "schmaltz, " + c.rankStr + " high"; end function
HandRank.PartialStraight = HandRank.make(2)
HandRank.PartialStraight.str = function(c); return ""; end function // (no display string; this is used only internally)
HandRank.Pair = HandRank.make(3)
HandRank.Pair.str = function(c); return "a pair of " + c.rankStr(true); end function
HandRank.TwoPair = HandRank.make(4)
HandRank.TwoPair.str = function(c); return "two pair, " + c.rankStr(true); end function
HandRank.Three = HandRank.make(5)
HandRank.Three.str = function(c); return "three " + c.rankStr(true); end function
HandRank.Straight = HandRank.make(6)
HandRank.Straight.str = function(c); return "straight, " + c.rankStr + " high"; end function
HandRank.Flush = HandRank.make(7)
HandRank.Flush.str = function(c); return "a flush in " + c.suit; end function
HandRank.FullHouse = HandRank.make(8)
HandRank.FullHouse.str = function(c); return "full house, " + c.rankStr(true); end function
HandRank.Four = HandRank.make(9)
HandRank.Four.str = function(c); return "four " + c.rankStr(true); end function
// Note: original code does not detect a straight flush or royal flush.
// Hand: represents a set of cards in the hand of one player.
Hand = {}
Hand.cards = null // list of Card
Hand.rank = null // HandRank instance
Hand.highCard = null // reference to which (of self.cards) determines relative value
Hand.afterDraw = false // true if we've already had a chance to draw cards
Hand.make = function(cards)
result = new Hand
result.cards = cards
result.analyze
return result
end function
Hand.deal = function
return Hand.make([drawCard, drawCard, drawCard, drawCard, drawCard])
end function
Hand.replaceCard = function(index)
discard self.cards[index]
self.cards[index] = drawCard
end function
Hand.rankStr = function
return self.rank.str(self.highCard)
end function
Hand.isWeak = function
return self.rank.value < HandRank.PartialStraight.value or
(self.rank.value == HandRank.PartialStraight.value and self.afterDraw) or
(self.rank <= HandRank.TwoPair.value and self.highCard.rank <= 6)
end function
Hand.beats = function(other)
if self.rank.value > other.rank.value then return true
if self.rank.value < other.rank.value then return false
return self.highCard.rank > other.highCard.rank
end function
Hand.print = function(startingNumber=1)
num = startingNumber
for c in self.cards
s = " " * (num < 10) + num + " -- " + c.str
print " " + s, ""
if num % 2 == 0 then
print
else
print " " * (28-s.len), ""
end if
num += 1
end for
if num % 2 == 0 then print
end function
Hand.analyze = function
allSameSuit = true
for i in range(1, self.cards.len-1)
if self.cards[i].suit != self.cards[0].suit then allSameSuit = false
end for
if allSameSuit then
self.rank = HandRank.Flush
self.highCard = self.cards[0]
return
end if
sortedCards = self.cards[:]
sortedCards.sort "rank"
self.rank = HandRank.Schmaltz
for c in sortedCards; c.keep = false; end for
keepAny = false
for i in range(0, sortedCards.len-2)
matchesNextCard = (sortedCards[i].rank == sortedCards[i+1].rank)
if matchesNextCard then
self.highCard = sortedCards[i]
matchesPrevCard = (i > 0 and sortedCards[i].rank == sortedCards[i-1].rank)
sortedCards[i].keep = true
sortedCards[i+1].keep = true
keepAny = true
if self.rank.value < HandRank.Pair.value then
self.rank = HandRank.Pair
else if matchesPrevCard and self.rank == HandRank.Pair then
self.rank = HandRank.Three
else if self.rank == HandRank.Pair then
self.rank = HandRank.TwoPair
else if self.rank == HandRank.TwoPair then
self.rank = HandRank.FullHouse
else if matchesPrevCard then
self.rank = HandRank.Four
else
self.rank = HandRank.FullHouse
end if
end if
end for
if not keepAny then
if sortedCards[3].rank - sortedCards[0].rank == 3 then
for i in range(0,3); sortedCards[i].keep = true; end for
self.rank = HandRank.PartialStraight
end if
if sortedCards[4].rank - sortedCards[1].rank == 3 then
if self.rank == HandRank.PartialStraight then
self.rank = HandRank.Straight
sortedCards[4].keep = true
self.highCard = sortedCards[4]
else
self.rank = HandRank.PartialStraight
for i in range(1,4); sortedCards[i].keep = true; end for
end if
end if
end if
if self.rank == HandRank.Schmaltz then
self.highCard = sortedCards[4]
sortedCards[4].keep = true
sortedCards[3].keep = true
end if
end function
// Some global constants, just to make the code more understandable
Ante = 5
// Player -- base class for computer and human
Player = {}
Player.balance = 200
Player.hand = null
Player.totalBet = 0
Player.anteUp = function
self.balance -= Ante
return Ante
end function
Player.newHand = function
if self.hand then discard self.hand
self.hand = Hand.deal
self.totalBet = 0
end function
Player.addToPot = function(amount)
self.balance -= amount
Table.pot += amount
drawHeaders
end function
Player.win = function
self.balance += Table.pot
Table.pot = 0
drawHeaders
end function
// strategies the computer player might employ
Strategy = {}
Strategy.make = function(name, value=2, drawCount=null)
result = new Strategy
result.name = name
result.value = value
result.drawCount = drawCount
return result
end function
Strategy.fold = Strategy.make("FOLD")
Strategy.check = Strategy.make("CHECK")
Strategy.raise = Strategy.make("RAISE", 2)
Strategy.bluff = function(value, drawCount); return Strategy.make("BLUFF", value, drawCount); end function
Strategy.bet = function(value); return Strategy.make("BET", value); end function
// computer player
computer = new Player
computer.strategy = null
computer.newHand = function
super.newHand
if self.hand.isWeak then
if rand10 < 2 then
self.strategy = Strategy.bluff(23, 2)
else if rand10 < 2 then
self.strategy = Strategy.bluff(23, 1)
else if rand10 < 1 then
self.strategy = Strategy.bluff(23, 0)
else
self.strategy = Strategy.fold
end if
else if self.hand.rank.value < HandRank.Three.value then
if rand10 < 2 then self.strategy = Strategy.bluff(23, null) else self.strategy = Strategy.check
else if self.hand.rank.value < HandRank.FullHouse.value then
self.strategy = Strategy.bet(35)
else
if rand10 < 1 then self.strategy = Strategy.bet(35) else self.strategy = Strategy.raise
end if
end function
computer.bet = function(minBet=1, openingBet=false)
//print "My hand: "; self.hand.print; print "Strategy: " + self.strategy
if self.balance < minBet then
print "I fold."
return 0
end if
if openingBet and (self.strategy == Strategy.check or self.strategy == Strategy.fold) then
print "I check."
return 0.5
else if self.strategy == Strategy.fold and human.totalBet > 5 then
print "I fold."
return 0
else if self.strategy == Strategy.check then
print "I'll see you."
return minBet
else if openingBet then
result = self.strategy.value + rand10
if result > self.balance then result = self.balance
if result == 0 then
print "I check."
return 0.5
end if
print "I'll open with $" + result
return result
else
bet = self.strategy.value + rand10
if self.strategy == Strategy.raise then bet += minBet
if bet > self.balance then bet = self.balance
raise = bet - minBet
if raise <= 0 then
print "I'll see you."
return minBet
else
print "I'll see you, and raise you " + raise
return bet
end if
end if
end function
computer.drawCards = function
//print "My hand:"; self.hand.print
drawCount = 0
for c in self.hand.cards; if not c.keep then drawCount += 1; end for
print "I am taking " + drawCount + " card" + "s" * (drawCount != 1)
for i in self.hand.cards.indexes
if not self.hand.cards[i].keep then self.hand.replaceCard i
end for
self.hand.analyze
//print "My new hand: "; self.hand.print
if self.strategy.name == "BLUFF" then
self.strategy = Strategy.bluff(28)
else if self.hand.isWeak then
self.strategy = Strategy.fold
else if self.hand.rank.value < HandRank.Three.value then
if rand10 == 0 then self.strategy = Strategy.bet(19) else self.strategy = Strategy.raise
else if self.hand.rank.value < HandRank.FullHouse.value then
if rand10 == 0 then self.strategy = Strategy.bet(11) else self.strategy = Strategy.bet(19)
else
self.strategy = Strategy.raise
end if
end function
computer.win = function
print; print "I win."
super.win
end function
computer.checkFunds = function
if self.balance >= Ante then return
if human.balance < 50 then return // BUGFIX
if human.hasWatch or askYesNo("Would you like to buy back your watch for $50") == "no" then
print "I'm busted. Conglatulations!"
exit
end if
self.balance += 50
// Note: original BASIC code does not take money from the player, but let's fix that:
human.balance -= 50 // BUGFIX
human.hasWatch = true
drawHeaders
end function
human = new Player
human.hasWatch = true
human.bet = function(minBet=1, openingBet=false)
while true
betStr = input("What is your bet? ")
bet = betStr.val
if bet == 0 and betStr != "0" then
print "Enter 0 to fold, 0.5 to check, or a value of 1 or more to bet."
continue
else if bet == 0.5 and openingBet then
return bet // (check)
else if 0 < bet < 1 then
print "No small change, please."
continue
else if bet < minBet then
print "If you can't see my bet, then fold."
continue
else if bet > self.balance then
print "You can't bet with what you haven't got."
self.trySellWatch
continue
end if
return bet
end while
end function
human.drawCards = function
qty = askNumber("How many cards do you want", 3, 0, "You can't draw more than three cards.")
if qty == 0 then return
print "What are their numbers: "
for i in range(1, qty)
num = askNumber("", 5, 1)
self.hand.replaceCard num - 1
end for
print "Your new hand:"
self.hand.print
self.hand.analyze
end function
human.win = function
print; print "You win."
super.win
end function
human.checkFunds = function
if self.balance < Ante then self.trySellWatch
if self.balance < Ante then
print "Your wad is shot. So long, sucker!"
exit
end if
end function
human.trySellWatch = function
if not self.hasWatch then return
if rand10 < 7 then
value = 75
msg = "I'll give you $" + value + " for it."
else
value = 25
msg = "That's a pretty crummy watch - I'll give you $" + value + "."
end if
if computer.balance < value then return // BUGFIX
if askYesNo("Would you like to sell your watch") == "no" then return
print msg
self.balance += value
self.hasWatch = false
// Note: the original BASIC program does not actually take any money from the computer.
// But let's do it right here:
computer.balance -= value // BUGFIX
drawHeaders
end function
Table = {}
Table.pot = 0
deal = function
Table.pot += computer.anteUp + human.anteUp
drawHeaders
computer.newHand
human.newHand
end function
// Do a round of betting. Return true to continue, or false
// if either player folds (ending the hand).
takeBets = function(computerFirst)
if computerFirst then
bet = computer.bet(1, true)
if bet == 0 then
human.win
return false
end if
if bet == 0.5 then bet = 0 // "check" (no bet, but stay in the hand)
computer.addToPot bet
else
bet = 0
end if
raise = bet
canCheck = (bet == 0)
while true
bet = human.bet(raise, canCheck)
if bet == 0 then
computer.win
return false
end if
if bet == 0.5 then // (checked)
if computerFirst then return true
bet = 0
else
human.addToPot bet
raise = bet - raise
if raise == 0 then return true
end if
if computerFirst or bet > 0 then canCheck = false
bet = computer.bet(raise, canCheck)
if bet == 0 then
human.win
return false
end if
if bet == 0.5 then return true // (checked)
canCheck = false
computer.addToPot bet
raise = bet - raise
if raise == 0 then return true
end while
end function
playHand = function
print
computer.checkFunds
human.checkFunds
print "The ante is " + Ante + ". I will deal:"
print
deal
print "Your hand:"
human.hand.print
print
if not takeBets(true) then return
print; print "Now we draw -- ", ""
human.drawCards
computer.drawCards
if not takeBets(false) then return
print; print "Now we compare hands:"
print "My hand:"
computer.hand.print 6
print
print "You have " + human.hand.rankStr
print "I have " + computer.hand.rankStr
if computer.hand.beats(human.hand) then
computer.win
else if human.hand.beats(computer.hand) then
human.win
else
print "The hand is drawn."
print "All $" + Table.pot + " remains in the pot."
end if
end function
drawHeaders
while true
playHand
print "Now I have $" + computer.balance + " and you have $" + human.balance
if askYesNo("Do you wish to continue") == "no" then break
end while

View File

@@ -0,0 +1,18 @@
Original source downloaded from [Vintage Basic](http://www.vintage-basic.net/games.html).
Conversion to [MiniScript](https://miniscript.org).
Ways to play:
1. Command-Line MiniScript:
Download for your system from https://miniscript.org/cmdline/, install, and then run the program with a command such as:
```
miniscript queen.ms
```
2. Mini Micro:
Download Mini Micro from https://miniscript.org/MiniMicro/, launch, and then click the top disk slot and chose "Mount Folder..." Select the folder containing the MiniScript program and this README file. Then, at the Mini Micro command prompt, enter:
```
load "queen"
run
```

View File

@@ -0,0 +1,151 @@
print " "*33 + "QUEEN"
print " "*15 + "Creative Computing Morristown New Jersey"
print; print; print
getYesNo = function(prompt)
while true
inp = input(prompt + "? ").lower + " "
if inp[0] == "y" then return "yes"
if inp[0] == "n" then return "no"
print "Please answer 'yes' or 'no'."
end while
end function
printDirections = function
print "We are going to play a game based on one of the chess"
print "moves. Our queen will be able to move only to the left "
print "down or diagonally down and to the left."
print
print "The object of the game is to place the queen in the lower"
print "left hand square by alternating moves between you and the"
print "computer. The first one to place the queen there wins."
print
print "You go first and place the queen in any one of the squares"
print "on the top row or right hand column."
print "That will be your first move."
print "We alternate moves."
print "You may forfeit by typing '0' as your move."
print "Be sure to press the return key after each response."
print
input "(Press Return to continue.)"
print
end function
printCoordinates = function
// Porting note: I cannot imagine what possessed the original author to
// use such a crazy numbering scheme, which is not easy for the human
// player OR the code. But assumptions about it are scattered throughout
// the whole program, so we're stuck with it.
print
print " 81 71 61 51 41 31 21 11"
print " 92 82 72 62 52 42 32 22"
print " 103 93 83 73 63 53 43 33"
print " 114 104 94 84 74 64 54 44"
print " 125 115 105 95 85 75 65 55"
print " 136 126 116 106 96 86 76 66"
print " 147 137 127 117 107 97 87 77"
print " 158 148 138 128 118 108 98 88"
print
end function
getStartPos = function
while true
m1 = input("Where would you like to start? ").val
tens = floor(m1/10)
ones = m1 % 10
if ones == 1 or tens == ones or m1 == 0 then return m1
print "Please read the directions again."
print "You have begun illegally."
print
end while
end function
isGoodMove = function(ones, tens)
pos = 10 * tens + ones
return [158, 127, 126, 75, 73].indexOf(pos) != null
end function
getRandomMove = function(queenPos)
tens = floor(queenPos/10)
ones = queenPos % 10
z = rnd
if z > 0.6 then
return 10 * (tens+1) + ones
else if z > 0.3 then
return 10 * (tens+2) + (ones+1)
else
return 10 * (tens+1) + ones
end if
end function
getComputerMove = function(queenPos)
tens = floor(queenPos/10)
ones = queenPos % 10
if [41, 44, 73, 75, 126, 127].indexOf(queenPos) != null then return getRandomMove(queenPos)
for k in range(7, 1)
if isGoodMove(ones, tens+k) then return 10 * (tens+k) + ones // left
if isGoodMove(ones+k, tens+k) then return 10 * (tens+k) + (ones+k) // down
if isGoodMove(ones+k, tens+k*2) then return 10 * (tens+k*2) + (ones+k) // down-left
end for
return getRandomMove(queenPos)
end function
getHumanMove = function(queenPos)
tens = floor(queenPos/10)
ones = queenPos % 10
while true
pos = input("What is your move? ").val
if pos == 0 then return 0
dTens = floor(pos/10) - tens
dOnes = pos % 10 - ones
ok = false
if dOnes == 0 and dTens > 0 then ok = true // moving left
if dOnes == dTens and dOnes > 0 then ok = true // moving down
if dTens == dOnes*2 and dOnes > 0 then ok = true // moving down-left
if ok then return pos
print
print "Y O U C H E A T . . . Try again";
end while
end function
playGame = function
queenPos = getStartPos
while true
if queenPos == 0 then
print "It looks like I have won by forfeit."
return
end if
// computer move
queenPos = getComputerMove(queenPos)
print "Computer moves to square " + queenPos
if queenPos == 158 then
print
print "Nice try, but it looks like I have won."
return
end if
// human move
queenPos = getHumanMove(queenPos)
if queenPos == 158 then
print
print "C O N G R A T U L A T I O N S . . ."
print
print "You have won--very well played."
print "It looks like I have met my match."
print "Thanks for playing---I can't win all the time."
return
end if
end while
end function
// Main program
if getYesNo("Do you want instructions") == "yes" then printDirections
while true
printCoordinates
playGame
print
if getYesNo("Anyone else care to try") == "no" then break
end while
print
print "OK --- Thanks again."

View File

@@ -0,0 +1,21 @@
Original source downloaded from [Vintage Basic](http://www.vintage-basic.net/games.html).
Conversion to [MiniScript](https://miniscript.org).
Ways to play:
0. Try-It! Page:
Go to https://miniscript.org/tryit/, clear the sample code from the code editor, and paste in the contents of rockscissors.ms. Then click the "Run Script" button. Program output (and input) will appear in the green-on-black terminal display to the right of or below the code editor.
1. Command-Line MiniScript:
Download for your system from https://miniscript.org/cmdline/, install, and then run the program with a command such as:
```
miniscript rockscissors.ms
```
2. Mini Micro:
Download Mini Micro from https://miniscript.org/MiniMicro/, launch, and then click the top disk slot and chose "Mount Folder..." Select the folder containing the MiniScript program and this README file. Then, at the Mini Micro command prompt, enter:
```
load "rockscissors"
run
```

View File

@@ -0,0 +1,40 @@
print " "*21 + "Game of Rock, Scissors, Paper"
print " "*15 + "Creative Computing Morristown New Jersey"
print; print; print
while true
numGames = input("How many games? ").val
if 0 < numGames < 11 then break
print "Sorry, but we aren't allowed to play that many."
end while
computerWins = 0
playerWins = 0
for game in range(1, numGames)
print; print "Game number " + game
myChoice = floor(rnd*3 + 1)
while true
print "3=Rock...2=Scissors...1=Paper"
playerChoice = input("1...2...3...What's your choice? ").val
if [1,2,3].indexOf(playerChoice) != null then break
print "Invalid."
end while
print "This is my choice..."
print ["...Paper", "...Scissors", "...Rock"][myChoice-1]
diff = myChoice - playerChoice
if diff == 0 then
print "Tie game. No winner."
else if diff == 1 or diff == -2 then
print "Wow! I win!!!"
computerWins += 1
else
print "You win!!!"
playerWins += 1
end if
end for
print; print "Here is the final game score:"
print "I have won " + computerWins + " game(s)."
print "You have won " + playerWins + " game(s)."
print "And " + (numGames - computerWins - playerWins) + " game(s) ended in a tie."
print; print "Thanks for playing!!"

View File

@@ -0,0 +1,18 @@
Original source downloaded from [Vintage Basic](http://www.vintage-basic.net/games.html).
Conversion to [MiniScript](https://miniscript.org).
Ways to play:
1. Command-Line MiniScript:
Download for your system from https://miniscript.org/cmdline/, install, and then run the program with a command such as:
```
miniscript roulette.ms
```
2. Mini Micro:
Download Mini Micro from https://miniscript.org/MiniMicro/, launch, and then click the top disk slot and chose "Mount Folder..." Select the folder containing the MiniScript program and this README file. Then, at the Mini Micro command prompt, enter:
```
load "roulette"
run
```

View File

@@ -0,0 +1,200 @@
print " "*32 + "Roulette"
print " "*15 + "Creative Computing Morristown New Jersey"
print; print; print
if version.hostName == "Mini Micro" then
import "dateTime"
globals.date = dateTime.str(dateTime.now, "MMM d, yyyy")
else
globals.date = input("Enter the current date (as in 'Jan 23, 1979') - ")
end if
yn = input("Do you want instructions? ").lower + " "
if yn[0] != "n" then
print
print "This is the betting layout"
print " (*=Red)"
print
print " 1* 2 3*"
print " 4 5* 6 "
print " 7* 8 9*"
print "10 11 12*"
print "---------------"
print "13 14* 15 "
print "16* 17 18*"
print "19* 20 21*"
print "22 23* 24 "
print "---------------"
print "25* 26 27*"
print "28 29 30*"
print "31 32* 33 "
print "34* 35 36*"
print "---------------"
print " 00 0 "
print
input "(Press Return at each pause.)"
print
print "Types of Bets"
print
print "The numbers 1 to 36 signify a straight bet"
print "on that number."
print "These pay off 35:1"
print
print "The 2:1 bets are:"
print " 37) 1-12 40) first column"
print " 38) 13-24 41) second column"
print " 39) 25-36 42) third column"
print
print "The even money bets are:"
print " 43) 1-18 46) odd"
print " 44) 19-36 47) red"
print " 45) even 48) black"
print
print " 49)0 and 50)00 pay off 35:1"
print " NOTE: 0 and 00 do not count under any"
print " bets except their own."
input
print "When I ask for each bet, type the number"
print "and the amount, separated by a comma."
print "For example: to bet $500 on black, type 48,500"
print "when I ask for a bet."
print
print "The minimum bet is $5, the maximum is $500."
print
end if
redNumbers = [1,3,5,7,9,12,14,16,18,19,21,23,25,27,30,32,34,36]
// function to convert a number 1-38 to a number/description, like "00"
// or "7 RED"
numDesc = function(number)
if number == 37 then return "0"
if number == 38 then return "00"
s = str(number)
if redNumbers.indexOf(number) == null then
return s + " BLACK"
else
return s + " RED"
end if
end function
// function to calculate the payout factor (positive if player wins,
// or -1 if player loses) for the given bet and actual spin.
payoutFactor = function(bet, spin)
if bet <= 36 then // straight bet, pays 35:1
if bet == spin then return 35 else return -1
else if bet == 49 then // 0, pays 35:1
if spin == 37 then return 35 else return -1
else if bet == 50 then // 00, pays 35:1
if spin == 38 then return 35 else return -1
else if bet == 37 then // 1-12, pays 2:1
if 1 <= spin <= 12 then return 2 else return -1
else if bet == 38 then // 13-24, pays 2:1
if 13 <= spin <= 24 then return 2 else return -1
else if bet == 39 then // 25-36, pays 2:1
if 25 <= spin <= 36 then return 2 else return -1
else if bet == 40 then // first column, pays 2:1
if spin % 3 == 1 then return 2 else return -1
else if bet == 41 then // second column, pays 2:1
if spin % 3 == 2 then return 2 else return -1
else if bet == 42 then // third column, pays 2:1
if spin % 3 == 0 then return 2 else return -1
else if bet == 43 then // 1-18, even money
if 1 <= spin <= 18 then return 1 else return -1
else if bet == 44 then // 19-36, even money
if 19 <= spin <= 36 then return 1 else return -1
else if bet == 45 then // even number, even money
if spin % 2 == 0 then return 1 else return -1
else if bet == 46 then // odd number, even money
if spin % 2 == 1 then return 1 else return -1
else if bet == 47 then // red, even money
if redNumbers.indexOf(spin) != null then return 1 else return -1
else if bet == 48 then // black, even money
if redNumbers.indexOf(spin) == null then return 1 else return -1
end if
print "Invalid bet " + bet + " in payoutFactor"
end function
playerCash = 1000
houseCash = 100000
x = [0] * 38 // (keeps track of how often each number comes up)
while playerCash > 0
// Get the player's bets
numBets = input("How many bets? ").val
if numBets < 1 then continue
bets = []; amounts = []
for i in range(1, numBets)
while true
s = input("Number " + i + "? ").replace(",", " ").replace(" ", " ").split
if s.len != 2 then continue
bet = s[0].val; amount = s[1].val
if bets.indexOf(bet) != null then
print "You made that bet once already,dum-dum"
continue
end if
if 1 <= bet <= 50 and 5 <= amount <= 500 then
bets.push bet
amounts.push amount
break
end if
end while
end for
// Spin the wheel!
print "Spinning"
print
print
spin = floor(38 * rnd + 1)
x[spin] += 1
print numDesc(spin)
print
// Now, pay out the bets
for i in bets.indexes
f = payoutFactor(bets[i], spin)
if f > 0 then
print "You win " + f*amounts[i] + " on bet " + i
else
print "You lose " + (-f)*amounts[i] + " on bet " + i
end if
playerCash += f * amounts[i]
houseCash -= f * amounts[i]
end for
print
print "Totals: ME YOU"
print " " + (houseCash+" "*12)[:12] + playerCash
if playerCash > 0 and houseCash > 0 then
yn = input("Again? ").lower + " "
if yn[0] != "y" then break
end if
end while
if houseCash < 1 then
print "You broke the house!"
playerCash = 101000
end if
if playerCash < 1 then
print "Oops! You just spent your last dollar!"
print "Thanks for your money."
print "I'll use it to buy a solid gold roulette wheel"
print
else
name = input("To whom shall I make the check? ")
print
print "-"*68
print " "*55 + "Check No. " + floor(rnd*100)
print
print " "*(67 - date.len) + date
print
print
print "Pay to the order of-----" + name + "-----$ " + playerCash
print
print
print " "*10 + "The Memory Bank of New York"
print
print " "*35 + "The Computer"
print " "*35 + "----------X-----"
print
print "-"*68
print "Come back soon!"
end if

View File

@@ -0,0 +1,21 @@
Original source downloaded from [Vintage Basic](http://www.vintage-basic.net/games.html).
Conversion to [MiniScript](https://miniscript.org).
Ways to play:
0. Try-It! Page:
Go to https://miniscript.org/tryit/, clear the sample code from the code editor, and paste in the contents of russianroulette.ms. Then click the "Run Script" button. Program output (and input) will appear in the green-on-black terminal display to the right of or below the code editor.
1. Command-Line MiniScript:
Download for your system from https://miniscript.org/cmdline/, install, and then run the program with a command such as:
```
miniscript russianroulette.ms
```
2. Mini Micro:
Download Mini Micro from https://miniscript.org/MiniMicro/, launch, and then click the top disk slot and chose "Mount Folder..." Select the folder containing the MiniScript program and this README file. Then, at the Mini Micro command prompt, enter:
```
load "russianroulette"
run
```

View File

@@ -0,0 +1,37 @@
print " "*28 + "Russian Roulette"
print " "*15 + "Creative Computing Morristown New Jersey"
print; print; print
print "This is a game of >>>>>>>>>>Russian Roulette."
while true
print; print "Here is a revolver."
print "Type '1' to spin chamber and pull trigger."
print "Type '2' to give up."
print "GO"
n = 0
while n < 10
inp = input("? ").val
if inp == 2 then
print " CHICKEN!!!!!"
break
else if rnd > 0.833333 then
print " BANG!!!!! You're dead!"
print "Condolences will be sent to your relatives."
break
else
n += 1
print "- CLICK -"
print
end if
end while
if n >= 10 then
print "You win!!!!!"
print "Let someone else blow his brains out."
else
print; print; print
print "...Next victim..."
end if
end while

View File

@@ -0,0 +1,18 @@
Original source downloaded from [Vintage Basic](http://www.vintage-basic.net/games.html).
Conversion to [MiniScript](https://miniscript.org).
Ways to play:
1. Command-Line MiniScript:
Download for your system from https://miniscript.org/cmdline/, install, and then run the program with a command such as:
```
miniscript salvo.ms
```
2. Mini Micro:
Download Mini Micro from https://miniscript.org/MiniMicro/, launch, and then click the top disk slot and chose "Mount Folder..." Select the folder containing the MiniScript program and this README file. Then, at the Mini Micro command prompt, enter:
```
load "salvo"
run
```

View File

@@ -0,0 +1,240 @@
print " "*33 + "Salvo"
print " "*15 + "Creative Computing Morristown New Jersey"
print; print; print
import "listUtil"
Ship = {}
Ship.name = "Ship"
Ship.positions = null // list of [x,y] coordinates for this ship
Ship.shots = 1 // how many shots this ship provides
Ship.hitPoints = 1 // how many hits this ship can take before sinking
Ship.make = function(name, shots=1, size=2)
result = new Ship
result.name = name
result.shots = shots
result.positions = []
result.hitPoints = size
return result
end function
Board = {}
Board.ships = null // list of Ship instances
Board.splash = null // 2D array of: none, or turn on which it was hit
Board.shipAt = function(xy)
for ship in self.ships
if ship.positions.contains(xy) then return ship
end for
end function
Board.isEmptySpot = function(xy)
return 0 < xy[0] < 11 and 0 < xy[1] < 11 and self.shipAt(xy) == null
end function
Board.make = function
result = new Board
result.ships = []
result.splash = list.init2d(11, 11)
return result
end function
Board.totalShots = function
sum = 0
for ship in self.ships
sum += ship.shots
end for
return sum
end function
computerBoard = Board.make
playerBoard = Board.make
directions = [[-1,-1], [-1,0], [-1,1], [0,-1], [0,1], [1,-1], [1,0], [1,1]]
randomPosition = function
return [1 + floor(rnd*10), 1 + floor(rnd*10)]
end function
inputCoords = function(prompt="?")
while true
inp = input(prompt + "? ").replace(",", " ").replace(" ", " ").split
if inp.len != 2 then
print "Please enter coordinates such as: 5,3"
else
x = inp[0].val
y = inp[1].val
if 0 < x < 11 and 0 < y < 11 then return [x,y]
print "X and Y coordinates must be in the range 1-10."
end if
end while
end function
inBounds = function(pos)
return 0 < pos[0] < 11 and 0 < pos[1] < 11
end function
placeComputerShips = function
placeOne = function(ship)
while true
pos = randomPosition
dir = directions.any
ok = true
p = pos[:]
for i in range(0, ship.hitPoints - 1)
if not computerBoard.isEmptySpot(p) then ok = false
p.add dir
end for
if ok then break
end while
for i in range(0, ship.hitPoints - 1)
ship.positions.push pos[:]
pos.add dir
end for
computerBoard.ships.push ship
end function
placeOne Ship.make("Battleship", 3, 5)
placeOne Ship.make("Cruiser", 2, 3)
placeOne Ship.make("Destroyer<A>", 1, 2)
placeOne Ship.make("Destroyer<B>", 1, 2)
end function
placePlayerShips = function
placeOne = function(ship)
print ship.name
playerBoard.ships.push ship
// Note: like the original BASIC program, we do no validation on
// the input other than making sure it is in range. So you can
// have a ship scattered all over the map, have ships overlap, etc.
for i in range(1, ship.hitPoints)
ship.positions.push inputCoords
end for
end function
print "Enter coordinates for..."
placeOne Ship.make("Battleship", 3, 5)
placeOne Ship.make("Cruiser", 2, 3)
placeOne Ship.make("Destroyer<A>", 1, 2)
placeOne Ship.make("Destroyer<B>", 1, 2)
end function
printComputerShips = function
for ship in computerBoard.ships
print ship.name
for pos in ship.positions
print " " + pos.join(" ")
end for
end for
end function
doPlayerTurn = function(turnNum = 1)
shots = playerBoard.totalShots
print "You have " + shots + " shot" + "s"*(shots!=1) + "."
if shots < 1 then
print "I have won."
exit
end if
hits = []
for i in range(1, shots)
while true
pos = inputCoords
prevHitOnTurn = computerBoard.splash[pos[0]][pos[1]]
if prevHitOnTurn == null then break
print "You shot there before on turn " + prevHitOnTurn
end while
computerBoard.splash[pos[0]][pos[1]] = turnNum
hit = computerBoard.shipAt(pos)
if hit then hits.push hit
end for
for hit in hits
print "You hit my " + hit.name + "."
hit.hitPoints -= 1
if hit.hitPoints == 0 then
print "...and sank it!" // (not in original BASIC program)
computerBoard.ships.removeVal hit
end if
end for
end function
pickShot = function
// Pick a spot for the computer to shoot at. We'll do this by
// computing a "neighbor score" for each spot: the number of
// neighboring spots that (1) we have previously hit, and (2)
// contain an enemy ship. Then we'll pick randomly from the
// set of spots with the highest neighbor score.
bestScore = 0
spots = []
for i in range(1,10)
for j in range(1,10)
pos = [i,j]
if playerBoard.splash[pos[0]][pos[1]] then continue
score = 0
for dir in directions
n = pos.plus(dir)
if inBounds(n) and playerBoard.splash[n[0]][n[1]] and playerBoard.shipAt(n) then
score += 1
end if
end for
if score > bestScore then
bestScore = score
spots = [pos]
else if score == bestScore then
spots.push pos
end if
end for
end for
return spots.any
end function
doComputerTurn = function(turnNum = 1)
shots = computerBoard.totalShots
print "I have " + shots + " shot" + "s"*(shots!=1) + "."
if shots < 1 then
print "You have won."
exit
end if
hits = []
for i in range(1, shots)
pos = pickShot
playerBoard.splash[pos[0]][pos[1]] = turnNum
hit = playerBoard.shipAt(pos)
if hit then hits.push hit
if seeComputerShots then print " " + pos.join(" ")
end for
for hit in hits
print "I hit your " + hit.name + "."
hit.hitPoints -= 1
if hit.hitPoints == 0 then
print "...and sank it!" // (not in original BASIC program)
playerBoard.ships.removeVal hit
end if
end for
end function
// Main Program
placeComputerShips
placePlayerShips
while true
yn = input("Do you want to start? ").lower
if yn == "where are your ships?" then
printComputerShips
else if yn and (yn[0] == "y" or yn[0] == "n") then
break
end if
end while
startWithPlayer = (yn[0] == "y")
while true
yn = input("Do you want to see my shots? ").lower
if yn and (yn[0] == "y" or yn[0] == "n") then break
end while
seeComputerShots = (yn[0] == "y")
turnNumber = 1
while true
print
print "Turn " + turnNumber
if startWithPlayer then
doPlayerTurn turnNumber
doComputerTurn turnNumber
else
doComputerTurn turnNumber
doPlayerTurn turnNumber
end if
turnNumber += 1
end while

View File

@@ -0,0 +1,18 @@
Original source downloaded from [Vintage Basic](http://www.vintage-basic.net/games.html).
Conversion to [MiniScript](https://miniscript.org).
Ways to play:
1. Command-Line MiniScript:
Download for your system from https://miniscript.org/cmdline/, install, and then run the program with a command such as:
```
miniscript slalom.ms
```
2. Mini Micro:
Download Mini Micro from https://miniscript.org/MiniMicro/, launch, and then click the top disk slot and chose "Mount Folder..." Select the folder containing the MiniScript program and this README file. Then, at the Mini Micro command prompt, enter:
```
load "slalom"
run
```

View File

@@ -0,0 +1,170 @@
print " "*33 + "Slalom"
print " "*15 + "Creative Computing Morristown New Jersey"
print; print; print
gateSpeeds = [14,18,26,29,18,25,28,32,29,20,29,29,25,21,26,29,20,21,20,
18,26,25,33,31,22]
medals = {}
medals.gold = 0
medals.silver = 0
medals.bronze = 0
while true
qtyGates = input("How many gates does this course have (1 to 25)? ").val
if qtyGates > 25 then
print "25 is the limit."
qtyGates = 25
end if
if qtyGates >= 1 then break
print "Try again,"
end while
print "Type ""ins"" for instructions"
print "Type ""max"" for approximate maximum speeds"
print "Type ""run"" for the beginning of the race"
while true
cmd = input("Command--").lower
if cmd == "ins" then
print
print "*** Slalom: This is the 1976 Winter Olympic Giant Slalom. You are"
print " the American team's only hope of a gold medal."
print
print " 0 -- type this if you want to see how long you've taken."
print " 1 -- type this if you want to speed up a lot."
print " 2 -- type this if you want to speed up a little."
print " 3 -- type this if you want to speed up a teensy."
print " 4 -- type this if you want to keep going the same speed."
print " 5 -- type this if you want to check a teensy."
print " 6 -- type this if you want to check a little."
print " 7 -- type this if you want to check a lot."
print " 8 -- type this if you want to cheat and try to skip a gate."
print
print " The place to use these options is when the computer asks:"
print
print "Option?"
print
print " Good luck!"
print
else if cmd == "max" then
print "GATE MAX"
print " # M.P.H."
print "-----------"
for i in range(1, qtyGates)
print " " + i + " "*(i<10) + " " + gateSpeeds[i-1]
end for
else if cmd == "run" then
break
end if
end while
while true
skill = input("Rate yourself as a skier, (1=worst, 3=best)? ").val
if 1 <= skill <= 3 then break
print "The bounds are 1-3"
end while
doOneRace = function
print "The starter counts down...5...4...3...2...1..GO!"
time = 0
speed = floor(rnd * 9 + 9)
print
print "You're off!"
gate = 0
while gate+1 <= qtyGates
gate += 1
gateSpeed = gateSpeeds[(gate-1) % gateSpeeds.len]
print
print "Here comes gate #" + gate + ":"
print speed + " M.P.H."
prevSpeed = speed
while true
opt = input("Option? ").val
if opt == 0 then
print "You've taken " + time + " seconds."
else if opt < 1 or opt > 8 then
print "What?"
else
break
end if
end while
if opt == 1 then
speed += floor(rnd*(10-5)+5)
else if opt == 2 then
speed += floor(rnd*(5-3)+3)
else if opt == 3 then
speed += floor(rnd*(4-1)+1)
else if opt == 4 then
// (no change)
else if opt == 5 then
speed -= floor(rnd*(4-1)+1)
else if opt == 6 then
speed -= floor(rnd*(5-3)+3)
else if opt == 7 then
speed -= floor(rnd*(10-5)+5)
else if opt == 8 then
print "***CHEAT"
if rnd < 0.7 then
print "An official caught you!"
print "You took " + round(time+rnd, 3) + " seconds."
break
else
print "You made it!" + char(7)
time += 1.5
continue
end if
end if
print speed + " M.P.H."
if speed > gateSpeed then
if rnd < (speed - gateSpeed)*0.1 + 0.2 then
msg = "You went over the maximum speed and "
if rnd < 0.5 then msg += "snagged a flag!" else msg += "wiped out!"
print msg
print "You took " + round(time+rnd, 3) + " seconds."
else
print "You went over the maximum speed and made it!"
end if
else if speed > gateSpeed - 1 then
print "Close one!"
end if
if speed < 7 then
print "Let's be realistic, OK? Let's go back and try again..."
speed = prevSpeed
gate -= 1
continue
end if
time += gateSpeed - speed + 1
if speed > gateSpeed then time += 0.5
end while
print
print "You took " + round(time+rnd, 3) + " seconds."
avg = time / qtyGates
if avg < 1.5 - (skill * 0.1) then
print "You won a gold medal!"
medals.gold += 1
else if avg < 2.9 - (skill * 0.1) then
print "You won a silver medal"
medals.silver += 1
else if avg < 4.4 - (skill * 0.01) then
print "You won a bronze medal"
medals.bronze += 1
end if
end function
while true
doOneRace
while true
yesno = input("Do you want to race again? ").lower + " "
if yesno[0] == "y" or yesno[0] == "n" then break
print "Please type 'yes' or 'no'"
end while
if yesno[0] == "n" then break
print
end while
print
print "Thanks for the race"
if medals.gold then print "Gold medals: " + medals.gold
if medals.silver then print "Silver medals: " + medals.silver
if medals.bronze then print "Bronze medals: " + medals.bronze

View File

@@ -58,7 +58,7 @@
825 PRINT "*** SLALOM: THIS IS THE 1976 WINTER OLYMPIC GIANT SLALOM. YOU ARE"
830 PRINT " THE AMERICAN TEAM'S ONLY HOPE OF A GOLD MEDAL."
840 PRINT
845 PRINT " 0 -- TYPE THIS IS YOU WANT TO SEE HOW LONG YOU'VE TAKEN."
845 PRINT " 0 -- TYPE THIS IF YOU WANT TO SEE HOW LONG YOU'VE TAKEN."
850 PRINT " 1 -- TYPE THIS IF YOU WANT TO SPEED UP A LOT."
860 PRINT " 2 -- TYPE THIS IF YOU WANT TO SPEED UP A LITTLE."
870 PRINT " 3 -- TYPE THIS IF YOU WANT TO SPEED UP A TEENSY."

View File

@@ -14,7 +14,7 @@ words.shuffle
responses = ["Right","Correct","Fine","Good!","Check"]
print " " * 33 + "SYNONYM"
print " " * 15 + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
print " " * 15 + "Creative Computing Morristown, New Jersey"
print; print; print
print "A synonym of a word means another word in the English"
print "language which has the same or very nearly the same meaning."