Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Robot word search game

Project Description

WordSeek is a new take on the classic puzzle game, Word Search.

WordSeek follows the same rules as its original counterpart except that it is completely automated. Every game, it pits 2 or more Python bots against one another. The fastest bot (in culminative time) wins that round. Time is added for incorrect answers.

Rules

WordSeek is comprised of 50 turns in one game. Each turn, a random word and 9x9 grid is generated.

Sample grid:

     0    1    2    3    4    5    6    7    8
0 [['x', 'A', 'd', 'f', 'o', 'x', 'D', 'd', 'd']
1  ['d', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd']
2  ['d', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd']
3  ['d', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd']
4  ['d', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd']
5  ['d', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd']
6  ['d', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd']
7  ['d', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd']
8  ['d', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd']]

Find word: xAdfoxD

It is your job to create a robot that can return as fast as possible a list of tuples with each tuple corresponding to a character in the grid so that the list ‘spells’ out the given word. For example, the answer to the above grid would be:

[(0,0), (1,0), (2,0), (3,0), (4,0), (5,0), (6,0)]

Note: Possible characters all come from Python’s ASCII. No numbers. CAPS do count!

If the robot returns the wrong answer, additional penalty time is added to the robot’s total time. Penalities are incremental up until the third one.

Mistake Penalty
1st +0 seconds
2nd +5 seconds
3rd+ +10 seconds

Programming

When WordSeek is first run, it attempts to read the specified files and find the Robot class in your python file. If it has successfully found the class, it will initialize your bot and prepare it for battle!

Every turn, WordSeek will call the method find_turn(self, grid, word). The method should return the location of the word as described in the Rules section.

A dummy implementation goes as follows:

class Robot:

    # optional
    author = "Your Name"

    def find_word(self, grid, word):
        answer = []
        # Logic goes here ...
        return answer

It is strongly recommended that you check out this starter bot.

Usage

In order to use this, first, install wordseek using “pip install wordseek” or manually download and run setup.py with the “install” argument. Allowed arguments for running the program are posted below:

usage: wordseek [-h] [-q] [-i]
                [--seed SEED]
                players

wordseek execution script

positional arguments:
  players               Player file names

optional arguments:
  -h, --help            show this help message and exit
  -q, --quiet           Suppress game output
  -i, --immediate       Run the game immediately after startup
  --seed SEED           Determines output of word grids

Additional credit to WhiteHalmos and others who have contributed to rgkit, the precursor to wordseek.

Release History

Release History

This version
History Node

1.0.7

History Node

1.0.6

History Node

1.0.5

History Node

1.0.4

History Node

1.0.3

History Node

1.0.1

History Node

1.0.0

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
wordseek-1.0.7-py2.py3-none-any.whl (10.5 kB) Copy SHA256 Checksum SHA256 2.7 Wheel Oct 30, 2014
wordseek-1.0.7.zip (12.3 kB) Copy SHA256 Checksum SHA256 Source Oct 30, 2014

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting