Gail  Wilderman

Gail Wilderman


Refactoring a Rock Paper Scissors Lizard Spock Game

This is part 1 out of 2 of refactoring a Rock-Paper-Scissors-Lizard-Spock game written in Python. In this part I perform an analysis of the code and separate the user interface code from the game logic.

The code I worked on in this episode is available here:
0:00 Intro
1:26 Explaining the code
5:35 Review of the code
12:12 Create a UI protocol class
16:35 Create the CLI implementation
25:48 Update the main file
27:53 Outro

#software #design  #python 

What is GEEK

Buddha Community

Refactoring a Rock Paper Scissors Lizard Spock Game

Implementing a Rock-Paper-Scissors Game Using Event Sourcing

In this tutorial, we will look at how we can design the game flow for a rock-paper-scissors game using Serialized APIs for Event Sourcing and CQRS.

Our favorite runtime environment for applications is usually Dropwizard but since many out there prefer Spring Boot I decided to use it instead for this article. Serialized Java client works with any runtime environment or platform you use on the JVM.

Configure the Serialized project

To develop our game we will use Serialized aggregates and projections. The aggregates will store the events for each game and the projections will provide a view of each game as well as a high score list of the top winners (in the case of multiple games being run).

If you have not yet signed up to Serialized you will need to sign up for a free developer account. Once you’ve signed up and created your first project you will have an empty view of Aggregates, like this:

Empty View of Aggregates

We now need to find out API keys that are available under Settings.

Finding API Keys

Copy the access key and secret access key to a safe location. We will need these to access Serialized APIs from our backend application.

Great job! We now have an empty Serialized project. We’re now ready to start developing our game!

#java #spring boot #event sourcing #cqrs #implementing a rock-paper-scissors game using event sourcing #rock-paper-scissors game

lakshya world

lakshya world


How to Create a Successful Gaming App?

How to create a game app is a comprehensive guide, explaining the entire process of creating and publishing games for iOS and Android. Covering all the essential information a budding game developer needs to know.


Read More -


#game-engine  #game-development  #game  #games  #gaming 

Autumn  Blick

Autumn Blick


Game Development with .NET

We’ve launched a new Game Development with .NET section on our site. It’s designed for current .NET developers to explore all the choices available to them when developing games. It’s also designed for new developers trying to learn how to use .NET by making games. We’ve also launched a new game development Learn portal for .NET filled with tutorials, videos, and documentation provided by Microsoft and others in the .NET game development community. Finally, we launched a step-by-step Unity get-started tutorial that will get you started with Unity and writing C## scripts for it in no time. We are excited to show you what .NET has to offer to you when making games. .NET is also part of Microsoft Game Stack, a comprehensive suite of tools and services just for game development.

A picture of a game controller

.NET for game developers

.NET is cross-platform. With .NET you can target over 25+ different platforms with a single code base. You can make games for, but not limited to, Windows, macOS, Linux, Android, iOS, Xbox, PlayStation, Nintendo, and mixed reality devices.

C## is the most popular programming language in game development. The wider .NET community is also big. There is no lack of expertise and support you can find from individuals and user groups, locally or online.

.NET does not just cover building your game. You can also use it to build your game’s website with ASP.NET, your mobile app using Xamarin, and even do remote rendering with Microsoft Azure. Your skills will transfer across the entire game development pipeline.

logos of some gaming platforms supported by .NET

Available game engines

The first step to developing games in .NET is to choose a game engine. You can think of engines as the frameworks and tools you use for developing your game. There are many game engines that use .NET and they differ widely. Some of the engines are commercial and some are completely royalty free and open source. I am excited to see some of them planning to adopt .NET 5 soon. Just choose the engine that better works for you and your game. Would you like to read a blog post to help you learn about .NET game engines, and which one would be best for you? core #azure #c# #game development #azure #cryengine #game developers #game development #game development with .net #game engines #games #monogame #playfab #stride #unity #visual studio #waveengine

Reid  Rohan

Reid Rohan


How to Create Rock Paper Scissors Spock Lizard in JavaScript

Welcome to my tutorial!

In this tutorial, we’re gonna build a really simple game of Rock Paper Scissors Spock Lizard.

Please check my GitHub account for the complete  source code.

We are gonna use vanilla JavaScript, HTML, CSS for this game.

YouTube video

Let’s get started.

First, we need to set up our project folder.

Please create a folder for the game.

Put an empty

index.html,index.css,index.jsfile in the folder.

Now you want to put some tags in



Don’t forget to save the file periodically.

We can check that we doing fine by running this file in a browser.

Okay, We can move forward.

Now you want to add input elements for a user.

<span>YOUR CHOICE</span>
    <div id="user-options">
            <input type="radio" id="1" name="option" class="user-option">
            <label for="1">⛰️</label>
            <input type="radio" id="2" name="option" class="user-option">
            <label for="2">✂️</label>
            <input type="radio" id="3" name="option" class="user-option">
            <label for="3">🧻</label>
            <input type="radio" id="4" name="option" class="user-option">
            <label for="4">🖖</label>
            <input type="radio" id="5" name="option" class="user-option">
            <label for="5">🦎</label>

#javascript-tutorial #game-development #spock-lizard #javascript

Karim Aya

Karim Aya


Rock, Paper, Scissors With Python

In this article, we will discuss Python Operators and Conditions, their syntax and different ways to use them in order to create a game of Rock, Paper, Scissors. 

Python Operators

Operators are symbols or statements that manipulate the value of operands.

Consider the following example: 10 * 3 = 5.

The integers "10 " and "3 " are operands (which are also referred to as variables), while "*" is the operator that performs the action of multiplication. It’s important to understand that the use of these operators are not solely limited to operations like addition or multiplication. Some operators can be used for comparisons or to confirm whether a statement is true or false.

For example, in the previous paragraph, I wrote, “The integers ‘10 ’ and ‘3’ are operands…”. In this example, the word "and" just became the operator, since it compared the two integers. We will be making use of the Logical Operators in one of our games.

The Python language supports the following Operators:

  • Arithmetic Operators
  • Comparison Operators
  • Logical Operators
  • Identity Operators
  • Membership Operators
  • Bitwise Operators

For examples and in-depth details on these operators, Programiz is an excellent resource that I recommend checking out.

Python Conditional Statements

 Conditional Statements, also referred to as If…else statements are used to control the flow of an operation. In order to accomplish this, we make use of the boolean values true and false — if a statement is true, then do this, otherwise, do this.

To illustrate this let’s start with our basic game of rock paper scissors.

We’ll begin by defining a function, "basicRPS" that will take two arguments, Player One's hand (p1) and Player Twos hand (p2). Once we’ve got the basics down, we’ll add a little logic to our game so that we can play against the computer.

def basicRPS(p1,p2):

Our first step is to identify and comment the rules of our game.


From our description, we know that there are three options that both users can choose from: Rock, Paper or Scissors. Depending on each player's choice, we will receive a winner. Now, if both users play the same hand, then the result is a draw. Since a draw cancels out the operation, let's use this as our first condition.

if p1.title() == p2.title():
    return 'Draw!'

Assignment and Comparison Operators

You’re probably thinking, "Wait a minute. Why are there two ‘=’ signs?" Well, I’m glad you asked. In Python "=" is considered an Assignment Operator, while "==" is considered a Comparison Operator.

Assignment Operators are used to assign and reassign the value of a given variable. For example:

a = 5
a = 2

We started off by assigning the value of "5" to the variable "a" and then assigned the value of "2" to the same variable.

Comparison Operators tell us if a statement is true or false. Consider the following:

a = 5
b = 5
c = 3
a == b
a == c

In this example, we assigned the value "5" to both "a" and "b." Then, we asked, "is ‘a’ equal to ‘b’?" To which the program returned true. Before moving on, let’s look at one more example.

a = 5
b = '5'
a == b

You’re probably thinking, “If 'a' and 'b' are both '5,' why did Python return false?” Well, it’s simple really. When we assign a value, we also assign the type of value. Take a look.


When the comparison operator asks if "a" is equal to "b", it’s really asking if "a" is really the same type and value as "b"? By surrounding the "5" with quotation marks, I assigned the type of value to string resulting in false.

With that said, let's get back to our game.

if p1.title() == p2.title():
    return 'Draw!'

We asked, "is Player1’s hand Equaled to Player2’s hand?" We add the "title()" method to account for caps. If the result is true, we return "Draw". If the result is false, the program continues to run. Now, we need to decide what happens if both players make unique calls. We’ll accomplish this using the "elif" statement.

# If the player chooses rock
elif p1.title() == 'Rock' and p2.title() == 'Paper':
    return 'Player 2 won!'
elif p1.title() == 'Rock' and p2.title() == 'Scissors':
    return 'Player 1 won!


By adding our logic we decide, “If player1 chooses rock ‘and’ player2 chooses paper, then player2 wins.” By using the “elif” statement, we tell Python, “if the last statement returned false then run this.” In Python, the “and” operator is called a Logical Operator. In order for the program to return true, both statements must be true. If either one is false, then the program will return false. From this point, we’ll go ahead and, using the same logic, decide what happens in the event the user chooses paper and scissors.

#If the user chooses paper

elif p1.title() == ‘Paper’ and p2.title() == ‘Rock’:

return 'Player 1 won!

elif p1.title() == ‘Paper’ and p2.title() == ‘Scissors’:

return ‘Player 2 won!’


If the user chooses scissors

elif p1.title() == ‘Scissors’ and p2.title() == ‘Paper’:

return ‘Player 1 won!’

elif p1.title() == ‘Scissors’ and p2.title() == ‘Rock’:

return ‘Player 2 won!’

There you have it! A basic game of Rock, Paper, Scissors. At this point, we have a pretty good understanding of the logic involved. Let’s take it a step further and adjust our code so that we can play against the computer.

Python Rock, Paper, Scissors

In order for us to play against the computer and have a fair game, we’ll need to import choice from the random module.

The choice model allows us to import a random element from a given list. In our case the list will be one of our three options. Before we implement our logic lets define our function and assign our variables.

from random import choice


def playRPS():

beats = {‘rock’ : ‘scissors’, ‘scissors’ : ‘paper’,‘paper’: ‘rock’}

computerHand = beats[choice([‘rock’,‘paper’,‘scissors’])]

playerHand = input('Choose Rock, Paper, Scissors: ’


First, we created a dictionary called beats with a key-value pair of outcomes (Key beats Value). Using the same dictionary, we call the choice method on a list of hands that are equal to the keys in the “beats” dictionary. Our last variable, “playerHand” assigns the user input as its value.

As a result of this basic setup, we can implement our logic.

 if beats[playerHand] == computerHand:

print(f’Computer played {computerHand}‘)

return ‘Player Wins!’

This may or may not take you a few passes to make sense of. Let’s quickly work our way through this one just in case.

Let’s say that the player inputs “rock.”

The value for the key “rock” is scissors

If the computer randomly chooses “scissors,” then “Player” wins because rock beats scissors. Easy enough right? Now, we just need to add the “elif” statement in the event that the computer wins.

elif beats[computerHand] == playerHand:

print(f’Computer played {computerHand}’)

return ‘Sorry, Computer Won…’

Just like before, if the value for the key (computer’s hand) is the same as the player’s hand, then the computer wins. Now, our last step is to account for a draw.

return ‘Draw!’

This step is basically to say that if none of the other two statements are true then return “draw.” And there you have it! You just programmed an interactive game of Rock, Paper, Scissors.


To recap, we learned that there are many types of Python Operators and Conditional Statements. We also learned that conditional statements can be used to control the flow of an operation. As a tool, conditional statements are priceless and should be in every programmer’s toolkit. We made a basic game of Rock, Paper, Scissors and even stepped it up a notch so that we could play against the computer.

If you enjoyed this article and want to see other projects just like it in the future, please leave a comment below. Until next time!