mumym

Mumym is a lojbanic wordgame similar to 5x5 or Mastermind. It selects a random gismu, and people take turns guessing which one. With every guess, you get a score, telling you how many letters in your guess are in the winning gismu. It also has a framework for AI, although there is only one simple AI right now.

The current version of Mumym is 0.9.1, released on 14 Jan 2004.

The source is available at github.

How to play Mumym

When Mumym is just sitting there, having just joined, or not playing a game, you can tell it to start the game process by saying:

doi mumym ko cfari

Mumym then enters the starting phase. Here, players can specify their desire to play with the following:

doi mumym mi kelci djica

You can also tell it that you want an AI to play with a command like the following:

doi mumym la .alis kelci

When all the players are ready, you can tell Mumym to start the actual game with:

doi mumym ko cfagau

Mumym will then ask the players in order to guess. You can respond with a guess by saying:

zo gismu

Where gismu is your guess.

At any time during play, you can tell Mumym to end the current game by saying:

doi mumym ko sisti

You can also ask Mumym to redisplay its startup message by saying:

doi mumym ko sarji

Contributing AI

I have a generally open call for new AI classes for Mumym. It must be written in fairly clean Python, and must be licensed under the GPL.

(The following code is all under the GNU GPL.)

When making an AI, you derive from the following class:

class AI:
    "Base class for AIs." 
    def __init__(self, mumym):
        global possible_gismu
        self.possible_gismu = possible_gismu
        self.mumym = mumym
        self.name = "nalselme'e" 

    def onGuess(self, guess, score):
        "Called when someone makes a guess, including the current AI." 
        pass

    def makeGuess(self):
        "Called when it's the AI's turn; return the guess." 
        return "gismu"

Here is an example of a very simple AI:

class SimpleAI(AI): # la .alis.
    "A simple AI that will only guess random words that haven't already been guessed." 
    def __init__(self, mumym):
        AI.__init__(self, mumym)
        self.name = ".alis." 

    def onGuess(self, guess, score):
        # This needs to be done in a try block, in case some bonehead guesses a word
        #  that's already been guessed.
        try:
            self.possible_gismu.remove(guess)
        except:
            pass

    def makeGuess(self):
        return random.choice(self.possible_gismu)

If you need help or want to submit one, Contact Me.

This is version 5 of this page, which was last modified at 18:22 on 2009-07-11 by treed.