Name Mode Size
Aquarium 040000
Binary to Decimal 040000
Caesar Cypher 040000
Cash Register 040000
Collatz Conjecture 040000
Conways Game of Life 040000
Drawing lines and rectangles 040000
Minesweeper 040000
Pig Latin 040000
Recursive guessing game 040000
Soundboard 040000 100644 4 kb
# Hayden's Python Portfolio This is a portfolio of some of my favourite programs I wrote in Python during the summer of 2019, the summer I learned to program. **Note: Collatz Conjecture requires the MatPlotLib library, and Conway's Game of Life and the aquarium require PyGame.** *Programs will be listed with a date, a description, and the skills involved in making them.* --- ## Aquarium (19 August 2019) *requires PyGame* A simple aquarium. A random number of fish are spawned, each being an instance of the Fish class. Each is randomly assigned one of four breeds, and each has a randomly assigned speed. The fish will change directions when they come in contact with the screen's edge. Furthermore, each 50 millisecond cycle, each fish has a 1% chance (for each axis) of changing direction on its own, regardless of its position. - Pygame - Importing sprites - Random library - Object-oriented programming - Multiple instances of a class - Each instance is unique and randomized ## Binary to Decimal Converter (18 August 2019) A simple binary to decimal converter; will accept an arbitrtary amount of bytes of arbitrary lengths. - String slicing - Reversing - Concatenation - Iterables - Conditionals - Math operators - Powers ## Caesar Cypher (25 July 2019) Takes an encryption key (n) from 0-25 and moves each character ahead n spaces in the alphabet. If the letter reaches z, it wraps back to a. - Iterables - Conditionals - For loops - List wrapping - Functions ## Cash register (3 August 2019) Takes a sales total and amount tendered, then calculates change and lists the amount of each denomination of change to return. - Rounding - While Loops - Conditionals - Functions ## Collatz Conjecture (7 August 2019) *requires Matplotlib* Takes a positive integer (n), and depending on its parity, will either divide it by 2 or multiply it by 3 then add 1, and repeat the whole process until the integer is equal to 1. It will then display a graph where x is the number of steps and y is the value of n. - A Classic Algorithm - While loops - Conditionals - Math operators - Modulus - Floor division - Addition - Matplotlib Graphing Library ## Conway's Game of Life (22 August 2019) *requires Pygame* Generates 100 squares that can each be either living or dead; each 1-second "generation," if a living square has less than two or more than three living neighbours, it will die from either underpopulation or crowding. If a dead square has exactly three living neighbours, it will become living, via reproduction. - A cellular automaton - Random library - PyGame - Rectangles - Conditionals - Iteration - Object-oriented programming - Functions - Methods - Game loop ## Line/square drawing (27 July 2019) A GUI application that takes a number (n) and, depending on which button is pressed, will generate either n lines or n rectangles, all of random size, position, and colour. It will display the last action completed in a status bar at the bottom. - Tkinter GUI Library - Canvas - Buttons - Inputs - Random library - Object-Oriented Programming - For Loops - Functions - Methods ## Hangman (5 August 2019) A game of hangman that pulls words from a 100-word text file. - Random library - Reading from a text file - For loops - Game loop - Conditionals - Iterables - Functions ## Minefield/Minesweeper (20 July 2019) A game that draws a 5x5 grid, in which a random number of randomly placed mines are hidden. The goal is to clear the board without hitting a mine. - System commands - Random library - Wrapping - Iterables - Conditionals - Functions - Game loop ## Pig Latin (19 July) Converts a word into "Pig Latin," i.e. if the word begins with a vowel, it will add "ay" to the end, and if it begins with a consonant, it will move the first letter to the end of the word and then add "ay." - String slicing - String concatenation - Conditionals ## Recursive Guessing Game (24 August 2019) The user chooses a number between 0 and 100 (unknown to the computer), and the computer will guess it. A light project that I included because of recursion. - Recursion - Conditionals - Math operators - Floor division - Addition ## Monty Python's Python Soundboard (31 July 2019) A just-for-fun soundboard of clips from Monty Python's Life of Brian. Fun Fact: The Python Programming Language is named after Monty Python! - Tkinter GUI Library - Buttons - Lambda Expressions - Object-oriented programming - Playing audio files