Heart Click ++ ============== You can do this project *either* starting from either of: * :doc:`heartclick` * :doc:`heartclickfunc` You are going to make 1 **small** code change to your game. If you'd like to work with a friend, feel free. Quick Review ------------ :doc:`heartclick` had a core pattern that looked like this: * setup an initial set of resources (images and sounds) and state (a random direction) * played a sound on load/startup * then we started a loop where we: * updated our state (and/or exited) based on the user's actions * updated our state based on our simulation (motion, collisions) * drew the game on-screen Which in code, looked like this: .. literalinclude:: exercises/functions/game.py :language: python :pyobject: main :end-before: #main_call_start .. note:: The function above is from the :doc:`heartclickfunc` tutorial, if you're curious how it works you can follow through that tutorial before starting this one. Your Idea ---------- What do you want to change about the game? Make it something small and simple, something you can describe in a couple of words: * "the heart runs away from their mouse" * "show the number of times they've clicked" * "they lose if they click more than 10 times" * "the heart gets faster the longer they play" * "20 hearts" * "2 hearts, one loses, the other wins" When you've got your idea, add it to the Idea Board with your name. Breaking Down the Idea ----------------------- What do you need to change? * Do you need to set up a resource (images, audio, fonts (for text))? * Do you need to process user input (mouse clicks, keyboard hits)? * Do you need to track some state (number of clicks)? * Do you need to change how the `simulation` works (motion, etc)? * Do you need to change how the game is drawn? What **Don't** You Know Yet? ---------------------------- We've only covered a *tiny* fraction of programming (and Python) so far, there are going to be *lots* of things you don't know about yet. Yay! * Can you find out how to do it from the `Pygame Documentation `_? * Can you find out how to do it from a `web search `_? * Can you play around at the command-line to find the solution? .. code-block:: python >>> import pygame.font >>> help(pygame.font) * You can also ask me, but that's not as much fun. * You can read on your own, particularly you may wish to read about: * :doc:`dictionaries` * :doc:`lists` * :doc:`functions` * :doc:`loops`