React is an easy to use JavaScript framework that lets us create front end apps.
In this article, we’ll look at how to create a balloon popping game with React and JavaScript.
Create the Project
We can create the React project with Create React App.
To install it, we run:
npx create-react-app balloon-popping-game
with NPM to create our React project.
Create the Balloon Popping Game
To create the balloon popping game, we write:
import React, { useState } from "react";
const colors = ["red", "green", "blue"];
const generateColor = () => {
const index = Math.floor(Math.random() * colors.length);
return colors[index];
};
const balloonArr = Array(25)
.fill()
.map((_, i) => ({ id: i, popped: false, color: generateColor() }));
export default function App() {
const [balloons, setBalloons] = useState(balloonArr);
const onPop = (index) => {
setBalloons((balloons) => {
const b = [...balloons];
b[index].popped = true;
return b;
});
};
return (
<div className="App">
<style>
{`
.balloon-container {
display: inline-block;
}
.balloon {
width: 50px;
height: 50px;
border-radius: 50%;
border: 1px solid black;
}
`}
</style>
<div>
{balloons.map((b, i) => {
if (!b.popped) {
return (
<div className="balloon-container" key={b.id}>
<div
className="balloon"
style={{ backgroundColor: b.color }}
onMouseOver={() => onPop(i)}
></div>
</div>
);
} else {
return <div className="balloon-container">popped</div>;
}
})}
</div>
</div>
);
}
We have the colors
array with the balloon colors.
generateColor
picks a random color from the colors
array.
Then we have the balloonArr
array which has 25 objects with data for rendering the balloons.
It includes whether it’s popped
or not, and the color
.
In App
, we have the balloons
state which is set to balloonArr
initially.
The onPop
function lets us set the balloons
entry with the given index
‘s popped
property to true
.
We have a callback to get the balloons
, then we make a copy, modify it, and then return the modified copy.
Next, we have the styles to make the balloons display online.
The ballon
class makes the div display as circles by setting the border-radius
to 50%
.
Then finally, we render the balloons
by calling map
.
In the map
callback, we check if b.popped
is false
.
If it’s false
, then we render the ballon with divs.
We set the styles
and the onMouseOver
prop to a function that calls the onPop
function to pop the balloons by setting popped
to true
.
Otherwise, we render the ‘popped’ text.
Conclusion
We can create a balloon popping game with React and JavaScript.