Subscribe

# Public Solving: Earth, Fire, Snow game

• + 4 devs liked it

โ๏ธ

How to make a rock paper scissor game in JavaScript

25 Dec, 2021 ยท 2 min read

The elves love making up games, and they have their own version of Rock, Paper, Scissor.

Their version includes Earth, Fire, and Snow. Let me quickly tell you how you can win with this game:

• Fire melts snow
• Snow covers earth
• Earth extinguishes fire

Alright, letโs get right into coding this fun game for the elves ๐

I think itโs safe to say there are only three options that win for this game.

Then there is a tie (both the same)

Thatโs actually all there is, and it makes our program a bit easier to create.

Let me show you how:

## Building the earth, fire, snow game in JavaScript permalink

Letโs first define an object with the winning combinations.

const winMatchUp = {
fire: 'snow',
snow: 'earth',
earth: 'fire',
};

There is no need to define the other way around as we can abstract it, seeing we only have two players.

First, letโs look at a draw. This means both players picked the same element.

export const selectWinner = (user1, user2) => {
if (user1.choice === user2.choice) return null;
};

Then we can check if user1โs choice match up is equal to user2โs choice. This would mean user 1 one.

Letโs me check an example to explain a bit more:

• user one picked snow
• user two picked earth

We then query our match-up table and say give us the matchup object for snow. This will return earth.

So if we now compare this to user two choice, we won!

In our code we can do it like so:

if (winMatchUp[user1.choice] === user2.choice) return user1;

This automatically means, if user 1 did not win, user 2 must have won!

export const selectWinner = (user1, user2) => {
if (user1.choice === user2.choice) return null;
if (winMatchUp[user1.choice] === user2.choice) return user1;
return user2;
};

And there you go!

A super simple game, but yet so much fun.

Iโve run the test as a sanity check, and they turn green โ.

Let me know what you think of my solution and how you would do differently.

Tweet this tip
• + 4 devs liked it

### Public Solving: Find the missing presents

3 Jan, 2022 ยท 2 min read

### Public Solving: Caesar decipher in JavaScript

2 Jan, 2022 ยท 3 min read

Join 2099 devs and subscribe to my newsletter

• 1000 articles written
• 2099 devs subscribed
• 529961 words written