A Simple Python User Interaction Game
Tags: programming, python, beginners, tutorial
Published: 2023-06-04 08:46:58

In this article, I will discuss how to use Python to create a simple user interaction. As you implement this code, you will gain a deeper understanding of Python programming.

- **Input and Output Handling:** The game requires handling of user's input and displaying output to the user.
- **Control Flow:** The game requires conditional statements and loops to control the game flow based on user input and game logic.
- **Debugging:** Debugging is a crucial skill in programming. Implementing a simple user interaction code can help programmers practice debugging by identifying and fixing an error in the code.
- **User Interface Design:** Although a simple program such as this does not require complex user interfaces, it can still teach a programmer the essentials of designing user-friendly interfaces for their programs.
- **Code organization:** The program requires the organization of code into functions and modules, which can help the programmer learn how to write modular and reusable code.

## Prerequisites
Before creating the Python simple user interface, ensure the following is installed on your system:

- Operating systems such as Windows, Linux, or MacOS
- Python installed on your system(updated version)
- A code editor or IDE(Visual Studio code with Jupyter notebooks extension)

## Project Description
This article will describe the program in detail:

- Display a list
- Have a user choose an index position and an input value
- Replace value at index position with user's input value

**Step 1: Displaying List**
Let's start by creating the display function.

_Creating the game list_
```
#Python
#game list that would be passed into the display function

game_list = ['0','1','2']
```
_Creating the display function_
```
#Python
#A function that displays the game list

def display_list(game_list):
    print('Here is my current list')
    print(game_list)
    
print(display_list(game_list))
```
_Output of the display function_ 

```
#Code output

Here is my current list
['0', '1', '2']
None
```

**Step 2: Position Choice**
In this step, I would create a function that asks the user for a position. I would use the while loop to keep asking the user for inputs in case the user is entering a position out of range or a string. 

_Creating the position choice function_

```
#Python
#A function that asks the user for input to determine the index position on the list 


def position_choice():
    
    #This original choice value can be anything that isn't an integer
    choice = ''
    
    #While choice is not a digit keep asking for input.
    while choice not in ['0','1','2']:
        choice = input('Pick a position (0,1 or 2): ')
        if choice not in ['0','1','2']:
            print('Sorry, Invalid choice!')
        
    return int(choice)

print(position_choice())
```
_Output of the position choice function_

```
#code output

Pick a position(0,1,2): two
Sorry, Invalid choice!
Pick a position(0,1,2): 24
Sorry, Invalid choice!
Pick a position(0,1,2):2
```
In the output above, I inputted the _'string two'_ and the _'number 24'_. The _string two_ is not a number, so the code continues, while the _number 24_ is out of range. I finally input the correct value _'2'_ and the code runs perfectly.

**Step 3: Replacement Value**
In this step, I would create a function that replaces value in the game_list. This function allows the user to replace an item in the game_list with the chosen index position.

_Creating the replacement function_

```
#Python
#A function that asks for a replacement value

def replacement_choice(game_list, position):
    user_placement = input('Type a string to be replaced: ')
    game_list[position] = user_placement
    
    return game_list

print(replacement_choice(game_list,1))
```
_Output of the replacement function_

```
#code output

Type a string to be replaced: two
['0', 'two', '2']
```

In the output above, we can see that when the function was executed, it asked the user to input a string. 
From the function, we can see it took in the game_list and position as attributes already. 
The user input was replaced at the index position passed into the function with the list.

**Step 4: Replay Choice**
In this step, I would create a function that asks the player whether to keep playing.

_Creating the replay function_

```
#Python
#A function that asks for replay value

def gameon_choice():
    choice = ''
    
    while choice not in ['Y','N']:
        choice = input('Keep playing, please choose (Y or N): ').capitalize()
        if choice not in ['Y','N']:

            print('Sorry I dont understand, choose Y or N!')
        
    if choice == 'Y':
        return True
    else:
        return False
    
print(gameon_choice())
```
_Output of the replay function_

```
#code output

Keep playing, please choose (Y or N): Y
True
```

**Step 5: Game Logic**
This is the final step. In this step, we would arrange our functions and apply logic with conditional statements to allow the game to work as we want it to.

_Creating the Game Logic_

```
#Python
#Game Logic

game_on = True
game_list = ['0','1','2']

while game_on:
    display_list(game_list)
   
    position = position_choice()
    
    game_list = replacement_choice(game_list, position)
    
    display_list(game_list)
    
    game_on = gameon_choice()
    

```
_Output of final code_

```
#code output

Here is my current list
['0', '1', '2']
Pick a position(0,1 or 2): two
Sorry, Invalid choice!
Pick a position(0,1 or 2): 0
Type a string to be replaced: zero
Here is my current list
['zero', '1', '2']
Keep playing, please choose (Y or N):q
Sorry I don't understand, choose Y or N!
Keep playing, please choose (Y or N): N
```

**Using While Loop**
The while loop allows for a continual loop until a certain condition is met. In this case, the loop kept asking for valid input until the user chose a number or chose to end the game, which ended the loop. The code then replaced the value at index position '0' with the string 'zero' that was inputted by the user and displayed the updated list. Finally, the user was asked if he wanted to continue the game, the user chose the wrong input at first and was prompted again by the game, the user chose 'N' and the loop ended and the game was over.

**Conclusion**
The article is about the implementation of a simple user interaction game, which I have broken down step by step for easy readability. I hope it's educational. It would be greatly appreciated if you followed me, read my previous articles, share your honest opinions, and react and comment.