Programming Project 6

Programming Projects are to be submitted to gradescope.

Due date: Oct 17, Thursday at 7pm

For this programming project, you will create and manipulate 2D lists – which are lists that contain lists.

Cross stitch pattern creator

This assignment exercises the use of the random module, 2D lists, and for loops. You are going to write a Python script called cross_stitch.py.

Cross stitch designs are usually depicted on a grid, with each square on the grid corresponding to a stitch.

For the grid, x refers to the row number (starting at zero) and y refers to the column number (starting at zero).

You can learn more about how to read a cross stitch pattern. For this assignment, you will be creating different functions to create a random background and to add different shapes to the pattern.

This assignment has starter code, which contains a global constant for a list of symbols to be used and a function to print the pattern called print_pattern(pattern). The started code also imports the library random, and sets the seed to 123. Do not make changes to the starter code (changes might cause gradescope test fails).

Create the random background

The first function you should write is the create_background function, which takes a width (how wide the pattern will be in number of stitches), a length (how many rows the pattern has), and number of colors (how many symbols the pattern should have).

pattern = create_background(20, 10, 2)
print_pattern(pattern)
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
│ ◎ │ △ │ ◎ │ △ │ △ │ ◎ │ ◎ │ △ │ △ │ △ │ ◎ │ ◎ │ ◎ │ △ │ △ │ ◎ │ ◎ │ ◎ │ △ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ △ │ ◎ │ ◎ │ △ │ △ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ △ │ △ │ △ │ △ │ △ │ ◎ │ △ │ △ │ △ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ △ │ ◎ │ △ │ △ │ △ │ △ │ △ │ ◎ │ ◎ │ ◎ │ △ │ △ │ ◎ │ △ │ △ │ △ │ ◎ │ △ │ △ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ △ │ ◎ │ ◎ │ ◎ │ △ │ ◎ │ △ │ ◎ │ △ │ ◎ │ △ │ △ │ ◎ │ △ │ ◎ │ ◎ │ △ │ △ │ △ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ △ │ ◎ │ ◎ │ △ │ △ │ △ │ △ │ △ │ ◎ │ ◎ │ ◎ │ △ │ ◎ │ ◎ │ △ │ ◎ │ △ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ △ │ ◎ │ △ │ △ │ △ │ ◎ │ △ │ △ │ △ │ ◎ │ ◎ │ △ │ ◎ │ ◎ │ △ │ ◎ │ ◎ │ ◎ │ △ │ △ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ △ │ △ │ △ │ ◎ │ △ │ ◎ │ ◎ │ △ │ △ │ ◎ │ ◎ │ △ │ ◎ │ △ │ △ │ △ │ △ │ △ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ △ │ ◎ │ △ │ ◎ │ △ │ ◎ │ △ │ ◎ │ △ │ ◎ │ ◎ │ △ │ △ │ △ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ △ │ ◎ │ ◎ │ △ │ ◎ │ △ │ ◎ │ ◎ │ △ │ △ │ △ │ ◎ │ △ │ △ │ △ │ △ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ △ │ △ │ ◎ │ ◎ │ △ │ △ │ △ │ △ │ △ │ △ │ ◎ │ △ │ △ │ ◎ │ ◎ │ △ │ ◎ │ △ │ △ │ △ │
└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

Note how the last argument, 2 makes it so the pattern is created with the first two symbols in the SYMBOLS list provided in the starter code.

Add a vertical stripe to the pattern

Write the function add_v_stripe that modifies and returns the pattern, by adding a stripe of certain width, using a specific symbol. The stripe should start at the first row of symbols (y = 0) and end at the last row of symbols.

pattern = create_background(20, 10, 2)
# add vertical stripe at y = 2, of width = 4,
# using the symbol at index 3 in the list of symbols
pattern = add_v_stripe(pattern, 2, 4, 3)
print_pattern(pattern)
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
│ ◎ │ △ │ ● │ ● │ ● │ ● │ ◎ │ △ │ △ │ △ │ ◎ │ ◎ │ ◎ │ △ │ △ │ ◎ │ ◎ │ ◎ │ △ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ △ │ ◎ │ ● │ ● │ ● │ ● │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ △ │ △ │ △ │ △ │ △ │ ◎ │ △ │ △ │ △ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ △ │ ● │ ● │ ● │ ● │ △ │ △ │ ◎ │ ◎ │ ◎ │ △ │ △ │ ◎ │ △ │ △ │ △ │ ◎ │ △ │ △ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ △ │ ◎ │ ● │ ● │ ● │ ● │ △ │ ◎ │ △ │ ◎ │ △ │ △ │ ◎ │ △ │ ◎ │ ◎ │ △ │ △ │ △ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ● │ ● │ ● │ ● │ △ │ △ │ △ │ △ │ ◎ │ ◎ │ ◎ │ △ │ ◎ │ ◎ │ △ │ ◎ │ △ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ △ │ ◎ │ ● │ ● │ ● │ ● │ △ │ △ │ △ │ ◎ │ ◎ │ △ │ ◎ │ ◎ │ △ │ ◎ │ ◎ │ ◎ │ △ │ △ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ △ │ ● │ ● │ ● │ ● │ ◎ │ ◎ │ △ │ △ │ ◎ │ ◎ │ △ │ ◎ │ △ │ △ │ △ │ △ │ △ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ △ │ ● │ ● │ ● │ ● │ ◎ │ △ │ ◎ │ △ │ ◎ │ ◎ │ △ │ △ │ △ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ △ │ ● │ ● │ ● │ ● │ △ │ ◎ │ ◎ │ △ │ △ │ △ │ ◎ │ △ │ △ │ △ │ △ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ △ │ △ │ ● │ ● │ ● │ ● │ △ │ △ │ △ │ △ │ ◎ │ △ │ △ │ ◎ │ ◎ │ △ │ ◎ │ △ │ △ │ △ │
└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

Add a horizontal stripe to the pattern

Write the function add_h_stripe that modifies and returns the pattern, by adding a stripe of certain height, using a specific symbol. The stripe should start at the first column of symbols (x = 0) and end at the last column of symbols.

pattern = create_background(20, 10, 2)
# add vertical stripe at x = 2, of height = 5,
# using the symbol at index 6 in the list of symbols
pattern = add_h_stripe(pattern, 2, 5, 6)
print_pattern(pattern)
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
│ ◎ │ △ │ ◎ │ △ │ △ │ ◎ │ ◎ │ △ │ △ │ △ │ ◎ │ ◎ │ ◎ │ △ │ △ │ ◎ │ ◎ │ ◎ │ △ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ △ │ ◎ │ ◎ │ △ │ △ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ △ │ △ │ △ │ △ │ △ │ ◎ │ △ │ △ │ △ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │ ▲ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ △ │ ◎ │ △ │ ◎ │ △ │ ◎ │ △ │ ◎ │ △ │ ◎ │ ◎ │ △ │ △ │ △ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ △ │ ◎ │ ◎ │ △ │ ◎ │ △ │ ◎ │ ◎ │ △ │ △ │ △ │ ◎ │ △ │ △ │ △ │ △ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ △ │ △ │ ◎ │ ◎ │ △ │ △ │ △ │ △ │ △ │ △ │ ◎ │ △ │ △ │ ◎ │ ◎ │ △ │ ◎ │ △ │ △ │ △ │
└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

Add a square to the pattern

Write the function add_square that modifies and returns the pattern, by adding a square of certain size, using a specific symbol.

pattern = create_background(20, 10, 2)
# add a square to the pattern at coordinates x and y,
# of size 8 using symbol at index 14
pattern = add_square(pattern, 1, 5, 8, 14)
print_pattern(pattern)
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
│ ◎ │ △ │ ◎ │ △ │ △ │ ◎ │ ◎ │ △ │ △ │ △ │ ◎ │ ◎ │ ◎ │ △ │ △ │ ◎ │ ◎ │ ◎ │ △ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ △ │ ◎ │ ◎ │ △ │ △ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ △ │ △ │ △ │ ◎ │ △ │ △ │ △ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ △ │ ◎ │ △ │ △ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ◎ │ △ │ △ │ △ │ ◎ │ △ │ △ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ △ │ ◎ │ ◎ │ ◎ │ △ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ △ │ ◎ │ ◎ │ △ │ △ │ △ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ △ │ ◎ │ ◎ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ △ │ ◎ │ ◎ │ △ │ ◎ │ △ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ △ │ ◎ │ △ │ △ │ △ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ◎ │ △ │ ◎ │ ◎ │ ◎ │ △ │ △ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ △ │ △ │ △ │ ◎ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ◎ │ △ │ △ │ △ │ △ │ △ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ △ │ ◎ │ △ │ ◎ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ △ │ △ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ △ │ ◎ │ ◎ │ △ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ ♦ │ △ │ △ │ △ │ △ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ △ │ △ │ ◎ │ ◎ │ △ │ △ │ △ │ △ │ △ │ △ │ ◎ │ △ │ △ │ ◎ │ ◎ │ △ │ ◎ │ △ │ △ │ △ │
└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

Add a rectangle to the pattern

Write the function add_rectangle that modifies and returns the pattern, by adding a rectangle of certain width and height, using a specific symbol.

pattern = create_background(20, 10, 2)
# add a rectangle to the pattern at coordinates x and y,
# of width 5 and height 3, using the symbol at index 4
add_rectangle(pattern, 2, 3, 5, 3, 4)
print_pattern(pattern)
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
│ ◎ │ △ │ ◎ │ △ │ △ │ ◎ │ ◎ │ △ │ △ │ △ │ ◎ │ ◎ │ ◎ │ △ │ △ │ ◎ │ ◎ │ ◎ │ △ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ △ │ ◎ │ ◎ │ △ │ △ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ △ │ △ │ △ │ △ │ △ │ ◎ │ △ │ △ │ △ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ △ │ ◎ │ ▣ │ ▣ │ ▣ │ ▣ │ ▣ │ ◎ │ ◎ │ ◎ │ △ │ △ │ ◎ │ △ │ △ │ △ │ ◎ │ △ │ △ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ △ │ ◎ │ ◎ │ ▣ │ ▣ │ ▣ │ ▣ │ ▣ │ △ │ ◎ │ △ │ △ │ ◎ │ △ │ ◎ │ ◎ │ △ │ △ │ △ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ △ │ ▣ │ ▣ │ ▣ │ ▣ │ ▣ │ △ │ △ │ ◎ │ ◎ │ ◎ │ △ │ ◎ │ ◎ │ △ │ ◎ │ △ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ △ │ ◎ │ △ │ △ │ △ │ ◎ │ △ │ △ │ △ │ ◎ │ ◎ │ △ │ ◎ │ ◎ │ △ │ ◎ │ ◎ │ ◎ │ △ │ △ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ △ │ △ │ △ │ ◎ │ △ │ ◎ │ ◎ │ △ │ △ │ ◎ │ ◎ │ △ │ ◎ │ △ │ △ │ △ │ △ │ △ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ △ │ ◎ │ △ │ ◎ │ △ │ ◎ │ △ │ ◎ │ △ │ ◎ │ ◎ │ △ │ △ │ △ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ △ │ ◎ │ ◎ │ △ │ ◎ │ △ │ ◎ │ ◎ │ △ │ △ │ △ │ ◎ │ △ │ △ │ △ │ △ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ △ │ △ │ ◎ │ ◎ │ △ │ △ │ △ │ △ │ △ │ △ │ ◎ │ △ │ △ │ ◎ │ ◎ │ △ │ ◎ │ △ │ △ │ △ │
└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

Add four different triangles to the pattern

You should write four different functions to add four types of triangles to the pattern.

Each triangle function modifies and returns the pattern, by adding a triangle of certain size, using a specific symbol. Each triangle is half of a square – each of the four options slices the square diagonally is four different ways.

pattern = create_background(10, 10, 1)
# add a triangle to the pattern at coordinates x and y,
# of size 6, using the symbol at index 17
add_triangle_a(pattern, 2, 2, 6, 17)
print_pattern(pattern)
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
│ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◘ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◘ │ ◘ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◘ │ ◘ │ ◘ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◘ │ ◘ │ ◘ │ ◘ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◘ │ ◘ │ ◘ │ ◘ │ ◘ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◘ │ ◘ │ ◘ │ ◘ │ ◘ │ ◘ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
pattern = create_background(10, 10, 1)
# add a triangle to the pattern at coordinates x and y,
# of size 6, using the symbol at index 17
add_triangle_b(pattern, 2, 2, 6, 17)
print_pattern(pattern)
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
│ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◘ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◘ │ ◘ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◘ │ ◘ │ ◘ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◎ │ ◎ │ ◘ │ ◘ │ ◘ │ ◘ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◎ │ ◘ │ ◘ │ ◘ │ ◘ │ ◘ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◘ │ ◘ │ ◘ │ ◘ │ ◘ │ ◘ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
pattern = create_background(10, 10, 1)
# add a triangle to the pattern at coordinates x and y,
# of size 6, using the symbol at index 17
add_triangle_c(pattern, 2, 2, 6, 17)
print_pattern(pattern)
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
│ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◘ │ ◘ │ ◘ │ ◘ │ ◘ │ ◘ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◘ │ ◘ │ ◘ │ ◘ │ ◘ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◘ │ ◘ │ ◘ │ ◘ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◘ │ ◘ │ ◘ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◘ │ ◘ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◘ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
pattern = create_background(10, 10, 1)
# add a triangle to the pattern at coordinates x and y,
# of size 6, using the symbol at index 17
add_triangle_d(pattern, 2, 2, 6, 17)
print_pattern(pattern)
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
│ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◘ │ ◘ │ ◘ │ ◘ │ ◘ │ ◘ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◎ │ ◘ │ ◘ │ ◘ │ ◘ │ ◘ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◎ │ ◎ │ ◘ │ ◘ │ ◘ │ ◘ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◘ │ ◘ │ ◘ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◘ │ ◘ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◘ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │ ◎ │
└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘