Python | Programa para implementar el juego FLAMES simple

Python es un lenguaje multipropósito y uno puede hacer literalmente cualquier cosa con él. Python también se puede utilizar para el desarrollo de juegos. Vamos a crear un juego FLAMES simple sin usar bibliotecas de juegos externas como PyGame.
FLAMES es un juego popular que lleva el nombre de las siglas: Friends, Lovers, Affectionate, Marriage, Enemies, Sibling. Este juego no predice con precisión si una persona es adecuada para ti o no, pero puede ser divertido jugarlo con tus amigos.

Hay dos pasos en este juego:

  • Toma los dos nombres.
  • Eliminar los caracteres comunes con sus respectivas ocurrencias comunes.
  • Obtener el recuento de los caracteres que quedan.
  • Tome las letras FLAMES como [“F”, “L”, “A”, “M”, “E”, “S”]
  • Comience a eliminar letras usando el conteo que obtuvimos.
  • La letra que dura el proceso es el resultado.

Ejemplo : 

Input :   player1 name : AJAY
          player 2 name : PRIYA

Output : Relationship status : Friends

Explicación: En los dos nombres anteriores, A e Y, son letras comunes que aparecen una vez (recuento común) en ambos nombres, por lo que estamos eliminando estas letras de ambos nombres. Ahora cuente el total de letras que quedan aquí, son 5. Ahora comience a eliminar las letras una por una de FLAMES usando el conteo que obtuvimos y la letra que dura el proceso es el resultado.

El conteo se realiza en forma circular en sentido contrario a las agujas del reloj.

El conteo de FLAMES 
comienza desde F, E está en el quinto conteo, así que eliminamos E y comenzamos a contar nuevamente, pero esta vez comienza desde S. 
FLAMS 
M está en el quinto conteo, así que eliminamos M y el conteo comienza desde S. 
FLAS 
S está en el quinto conteo así que eliminamos S y comenzamos a contar desde F. 
FLA 
L está en el quinto conteo, así que eliminamos L y comenzamos a contar desde A. 
FA 
A está en el quinto conteo, así que eliminamos A. ahora solo nos queda una letra, así que esta es la final responder. 

Entonces, la relación es F es decir Amigos.

Enfoque: Tome dos nombres como entrada y luego elimine los caracteres comunes con sus respectivas ocurrencias comunes. Para fines de eliminación, creamos la función remove_match_char definida por el usuario con dos argumentos como list1 y list2 que almacena la lista de caracteres del nombre de dos jugadores respectivamente y devuelve la lista de la lista concatenada (list1 + «*» flagst2) y el valor de la bandera que almacenamos en la variable ret_list .Después de eliminar todos los caracteres comunes, cuente el número total. de los caracteres restantes y luego cree una lista de resultados con el acrónimo FLAMES, es decir, [“Amigos”, “Amor”, “Afecto”, “Matrimonio”, “Enemigo”, “Hermanos”]. Ahora comience a eliminar palabras una por una hasta que la lista no contenga solo una palabra, utilizando el recuento total que obtuvimos. la palabra que permanece en el último, es el resultado.

A continuación se muestra la implementación: 

Python3

# function for removing common characters
# with their respective occurrences
def remove_match_char(list1, list2):
 
    for i in range(len(list1)) :
        for j in range(len(list2)) :
 
            # if common character is found
            # then remove that character
            # and return list of concatenated
            # list with True Flag
            if list1[i] == list2[j] :
                c = list1[i]
 
                # remove character from the list
                list1.remove(c)
                list2.remove(c)
 
                # concatenation of two list elements with *
                # * is act as border mark here
                list3 = list1 + ["*"] + list2
 
                # return the concatenated list with True flag
                return [list3, True]
 
    # no common characters is found
    # return the concatenated list with False flag
    list3 = list1 + ["*"] + list2
    return [list3, False]
 
# Driver code
if __name__ == "__main__" :
     
    # take first name  
    p1 = input("Player 1 name : ")
 
    # converted all letters into lower case
    p1 = p1.lower()
 
    # replace any space with empty string
    p1.replace(" ", "")
 
    # make a list of letters or characters
    p1_list = list(p1)
 
    # take 2nd name
    p2 = input("Player 2 name : ")
    p2 = p2.lower()
    p2.replace(" ", "")
    p2_list = list(p2)
 
    # taking a flag as True initially
    proceed = True
     
    # keep calling remove_match_char function
    # until common characters is found or
    # keep looping until proceed flag is True
    while proceed :
 
        # function calling and store return value
        ret_list = remove_match_char(p1_list, p2_list)
 
        # take out concatenated list from return list
        con_list = ret_list[0]
 
        # take out flag value from return list
        proceed = ret_list[1]
 
        # find the index of "*" / border mark
        star_index = con_list.index("*")
 
        # list slicing perform
         
        # all characters before * store in p1_list
        p1_list = con_list[ : star_index]
 
        # all characters after * store in p2_list
        p2_list = con_list[star_index + 1 : ]
 
 
    # count total remaining characters
    count = len(p1_list) + len(p2_list)
 
    # list of FLAMES acronym
    result = ["Friends", "Love", "Affection", "Marriage", "Enemy", "Siblings"]
 
    # keep looping until only one item
    # is not remaining in the result list
    while len(result) > 1 :
 
        # store that index value from
        # where we have to perform slicing.
        split_index = (count % len(result) - 1)
 
        # this steps is done for performing
        # anticlock-wise circular fashion counting.
        if split_index >= 0 :
 
            # list slicing
            right = result[split_index + 1 : ]
            left = result[ : split_index]
 
            # list concatenation
            result = right + left
 
        else :
            result = result[ : len(result) - 1]
 
    # print final result
    print("Relationship status :", result[0])

Producción: 

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

Publicación traducida automáticamente

Artículo escrito por ankthon y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *