Untitled
unknown
plain_text
3 years ago
3.5 kB
3
Indexable
import random points = 0 positive_messages = ['Awesome!', 'Great!','Fantastic!','You got it!'] negative = ['Sorry!', 'That was wrong!'] score_mesaages = ['Score: ', 'Score is: ', 'Your score is: '] print("Welcome to the DNA quiz game!") name_input = input("Enter your username >> ") DNA_length_input = int(input(f"Hi {name_input}, please enter a positive integer for the DNA length >> ")) word_bank = ['C' , 'G' , 'A' , 'T'] def generate_sequence(length): sequence = random.choices(word_bank, k = length) return ''.join(sequence) def compute_complement(sequence): complement_dict = { 'A': 'T', 'T': 'A', 'C': 'G', 'G': 'C' } complement = "" for base in sequence: complement += complement_dict[base] return complement def compute_reverse(sequence_1): result = "" for i in s: result = i + result return result def compute_compress(s): count = 0 compressed_string = "" for i in range(len(length)): sequence = length[i] if i < (len(string) - 1): length = length[i + 1] if length == sequence: count += 1 else: if count == 0: compressed_string += sequence else: compressed_string += f"{count + 1}{sequence}" count = 0 else: if count == 0: compressed_string += sequence else: compressed_string += f"{count + 1}{sequence}" return compressed_string while True: if DNA_length_input <= 0: error_input = int(input("Invalid input, please try again...>>>")) DNA_length_input = error_input else: break option_input = -1 while option_input != 5: option_input = int(input("\nSelect an option [1-4] to answer a question or 5 to quit the game.\nWin the game by scoring at least 10 points! \n \n1. Complement [2 points] 2. Reverse [2 points] 3. Compress [3 points] 4. Expand [3 points] 5. Quit\n> ")) if option_input == 1: sequence = generate_sequence(DNA_length_input) complement_input = input(f"What is the complement of {sequence}? ").upper() complement = compute_complement(sequence) if complement_input == complement: points += 2 print(random.choice(positive_messages), random.choice(score_mesaages), points) else: points -= 1 print (f"That was wrong! The correct answer is {complement} you now have {points} points. \nPlay again?") if option_input == 2: sequence_1 = generate_sequence(DNA_length_input) reverse_input = input(f"What is the reverse of {sequence_1}? ").upper() s = sequence_1 complement_1 = compute_reverse(sequence_1) if reverse_input == complement_1: points += 2 print(random.choice(positive_messages), random.choice(score_mesaages), points) else: points -= 1 print (f"That was wrong! The correct answer is {complement_1} you now have {points} points. \nPlay again?") if option_input == 3: sequence_2 = generate_sequence(DNA_length_input) compression_input = input(f"What is the compression of {sequence_2}? ").upper() s = sequence_2 complement_2 = compute_compress(sequence_2) if compression_input == complement_2: points += 3 print(random.choice(positive_messages), random.choice(score_mesaages), points) else: points -= 1 print (f"That was wrong! The correct answer is {complement_2} you now have {points} points. \nPlay again?")
Editor is loading...