159k views
2 votes
"Simon Says" is a memory game where "Simon" outputs a sequence of 10 characters (R, G, B, Y) and the user must repeat the sequence. Create a for loop that compares the two strings. For each match, add one point to user_score. Upon a mismatch, end the game. Ex: The following patterns yield a user_score of 4: simonPattern: R, R, G, B, R, Y, Y, B, G, Y userPattern: R, R, G, B, B, R, Y, B, G, Y

User Jlb
by
4.4k points

2 Answers

4 votes

Answer:

The other answer was so close, but the _ was left out so the answer was wrong.

Written in Python:

user_score = 0

simon_pattern = input()

user_pattern = input()

for x in range(len(simon_pattern)):

if user_pattern[x] == simon_pattern[x]:

user_score = user_score + 1

else:

break

print('User score:', user_score)

Step-by-step explanation:

User Gabriele Muscas
by
3.8k points
5 votes

Answer:

user_score = 0 #user score is initialized to 0

simonPattern = 'RRGBRYYBGY'# stores the sequence of characters in simonPattern

userPattern = input("Enter user pattern: ") # prompts the user to enter user pattern and stores the pattern in userPattern

for x in range(len(simonPattern)): #loops through entire length of simonPattern using x as index variable

if userPattern[x] == simonPattern[x]: # checks if the element at x-th index of userPattern matches the element at x-th index of simonPattern

user_score = user_score + 1 # adds 1 to user score if above if condition evaluates to true

else: #if a mismatch occurs

break #loop break if mismatch occurs

print("User Score:",user_score) #prints the computed user score

Step-by-step explanation:

The program first declares a simonPattern string variable and assign it a sequence of characters. You can also prompt to enter the Simon pattern as

simonPattern = input("Enter Simon pattern:")

If you want to hard code the values of both simonPattern and userPattern then change the first two statements after user_score =0 statement as:

simonPattern = 'RRGBRYYBGY'

userPattern = 'RRGBBRYBGY'

Now I will explain the working of the for loop.

for x in range(len(simonPattern)):

len method is used which returns the length of the string stored in simonPattern. For example if simonPattern = 'RRGBRYYBGY' then len returns 10

range method is used to generate a sequence of numbers for x. This means value of x starts from 0 and it keeps incrementing to 1 until the length of the simonPattern is reached.

At first iteration:

Let suppose user enters the pattern: RRGBBRYBGY

x starts at index 0. Value of x=0 is less than the length of simonPattern i.e. 10 so the body of loop executes. The body of loop contains the following if statement:

if userPattern[x] == simonPattern[x]:

It matches both the string for the value of x.

if userPattern[0] == simonPattern[0]:

First character (at 0th index) of userPattern is R and in simonPattern is also R so this statement executes: user_score = user_score + 1 which adds 1 to the user_score. So user_score=1

Next iteration:

x=1

if userPattern[1] == simonPattern[1]:

Second character (at 1st index) of userPattern is R and in simonPattern is also R so this statement executes: user_score = user_score + 1 which adds 1 to the user_score. So user_score=2

Next iteration:

x=2

if userPattern[2] == simonPattern[2]:

Third character (at 12nd index) of userPattern is G and in simonPattern is also G so this statement executes: user_score = user_score + 1 which adds 1 to the user_score. So user_score=3

Next iteration:

x=3

if userPattern[3] == simonPattern[3]:

Fourth character (at 3rd index) of userPattern is B and in simonPattern is also B so this statement executes: user_score = user_score + 1 which adds 1 to the user_score. So user_score=4

Next iteration:

x=4

if userPattern[4] == simonPattern[4]:

Fifth character (at 4th index) of userPattern is B and in simonPattern is R so the if part does not execute and program moves to the else part which has a break statement which means the loop break. The next print(user_score) statement print the value of user_score. As user_score=4 computed in above iterations so output is:

User Score: 4

"Simon Says" is a memory game where "Simon" outputs a sequence-example-1
User Jeremy Stein
by
4.6k points