the other part of line ' elif condition is (currentstep ! and time time(timeout lastclicktimethis handles making sure the player did not --time out|notice that this part of the condition has two expressions connected by an and keyword that means both sides of the and keyword need to evaluate to true in order to --time out||it must not be the player' first button click but once they've started to click buttonsthey must keep clicking the buttons quickly enough until they've entered the entire pattern (or have clicked on the wrong pattern and gotten --game over||if currentstep ! is truethen we know the player has begun clicking the buttons epoch time also in order to --time out||the current time (returned by time time()minus four seconds (because is stored in timeoutmust be greater than the last time clicked button (stored in lastclicktimethe reason why time time(timeout lastclicktime works has to do with how epoch time works epoch time (also called unix epoch timeis the number of seconds it has been since january st this date is called the unix epoch for examplewhen run time time(from the interactive shell (don' forget to import the time module first)it looks like thisimport time time time( what this number means is that the moment the time time(function was called was little over , , , seconds since midnight of january st (this translates to november th at : : pm you can learn how to convert from unix epoch time to regular english time at if call time time(from the interactive shell few seconds laterit might look like thistime time( seconds after midnight of the unix epoch is november th at : : pm (actuallyit' : and seconds if you want to be precise dealing with time would be difficult if we had to deal with strings it' hard to tell that seconds have passed if we only had the string values ' : : pmand ' : : pmto compare but with epoch timeit' just matter of subtracting the integers which evaluates to this value is the number