Our Projects

Games

The Battle for Wesnoth

The Battle for Wesnoth is a turn-based strategy video game with a fantasy setting, designed by Australian developer David White and first released in June 2003. In Wesnoth, the player attempts to build a powerful army by controlling villages and defeating enemies for experience. The game is loosely based on the Sega Genesis games Master of Monsters and Warsong.

To install The Battle for Wesnoth
1) Open up a terminal window
2) Type (without the quotes):  ‘sudo apt-get install wesnoth’ 
3) Press Return.  Be patient it takes a while (~3 minutes)
4) To play the game go to the Games menus and choose Battle for Wesnoth (1.14)

Widelands

Widelands is a free slow-paced real-time strategy video game under the GNU General Public License.[1] Widelands takes many ideas from and is quite similar to The Settlers and The Settlers II. It is still a work in progress game, with development still required in graphics and bugfixing. The game runs on several operating systems such as AmigaOS 4LinuxBSDMac OS X, and Windows.

Additional Games

Original List (from 2013)

Battle For Wesnoth – An overhead-view combat game, where you recruit and fight an army. Can easily download add-ons for it *apt-get*
Micropolis – A tiny city management simulator *apt-get*
Widelands – A game similar to The Settlers, with great animations and a speed-up function *apt-get*
FreeCraft *apt-get*
Funny Boat *apt-get*
Which-Way-Is-Up? – A 2d platform game, but with a twist (literally!) *apt-get*
Freeciv – An advanced overhead game, inspired by the history of human civilisation *apt-get*
Flare – An overhead RPG game engine (with a game) *apt-get*
KETM (Kill everything that moves) – A Space-Invaders type of game *apt-get*
Blob Wars: Metal Blob Solid – A 2D shooter, where you play as a little yellow blob. [WARNING! CONTAINS BLOOD AND GORE] *apt-get*
Flight Of The Amazon Queen – Rescue an Amazonian princess from a suspicious lederhosen company. Uses Scumnvm. Retro 90’s style. *apt-get* [ALSO INSTALLS ScummVM]
Beneath A Steel Sky – Same as Flight of the Amazon Queen (ABOVE), but set in a bleak post-apocalyptic version of the future, and a different story line. *apt-get* [ALSO INSTALLS ScummVM]
Abuse – A Great 2D shooter set in a mutated prison. Also contains abuse-mod-packs with install. *apt-get*
Battle Tanks – A barely runnable (AKA slow) birds-eye-view tanks shoot-’em-up *apt-get*
20,00 Light Years Into Space – Create a steam network to power a city, upgrading it and reparing damages [Uses PyGame] *apt-get*
Minecraft Pi Edition – Minecraft Pocket Edition, ported to the Pi with lots of limitations. Great all the same. 
XJump – A jumping game with exxaderated phisics. Takes a bit of time to load. *apt-get*
BlockOut 2 – Description pending… *apt-get*
Pingus – A Lemmings clone that runs close to perfectly on the Pi (sometimes won’t shut down properly), can make your own levels. *apt-get*
SuperTux – A Super Mario inspired run-and-jump game, where you can make your own levels. (sometimes wont shut down properly) *apt-get*
OpenTTD – simulator based upon Transport Tycoon Deluxe *apt-get*
Simutrans – transport simulator – only runs OK at a low resolution *apt-get*
PyDance – rhythm game (like Stepmania) *apt-get*
Angry Drunken Dwarves – multiplayer arcade puzzle game *apt-get*
nethack – Dungeon Crawler Game *apt-get*
Monsterz – A game similar to ‘GemGem’ *apt-get*
PrBoom – A clone of the legendary shooter ‘Doom’ *apt-get*
sopwith – A original retro 2d plane dogfight game, complete with blocky grahpics! *apt-get*
feeding frenzy – A 2d platform game where the aim is to capture the fruits *apt-get*
freedink – A great isometric zelda-like game, with a big map and the ability to get add-ons *apt-get*
lincity – An overhead 3d-like city management game, with lots of functions and child-friendly interface *apt-get*
triplane – A great 2d dogfight game, with multiplayer mode and singleplayer too *apt-get*
3D Chess – Play chess across 3 axises *apt-get*
4digit – Classic “find the pattern” game *apt-get*
ACM – 3D flight simulator *apt-get*
Airstrike – Fun 1 or 2 player 2D aerial combat game *apt-get*
Allegro Demo – 2D space shooter, demonstrates the Allegro library *apt-get*
Atom-4 – Game where you build atoms *apt-get*
Atomic Tanks – Tank fighting game *apt-get*
Battleball – 3D Tank game where you push around a ball *apt-get*
Desmume – Emulator for NDS (emulation not tested, the program only runs in X11) *apt-get*
Freesweep – Console based minesweeper *apt-get*
Galaga – Game that pays homage to the original arcade classic *apt-get*
Galaga:Hyperspace – Sequel to Galaga on rpi *apt-get*
GNU Shogi – (no comment, I couldn’t figure out how to play this one) *apt-get*
Hexxagon – Port of the classic marble capture game *apt-get*
Mancala – Plays like the board game, but uses numbers instead of marbles *apt-get*
Overgod – Asteroids clone with impressive graphics *apt-get*
pipenightdreams – Use pipes to flow the goo into the exit pipe *apt-get*
Xye – (no comment, took to long to load :/) *apt-get*
qonk – (no comment, couldn’t figure out how to play) *apt-get*
Rafkill – 2D shooter with some 3D graphics *apt-get*
RealTimeBattle (no comment, couldn’t figure out how to play) *apt-get*
Snake4 – Snake clone, but with several added features *apt-get*
Space Aryarya – psuedo-3D shooter, similar to space invaders *apt-get*
SpaceZero – 2D space exploration game *apt-get*
Spout – Unique retro 2D flying game with interesting pixel physics *apt-get*
Stax – Puzzle game where you must eliminate all colored asterisks before your opponent *apt-get*
tagua – Chess engine with built-in console *apt-get*
Teddy – Displays a teddy bear on your desktop *apt-get*
Tetzle – Tile puzzle game using images on your rpi *apt-get*
TINT – Console-based tetris clone *apt-get*
vavoom – Doom launcher, must have Doom or a supported variant installed along side it *apt-get*
Wing – 2D shooting game with confusing controls *apt-get*
wordplay – no comment, must start from console *apt-get*
wmpuzzle – A tile puzzle with Tux *apt-get*
Xabacus – An abacus game run in X11 *apt-get*
Xball – Ball simulation window with modifiable settings *apt-get*
XBill – Kill all the nerds before they put viruses on the computers! *apt-get*
XBlast-TNT – Bomberman clone with impressive graphics *apt-get*
Xboing – Breakout clone (couldn’t figure out how to play) *apt-get*
XBomb – Minesweeper clone that can use squares, triangles, and hexagons *apt-get*
XBubble – Bubble shooting game with impressive graphics *apt-get*
xchain – 2 player game (couldn’t figure out how to play) *apt-get*
xdemineur – Very close clone of minesweeper on Windows (looks the same) *apt-get*
XGammon – Backgammon for X11 *apt-get*
XInvaders 3D – Impressive 3D-vector Invaders clone *apt-get*
Xjig – Jigsaw puzzle solver *apt-get*
xmahjongg – The classic orient game for rpi *apt-get*
XJump – Infinite tower climbing game for rpi *apt-get*
xmpuzzles – Installing this package installs a variety of puzzles that all run in X11 *apt-get*
Xmille – (couldn’t figure out how to play) *apt-get*
Xmountains – Generates a 3D landscape of land and sea *apt-get*
Xonix – Jezzball clone *apt-get*
Xpatience2 – Solitaire collection (*apt-get*
XScavenger – (couldn’t figure out how to play) *apt-get*
XScorch – Tank game that plays like Hedge Wars *apt-get*
XShogi – (couldn’t figure out how to play) *apt-get*
XSkat – (couldn’t figure out how to play) *apt-get*
Xsokoban – Block-pushing puzzle game *apt-get*
XSoldier – 2D space shooter *apt-get*
X Solitaire – Solitaire in X11 *apt-get*
Xtron – Tron clone for X11 *apt-get*
XTux – (couldn’t start a new game) *apt-get*
Xvier – 4-in-a-row game for X11 *apt-get*
XWelltris – Interesting Psuedo-3D Tetris clone *apt-get*
yahtzeesharp – Yahtzee for rpi *apt-get*


Original List – Alphabetically

20,00 Light Years Into Space – Create a steam network to power a city, upgrading it and reparing damages taht will occur over time [Uses PyGame] *apt-get*
3D Chess – Play chess across 3 axises *apt-get*
4digit – Classic “find the pattern” game *apt-get*
Abuse – A Great 2D shooter set in a mutated prison. Also contains abuse-mod-packs with install. *apt-get*
ACM – 3D flight simulator *apt-get*
Airstrike – Fun 1 or 2 player 2D aerial combat game *apt-get*
Allegro Demo – 2D space shooter, demonstrates the Allegro library *apt-get*
Angry Drunken Dwarves – multiplayer arcade puzzle game *apt-get*
Atom-4 – Game where you build atoms *apt-get*
Atomic Tanks – Tank fighting game *apt-get*
Battle For Wesnoth – An overhead-view combat game, where you recruit and fight an army. Can easily download add-ons for it, campaigns to play included *apt-get*
Battle Tanks – A barely runnable (AKA slow) birds-eye-view tanks shoot-’em-up *apt-get*
Battleball – 3D Tank game where you push around a ball *apt-get*
Beneath A Steel Sky – Same as Flight of the Amazon Queen (ABOVE), but set in a bleak post-apocalyptic version of the future, and a different story line. *apt-get* [ALSO INSTALLS ScummVM]
Blob Wars: Metal Blob Solid – A 2D shooter, where you play as a little yellow blob. [WARNING! CONTAINS BLOOD AND GORE WHICH CAN BE DISABLED] *apt-get*
BlockOut 2 – Description pending… *apt-get*
Desmume – Emulator for NDS (emulation not tested, the program only runs in X11) *apt-get*
feeding frenzy – A 2d platform game where the aim is to capture the fruits *apt-get*
Flare – An overhead RPG game engine (with a game) *apt-get*
Flight Of The Amazon Queen – Rescue an Amazonian princess from a suspicious lederhosen company. Uses Scumnvm. Retro 90’s style. *apt-get* [ALSO INSTALLS ScummVM]
Freeciv – An advanced overhead game, inspired by the history of human civilisation *apt-get*
FreeCraft *apt-get*
freedink – A great isometric zelda-like game, with a big map and the ability to get add-ons *apt-get*
Freesweep – Console based minesweeper *apt-get*
Funny Boat *apt-get*
Galaga – Game that pays homage to the original arcade classic *apt-get*
Galaga:Hyperspace – Sequel to Galaga on rpi *apt-get*
GNU Shogi – (no comment, I couldn’t figure out how to play this one) *apt-get*
Hexxagon – Port of the classic marble capture game *apt-get*
KETM (Kill everything that moves) – A Space-Invaders type of game *apt-get*
lincity – An overhead 3d-like city management game, with lots of functions and child-friendly interface *apt-get*
Mancala – Plays like the board game, but uses numbers instead of marbles *apt-get*
Micropolis – A tiny city management simulator *apt-get*
Minecraft Pi Edition – Minecraft Pocket Edition, ported to the Pi with lots of limitations. Great all the same. *other*[CAN BE DOWNLOADED FROM http://pi.minecraft.net/ ]
Monsterz – A game similar to ‘GemGem’ *apt-get*
nethack – Dungeon Crawler Game *apt-get*
OpenTTD – simulator based upon Transport Tycoon Deluxe *apt-get*
Overgod – Asteroids clone with impressive graphics *apt-get*
Pingus – A Lemmings clone that runs close to perfectly on the Pi (sometimes won’t shut down properly), can make your own levels. *apt-get*
pipenightdreams – Use pipes to flow the goo into the exit pipe *apt-get*
PrBoom – A clone of the legendary shooter ‘Doom’ *apt-get*
PyDance – rhythm game (like Stepmania) *apt-get*
qonk – (no comment, couldn’t figure out how to play) *apt-get*
Rafkill – 2D shooter with some 3D graphics *apt-get*
RealTimeBattle (no comment, couldn’t figure out how to play) *apt-get*
Simutrans – transport simulator – only runs OK at a low resolution *apt-get*
Snake4 – Snake clone, but with several added features *apt-get*
sopwith – A original retro 2d plane dogfight game, complete with blocky grahpics! *apt-get*
Space Aryarya – psuedo-3D shooter, similar to space invaders *apt-get*
SpaceZero – 2D space exploration game *apt-get*
Spout – Unique retro 2D flying game with interesting pixel physics *apt-get*
Stax – Puzzle game where you must eliminate all colored asterisks before your opponent *apt-get*
SuperTux – A Super Mario inspired run-and-jump game, where you can make your own levels. (sometimes wont shut down properly) *apt-get*
tagua – Chess engine with built-in console *apt-get*
Teddy – Displays a teddy bear on your desktop *apt-get*
Tetzle – Tile puzzle game using images on your rpi *apt-get*
TINT – Console-based tetris clone *apt-get*
triplane – A great 2d dogfight game, with multiplayer mode and singleplayer too *apt-get*
vavoom – Doom launcher, must have Doom or a supported variant installed along side it *apt-get*
Which-Way-Is-Up? – A 2d platform game, but with a twist (literally!) *apt-get*
Widelands – A game similar to The Settlers, with great animations and a speed-up function *apt-get*
Wing – 2D shooting game with confusing controls *apt-get*
wmpuzzle – A tile puzzle with Tux *apt-get*
wordplay – no comment, must start from console *apt-get*
X Solitaire – Solitaire in X11 *apt-get*
Xabacus – An abacus game run in X11 *apt-get*
Xball – Ball simulation window with modifiable settings *apt-get*
XBill – Kill all the nerds before they put viruses on the computers! *apt-get*
XBlast-TNT – Bomberman clone with impressive graphics *apt-get*
Xboing – Breakout clone (couldn’t figure out how to play) *apt-get*
XBomb – Minesweeper clone that can use squares, triangles, and hexagons *apt-get*
XBubble – Bubble shooting game with impressive graphics *apt-get*
xchain – 2 player game (couldn’t figure out how to play) *apt-get*
xdemineur – Very close clone of minesweeper on Windows (looks the same) *apt-get*
XGammon – Backgammon for X11 *apt-get*
XInvaders 3D – Impressive 3D-vector Invaders clone *apt-get*
Xjig – Jigsaw puzzle solver *apt-get*
XJump – A jumping game with exxaderated phisics. Takes a bit of time to load. *apt-get*
XJump – Infinite tower climbing game for rpi *apt-get*
xmahjongg – The classic orient game for rpi *apt-get*
Xmille – (couldn’t figure out how to play) *apt-get*
Xmountains – Generates a 3D landscape of land and sea *apt-get*
xmpuzzles – Installing this package installs a variety of puzzles that all run in X11 *apt-get*
Xonix – Jezzball clone *apt-get*
Xpatience2 – Solitaire collection (*apt-get*
XScavenger – (couldn’t figure out how to play) *apt-get*
XScorch – Tank game that plays like Hedge Wars *apt-get*
XShogi – (couldn’t figure out how to play) *apt-get*
XSkat – (couldn’t figure out how to play) *apt-get*
Xsokoban – Block-pushing puzzle game *apt-get*
XSoldier – 2D space shooter *apt-get*
Xtron – Tron clone for X11 *apt-get*
XTux – (couldn’t start a new game) *apt-get*
Xvier – 4-in-a-row game for X11 *apt-get*
XWelltris – Interesting Psuedo-3D Tetris clone *apt-get*
Xye – (no comment, took to long to load :/) *apt-get*
yahtzeesharp – Yahtzee for rpi *apt-get

 
#----------------------------------------------------------------------
#  eliza.py
#----------------------------------------------------------------------

import string
import re
import random

class eliza:
  def __init__(self):
    self.keys = list(map(lambda x:re.compile(x[0], re.IGNORECASE),gPats))
    self.values = list(map(lambda x:x[1],gPats))

  #----------------------------------------------------------------------
  # translate: take a string, replace any words found in dict.keys()
  #  with the corresponding dict.values()
  #----------------------------------------------------------------------
  def translate(self,str,dict):
    words = str.lower().split()
    keys = dict.keys();
    for i in range(0,len(words)):
      if words[i] in keys:
        words[i] = dict[words[i]]
    return ' '.join(words)

  #----------------------------------------------------------------------
  #  respond: take a string, a set of regexps, and a corresponding
  #    set of response lists; find a match, and return a randomly
  #    chosen response from the corresponding list.
  #----------------------------------------------------------------------
  def respond(self,str):
    # find a match among keys
    for i in range(0, len(self.keys)):
      match = self.keys[i].match(str)
      if match:
        # found a match ... stuff with corresponding value
        # chosen randomly from among the available options
        resp = random.choice(self.values[i])
        # we've got a response... stuff in reflected text where indicated
        pos = resp.find('%')
        while pos > -1:
          num = int(resp[pos+1:pos+2])
          resp = resp[:pos] + \
            self.translate(match.group(num),gReflections) + \
            resp[pos+2:]
          pos = resp.find('%')
        # fix munged punctuation at the end
        if resp[-2:] == '?.': resp = resp[:-2] + '.'
        if resp[-2:] == '??': resp = resp[:-2] + '?'
        return resp

#----------------------------------------------------------------------
# gReflections, a translation table used to convert things you say
#    into things the computer says back, e.g. "I am" --> "you are"
#----------------------------------------------------------------------
gReflections = {
  "am"   : "are",
  "was"  : "were",
  "i"    : "you",
  "i'd"  : "you would",
  "i've"  : "you have",
  "i'll"  : "you will",
  "my"  : "your",
  "are"  : "am",
  "you've": "I have",
  "you'll": "I will",
  "your"  : "my",
  "yours"  : "mine",
  "you"  : "me",
  "me"  : "you"
}

#----------------------------------------------------------------------
# gPats, the main response table.  Each element of the list is a
#  two-element list; the first is a regexp, and the second is a
#  list of possible responses, with group-macros labelled as
#  %1, %2, etc.
#----------------------------------------------------------------------
gPats = [
  [r'I need (.*)',
  [  "Why do you need %1?",
    "Would it really help you to get %1?",
    "Are you sure you need %1?"]],

  [r'Why don\'?t you ([^\?]*)\??',
  [  "Do you really think I don't %1?",
    "Perhaps eventually I will %1.",
    "Do you really want me to %1?"]],

  [r'Why can\'?t I ([^\?]*)\??',
  [  "Do you think you should be able to %1?",
    "If you could %1, what would you do?",
    "I don't know -- why can't you %1?",
    "Have you really tried?"]],

  [r'I can\'?t (.*)',
  [  "How do you know you can't %1?",
    "Perhaps you could %1 if you tried.",
    "What would it take for you to %1?"]],

  [r'I am (.*)',
  [  "Did you come to me because you are %1?",
    "How long have you been %1?",
    "How do you feel about being %1?"]],

  [r'I\'?m (.*)',
  [  "How does being %1 make you feel?",
    "Do you enjoy being %1?",
    "Why do you tell me you're %1?",
    "Why do you think you're %1?"]],

  [r'Are you ([^\?]*)\??',
  [  "Why does it matter whether I am %1?",
    "Would you prefer it if I were not %1?",
    "Perhaps you believe I am %1.",
    "I may be %1 -- what do you think?"]],

  [r'What (.*)',
  [  "Why do you ask?",
    "How would an answer to that help you?",
    "What do you think?"]],

  [r'How (.*)',
  [  "How do you suppose?",
    "Perhaps you can answer your own question.",
    "What is it you're really asking?"]],

  [r'Because (.*)',
  [  "Is that the real reason?",
    "What other reasons come to mind?",
    "Does that reason apply to anything else?",
    "If %1, what else must be true?"]],

  [r'(.*) sorry (.*)',
  [  "There are many times when no apology is needed.",
    "What feelings do you have when you apologize?"]],

  [r'Hello(.*)',
  [  "Hello... I'm glad you could drop by today.",
    "Hi there... how are you today?",
    "Hello, how are you feeling today?"]],

  [r'I think (.*)',
  [  "Do you doubt %1?",
    "Do you really think so?",
    "But you're not sure %1?"]],

  [r'(.*) friend (.*)',
  [  "Tell me more about your friends.",
    "When you think of a friend, what comes to mind?",
    "Why don't you tell me about a childhood friend?"]],

  [r'Yes',
  [  "You seem quite sure.",
    "OK, but can you elaborate a bit?"]],

  [r'(.*) computer(.*)',
  [  "Are you really talking about me?",
    "Does it seem strange to talk to a computer?",
    "How do computers make you feel?",
    "Do you feel threatened by computers?"]],

  [r'Is it (.*)',
  [  "Do you think it is %1?",
    "Perhaps it's %1 -- what do you think?",
    "If it were %1, what would you do?",
    "It could well be that %1."]],

  [r'It is (.*)',
  [  "You seem very certain.",
    "If I told you that it probably isn't %1, what would you feel?"]],

  [r'Can you ([^\?]*)\??',
  [  "What makes you think I can't %1?",
    "If I could %1, then what?",
    "Why do you ask if I can %1?"]],

  [r'Can I ([^\?]*)\??',
  [  "Perhaps you don't want to %1.",
    "Do you want to be able to %1?",
    "If you could %1, would you?"]],

  [r'You are (.*)',
  [  "Why do you think I am %1?",
    "Does it please you to think that I'm %1?",
    "Perhaps you would like me to be %1.",
    "Perhaps you're really talking about yourself?"]],

  [r'You\'?re (.*)',
  [  "Why do you say I am %1?",
    "Why do you think I am %1?",
    "Are we talking about you, or me?"]],

  [r'I don\'?t (.*)',
  [  "Don't you really %1?",
    "Why don't you %1?",
    "Do you want to %1?"]],

  [r'I feel (.*)',
  [  "Good, tell me more about these feelings.",
    "Do you often feel %1?",
    "When do you usually feel %1?",
    "When you feel %1, what do you do?"]],

  [r'I have (.*)',
  [  "Why do you tell me that you've %1?",
    "Have you really %1?",
    "Now that you have %1, what will you do next?"]],

  [r'I would (.*)',
  [  "Could you explain why you would %1?",
    "Why would you %1?",
    "Who else knows that you would %1?"]],

  [r'Is there (.*)',
  [  "Do you think there is %1?",
    "It's likely that there is %1.",
    "Would you like there to be %1?"]],

  [r'My (.*)',
  [  "I see, your %1.",
    "Why do you say that your %1?",
    "When your %1, how do you feel?"]],

  [r'You (.*)',
  [  "We should be discussing you, not me.",
    "Why do you say that about me?",
    "Why do you care whether I %1?"]],

  [r'Why (.*)',
  [  "Why don't you tell me the reason why %1?",
    "Why do you think %1?" ]],

  [r'I want (.*)',
  [  "What would it mean to you if you got %1?",
    "Why do you want %1?",
    "What would you do if you got %1?",
    "If you got %1, then what would you do?"]],

  [r'(.*) mother(.*)',
  [  "Tell me more about your mother.",
    "What was your relationship with your mother like?",
    "How do you feel about your mother?",
    "How does this relate to your feelings today?",
    "Good family relations are important."]],

  [r'(.*) father(.*)',
  [  "Tell me more about your father.",
    "How did your father make you feel?",
    "How do you feel about your father?",
    "Does your relationship with your father relate to your feelings today?",
    "Do you have trouble showing affection with your family?"]],

  [r'(.*) child(.*)',
  [  "Did you have close friends as a child?",
    "What is your favorite childhood memory?",
    "Do you remember any dreams or nightmares from childhood?",
    "Did the other children sometimes tease you?",
    "How do you think your childhood experiences relate to your feelings today?"]],

  [r'(.*)\?',
  [  "Why do you ask that?",
    "Please consider whether you can answer your own question.",
    "Perhaps the answer lies within yourself?",
    "Why don't you tell me?"]],

  [r'quit',
  [  "Thank you for talking with me.",
    "Good-bye.",
    "Thank you, that will be $150.  Have a good day!"]],

  [r'(.*)',
  [  "Please tell me more.",
    "Let's change focus a bit... Tell me about your family.",
    "Can you elaborate on that?",
    "Why do you say that %1?",
    "I see.",
    "Very interesting.",
    "%1.",
    "I see.  And what does that tell you?",
    "How does that make you feel?",
    "How do you feel when you say that?"]]
  ]

#----------------------------------------------------------------------
#  command_interface
#----------------------------------------------------------------------
def command_interface():
  print('Therapist\n---------')
  print('Talk to the program by typing in plain English, using normal upper-')
  print('and lower-case letters and punctuation.  Enter "quit" when done.')
  print('='*72)
  print('Hello.  How are you feeling today?')

  s = ''
  therapist = eliza();
  while s != 'quit':
    try:
      s = input('> ')
    except EOFError:
      s = 'quit'
      print(s)
    while s[-1] in '!.':
      s = s[:-1]
    print(therapist.respond(s))


if __name__ == "__main__":
  command_interface()