meanwhilethe --revealed boxes|data structure is also listexcept instead of two-item tuples like the board data structureit has boolean valuestrue if the box at that xy coordinate is revealedand false if it is covered up passing false to the generaterevealedboxesdata(function sets all of the boolean values to false (this function is explained in detail later these two data structures are used to keep track of the state of the game board the "start gameanimation firstselection none stores the (xyof the first box clicked displaysurf fill(bgcolorstartgameanimation(mainboardline sets up variable called firstselection with the value none (none is the value that represents lack of value it is the only value of the data typenonetype more info at track if this was the first icon of the pair that was clicked on or the second icon if firstselection is nonethe click was on the first icon and we store the xy coordinates in the firstselection variable as tuple of two integers (one for the valuethe other for yon the second click the value will be this tuple and not nonewhich is how the program tracks that it is the second icon click line fills the entire surface with the background color this will also paint over anything that used to be on the surfacewhich gives us clean slate to start drawing graphics on if you've played the memory puzzle gameyou'll notice that at the beginning of the gameall of the boxes are quickly covered and uncovered randomly to give the player sneak peek at which icons are under which boxes this all happens in the startgameanimation(functionwhich is explained later in this it' important to give the player this sneak peek (but not long enough of peek to let the player easily memorize the icon locations)because otherwise they would have no clue where any icons are blindly clicking on the icons isn' as much fun as having little hint to go on the game loop while truemain game loop mouseclicked false displaysurf fill(bgcolordrawing the window drawboard(mainboardrevealedboxesemail questions to the authoral@inventwithpython com