Skip to content

john-baxter/Bites-game

Repository files navigation

Bites-game

Code written by John Baxter

Scope / Motivation / Tech / Features / Code example / Tests / How to use / Future development / Credits

^Scope

This project aims to create a playable clone of the existing tabletop game 'Bites'.

^Motivation

The motivation to create this project was for me to improve my general understanding of the principles of Test-driven Development (TDD) and Object-oriented Programming (OOP) while also learning the basics of a new language and working on a project that is fun, engaging and more interesting than mindlessly following one of the many tutorials available on YouTube.

^Tech used

The project is written in Python 3
In the current state the whole project is using the Python standard library with no additional packages.

^Features

The project currently has the following features:

  • The game is playable using a simple text-based interface in the Command Line
  • 2 to 5 players can play at a time
  • Standard food tokens, wine and chocolate used for the trail
  • Standard ant colours used
  • Players can collect food from the anthill
  • Multiple options for anthill filling. The players may choose one or have the game randomly select one for them.
    • Top-down
    • Bottom-up
    • Specific order: 4, 2, 0, 3 then 1
    • User's choice (Not featured in the original game)
  • Multiple options for wine-scoring rule. The players may choose one or have the game randomly select one for them
    • "Collector"
    • "Oenophile"
  • Multiple options for special chocolate actions. The players may choose one or have the game randomly select one for them
    • "Turbo"
    • "Doubler"

Extra information about what each rule card refers to is available in this document.

^Code example

The following example shows the method within the Player class which is used after the choice of which ant to move has been made; and is responsible for defining at what position the ant's move will be completed.
NB The actual method in player.py file contains internal documentation whach has been ommited from this example for clarity.

def move_ant_along_trail(self, trail, ant_positions, ant):
    if ant_positions[ant] is None:
      ant_positions[ant] = 0
    else:
      ant_positions[ant] += 1
    
    if trail[ant_positions[ant]] == K_COLOUR_V_FOOD_DICT[ant]:
      return ant_positions
    else:
      while trail[ant_positions[ant]] != K_COLOUR_V_FOOD_DICT[ant]:
        ant_positions[ant] += 1

    return ant_positions

^Tests

The whole project has been created using TDD. The tests are written using Python3's built-in testing framework:

  • unittest

These can be run by:

  1. Opening a terminal window and navigating to the repo.
  2. Enter the command python3 -m unittest discover --pattern=*_test.py.

^How to use

If you want to try out this game app, the following steps are required. (Instructions are specific to using a MacOS, other interfaces may require different/analogous steps.)
You will need to have Python 3.8 installed.

  1. Clone this repository to your own machine.
  2. Open a terminal window and navigate to the local version of the repo.
  3. Enter the command python3 controller.py.
  4. Follow the on-screen instructions to begin/continue playing.

Use of the app will require an understanding of how to play the game. An overview and downloadable instruction manaual are available here

^Future development

Information regarding which features will be added in the future can be found here.

^Credits

Original game by Brigitte Ditt & Wolfgang Ditt.
Original artwork by Anca Gavril & Filip Gavril.
Software architecture and Technical leadership by Ana Andrés.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages