# Help on creating very simple game in Python mode

**URL:** <https://discourse.processing.org/t/help-on-creating-very-simple-game-in-python-mode/44279>\
**Category:** Processing.py\
**Created:** [April 14, 2024, 9:05pm UTC](https://discourse.processing.org/t/help-on-creating-very-simple-game-in-python-mode/44279 "2024-04-14T21:05:34Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![givetosurfrider](https://avatars.discourse-cdn.com/v4/letter/g/eb9ed0/32.png) [@givetosurfrider](https://discourse.processing.org/u/givetosurfrider)\
**Post date:** [April 14, 2024, 9:05pm UTC](https://discourse.processing.org/t/help-on-creating-very-simple-game-in-python-mode/44279/1 "2024-04-14T21:05:34Z")

</div>

I am trying to create the simplest game in python mode for my class. I have created a very very simple “whack-a-mole” type game. It generally works except when i click outside of the circle, the score updates, but just write the new score over the old one, so it look weird. Not sure how to fix this since I dont want to refresh the whole background is I dont click inside the circle.

But beyond this, I would love a critique of my code. While I am sure there are more elegant ways to write this, I want to do it with very simple concepts, as I only have limited time to introduce this project. But I also dont want to give poorly written code to the students. I hope this makes sense.

Below is the code, and thanks in advance for any guidance (also any other ideas on creating extremely simple games would be appreciated):

```auto

time2 = 2000
x = 1
y = 1
radius = 90
score = 0

def setup():
  size(400, 400)
  frameRate(60)
  
def draw():
    global time2, x, y, score
    currentTime = millis()
    
    if currentTime > time2: #user did not click and 2 seconds is up
        time2 = currentTime + 2000 #increase timer by 2 seconds
        background(204) #delete old circle
        text("score =", 330, 10) #dsiplay score title
        text (score, 380, 10) #display score
        x = random(0, width) #reset x variable
        y = random(0, height) #reset y variable
        ellipse(x, y, radius, radius) #create new circle

def mouseClicked():
    global x, y, score
    currentTime = millis()
    d = dist(mouseX, mouseY, x, y) 
    if d < radius: # if clicked in circle
        score += 1 #increase score by 1
        background(204) #delete old circle
        text("score =", 330, 10) #display score title
        text (score, 380, 10) #display score
        x = random(0, width) #reset x variable
        y = random(0, height) #reset y variable
        ellipse(x, y, radius, radius) #create new circle 
    else:
        score -= 1
        text (score, 380, 10)

```

---

<div class="post-metadata">

**Author:** ![mnse](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/mnse/32/16520_2.png) [@mnse](https://discourse.processing.org/u/mnse)\
**Post date:** [April 15, 2024, 6:24am UTC](https://discourse.processing.org/t/help-on-creating-very-simple-game-in-python-mode/44279/2 "2024-04-15T06:24:33Z")

</div>

Hi @givetosurfrider,

even if you want to keep it as simple as possible, consider not showing your students code with duplicate code blocks if it is not required (which actually is never) 🙂  
I would also using myself some other, more object oriented approach for it, but assuming your student are at the very beginning of learning to code.

So I made a possible example without using any advanced technics below with smaller adjustments.

Hope that helps …

```auto
timer = 2000
x = 0
y = 0
radius = 45
score = 0
tried = False 

def setup():
    global x, y
    size(400, 400)
    frameRate(60)
    x = random(radius, width-radius) # init x variable
    y = random(radius, height-radius) # init y variable    
    
def draw():
    global x, y, timer, tried
    background(0)    
    currentTime = millis()
    if tried or currentTime > timer: # user did tried or not click and 2 seconds is up
        timer = currentTime + 2000 # reset timer
        x = random(radius, width-radius) # reset x variable
        y = random(radius, height-radius) # reset y variable
        tried = False # reset try state
    text("score = " + str(score), 330, 10) # display score title
    circle(x, y, radius*2) # display circle

def mouseClicked():
    global tried, score
    tried = True
    d = dist(mouseX, mouseY, x, y)    
    if d < radius: # if clicked inside circle
        score += 1 # increase score
    else: # if clicked outside circle
        score -= 1 # decrease score

```

PS: Actually, I’m usually not using processing python mode at all, even if I’m using python for my real work quite a lot, so I was wondering very much about, that processing python mode is still based on py 2.7. 😮

---

<div class="post-metadata">

**Author:** ![givetosurfrider](https://avatars.discourse-cdn.com/v4/letter/g/eb9ed0/32.png) [@givetosurfrider](https://discourse.processing.org/u/givetosurfrider)\
**Post date:** [April 17, 2024, 6:00pm UTC](https://discourse.processing.org/t/help-on-creating-very-simple-game-in-python-mode/44279/3 "2024-04-17T18:00:21Z")

</div>

This is so incredibly helpful. I can’t thank you enough. I ended up using this code, and building on it for the class. Thank you for taking the time to do this, I really appreciate it!
