Awesome
lab3-games
Purpose
Trash Blaster is a simple game written in Python meant to be used to explore machine learning techniques. It was created as part of the Crash Course AI series on Youtube.
Contents
The trash_blaster.py
file contains the game as well as the machine learning code.
The bigbrain.txt
file contains data from a machine which learned how to play Trash Blaster over more than 100,000 iterations of 200 games each. Read below to see how to run it with trash_blaster.py
on your computer.
Before You Start
You must install Python 3 on your computer, as well as the following Python modules:
numpy
pygame
The modules can be installed by typing the following in your command line:
python3 -m pip install numpy pygame
Depending on how Python is installed on your computer, you may have to replace python3
with python
in the command line.
How to Use trash_blaster.py
From the command line, type
python3 trash_blaster.py MODE
but replace MODE
with one of play
, learn
, or playback
. The functionality of each of these is described below.
play
mode
This mode allows you to play Trash Blaster yourself, to test your skill. Move using the WASD
keys, aim with the mouse pointer, and fire the blaster with the spacebar.
There are no flags applicable to this mode.
Example: python3 trash_blaster.py play
learn
mode
This mode allows you to train an AI to play Trash Blaster.
Use the --save-best
flag to make the program save the best AI "brain" each iteration.
Use the --save-file
flag followed by a filename to determine the name of the file --save-best
uses (brain.txt
by default).
Use the --load-file
flag followed by a filename to use the "brain" in that file as the starting point.
Use the --no-display
flag to run the learning algorithm without opening a game window visible to the user. This is recommended to save time on long training sessions.
Use the --display-every
flag followed by an integer to determine how many learning iterations pass between games shown to the user.
Use the --num-threads
flag followed by an integer to determine how many threads should be used in the learning algorithm (4
by default).
Example: python3 trash_blaster.py learn --save-best --save-file mybrain.txt --display-every 5 --num-threads 2
playback
mode
This mode allows you to play a previously-trained "brain" on randomly-generated games to see how it performs.
Use the --load-file
flag followed by a filename to play the "brain" in that file. You must use this flag.
Example: python3 trash_blaster.py playback --load-file bigbrain.txt