've kept saying that the other functions would be explained later in the now that we've gone over the main(function and you have an idea for how the general program workslet' go into the details of all the other functions that are called from main(creating the "revealed boxesdata structure def generaterevealedboxesdata(val) revealedboxes [ for in range(boardwidth) revealedboxes append([valboardheight return revealedboxes the generaterevealedboxesdata(function needs to create list of lists of boolean values the boolean value will just be the one that is passed to the function as the val parameter we start the data structure as an empty list in the revealedboxes variable in order to make the data structure have the revealedboxes[ ][ystructurewe need to make sure that the inner lists represent the vertical columns of the board and not the horizontal rows otherwisethe data structure will have revealedboxes[ ][xstructure the for loop will create the columns and then append them to revealedboxes the columns are created using list replicationso that the column list has as many val values as the boardheight dictates creating the board data structurestep get all possible icons def getrandomizedboard() get list of every possible shape in every possible color icons [ for color in allcolors for shape in allshapes icons append(shapecolorthe board data structure is just list of lists of tupleswhere each tuple has two valuesone for the icon' shape and one for the icon' color but creating this data structure is little complicated we need to be sure to have exactly as many icons for the number of boxes on the board and also be sure there are two and only two icons of each type the first step to do this is to create list with every possible combination of shape and color recall that we have list of each color and shape in allcolors and allshapesso nested for loops on lines and will go through every possible shape for every possible color these are each added to the list in the icons variable on line email questions to the authoral@inventwithpython com