Change language

Python | A program for the implementation of a simple game FLAMES

FLAMES — popular game named after the acronym: Friends, Lovers, Affectionate, Marriage, Enemies, Brother and Sister. This game cannot accurately predict if a person is right for you or not, but it can be fun to play this game with your friends.

There are two steps in this game:

    Get score:
  • Take two names.
  • Remove common characters with their corresponding common cases.
  • Get the number of characters that remained.

Get the result:

  • Take the letters FLAMES as ["F", "L", "A", "M", "E", "S"]
  • Start deleting the email using the amount we received.
  • The email that completes the process is the result.
  • Example:

 Input: player1 name: AJAY player 2 name: PRIYA Output: Relationship status: Friends 

Explanation: In the above two names A and Y — common letters that occur once (common count) in both names, so we remove those letters from both names. Now count the total number of letters left here. Now start deleting letters one by one from FLAMES using the counter we got and the letter that lasts the whole process is the result.

The counting is done in a counter-clockwise circle.

FLAMES
counting is start from F, E is at 5th count so we remove E and start counting again but a this time start from S.
FLAMS
M is at 5th count so we remove M and counting start from S.
FLAS
S is at 5th count so we remove S and counting start from F.
FLA
L is at 5th count so we remove L and counting start from A.
FA
A is at 5th count so we remove A. now we have only one letter is remaining so this is the final answer.
F
So, the relationship is F ie Friends.

Approach: take two names as input, then remove the common characters with their corresponding common occurrences. To remove the target, we create a custom function remove_match_char with two arguments, such as remove_match_char and list2, which stores a character list of the two players’ name respectively and returns a linked list list (list1 + "* "Flagst2) and the flag value we store in the ret_list variable. After removing all common characters, count the total. from the remaining characters, then create a list of results abbreviated as FLAMES, that is, [Friends, Love, Love, Marriage, Enemy, Brothers and Sisters]]. Now start deleting the word one by one until the list only contains one word using the total we got. The word that remains in the latter is the result.

Below is the implementation:

# function to remove common characters
# with their respective cases

def remove_match_char ( list1, list2):

 

for i in range ( len (list1)):

for j in range ( len (list2)):

 

# if a common symbol is found

  # then remove that character

# and return a concatenated list

# list with Type flag

if list1 [i] = = list2 [j]:

c = list1 [i]

  

  # remove character from the list

list1.remove (c)

list2.remove (c)

  

# concatenate two list items with *

# * acts as a border mark here

list3 = list1 + [ " * " ] + list2

 

  # return merged list with True flag

return [list3, True ]

 

# no common characters found

# return the concatenated list with False flag

list3 = list1 + [ " * " ] + list2

return [list3, False ]

 
# Driver code

 

if __ name__ = = "__ main__" :

 

# take name

  p1 = input ( "Player 1 name:" )

 

# converted all letters to lowercase

p1 = p1.lower ()

 

# replace any space with an empty string

  p1.replace ( "" , "")

 

# make a list of letters or symbols

p1_list = list (p1)

 

  # take the second name

p2 = input ( "Player 2 name: " )

  p2 < code class = "keyword"> = p2.lower ()

p2.replace ( "" , "")

p2_list = list (p2)

 

# initially accepting the flag as True

proceed = True

 

  # keep calling remove_match_char

# no common characters found or

  # keep looping until the continue flag is True

  while proceed:

 

# call the function and save the return value

ret_list = remove_match_char (p1_list, p2_list )

 

# remove the compound list from the return list

  con_list = ret_list [ 0 ]

  

  # retrieve the flag value from the return list

proceed = ret_list [ 1 ]

 

# find index & quot; * & quot; / border mark

star_index = con_list.index ( "*" )

 

# slice the list

 

# all characters before * store in p1_list

p1_list = con_list [: star_index]

 

# all characters after * save to p2_list

p2_list = con_list [star_index + 1 :]

 

 

# total remaining characters

count = len (p1_list) + len (p2_list)

 

# list of abbreviations FLAMES

result = [ "Friends" , "L ove " , " Affection " , "Marriage" , "Enemy" , "Siblings" ]

  

# keep looping until just one element

# not left in the list of results

while len (result)"  1 :

 

# save this index value from

  # where we should do the slicing.

  split_index = (count % len (result) - 1 )

 

# this step is done to complete

  # counterclockwise circular fashion count.

  if split_index" = 0 :

 

# slicing list

  right = result [split_index + 1 :]

  left = result [: split_index]

  

# list of lists

result = right + left

 

else :

  result = result [: len (result) - 1 ]

 

# print final result

  print ( "Relationship status:" , result [ 0 ])

Logout: < / p>

 Player 1 name: ANKIT Player 2 name: DEEPIKA Relationship status: Marriage 

Shop

Gifts for programmers

Best laptop for Excel

$
Gifts for programmers

Best laptop for Solidworks

$399+
Gifts for programmers

Best laptop for Roblox

$399+
Gifts for programmers

Best laptop for development

$499+
Gifts for programmers

Best laptop for Cricut Maker

$299+
Gifts for programmers

Best laptop for hacking

$890
Gifts for programmers

Best laptop for Machine Learning

$699+
Gifts for programmers

Raspberry Pi robot kit

$150

Latest questions

PythonStackOverflow

Common xlabel/ylabel for matplotlib subplots

1947 answers

PythonStackOverflow

Check if one list is a subset of another in Python

1173 answers

PythonStackOverflow

How to specify multiple return types using type-hints

1002 answers

PythonStackOverflow

Printing words vertically in Python

909 answers

PythonStackOverflow

Python Extract words from a given string

798 answers

PythonStackOverflow

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

606 answers

PythonStackOverflow

Python os.path.join () method

384 answers

PythonStackOverflow

Flake8: Ignore specific warning for entire file

360 answers

News


Wiki

Python | How to copy data from one Excel sheet to another

Common xlabel/ylabel for matplotlib subplots

Check if one list is a subset of another in Python

How to specify multiple return types using type-hints

Printing words vertically in Python

Python Extract words from a given string

Cyclic redundancy check in Python

Finding mean, median, mode in Python without libraries

Python add suffix / add prefix to strings in a list

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

Python - Move item to the end of the list

Python - Print list vertically