- 6th Apr 2023
- 07:19 am
- Admin

**Python Homework Help**

**Python Homework Question**

Python Logical Puzzles, Games, and Algorithms: Tortoise vs Hare

**Python Homework Solution**

Here's a Python program that simulates the classic race between the tortoise and the hare using random numbers:

import random

# Set up starting positions and finish line

tortoise_pos = 0

hare_pos = 0

finish_line = 70

# Define the moves for the tortoise and hare

def tortoise_move(pos):

"""Calculate the tortoise's next move."""

if random.randint(1, 10) <= 5:

pos += 3

else:

pos -= 6

if pos < 0:

pos = 0

return pos

def hare_move(pos):

"""Calculate the hare's next move."""

move = random.randint(1, 10)

if move <= 2:

pass # No move

elif move <= 4:

pos += 9

elif move <= 5:

pos -= 12

if pos < 0:

pos = 0

elif move <= 8:

pos += 1

else:

pos -= 2

if pos < 0:

pos = 0

return pos

# Loop until one of the animals reaches the finish line

while True:

# Move the animals

tortoise_pos = tortoise_move(tortoise_pos)

hare_pos = hare_move(hare_pos)

# Check if the race is over

if tortoise_pos >= finish_line or hare_pos >= finish_line:

break

# Print the current positions of the animals

print("Tortoise: " + "-" * tortoise_pos + "T")

print("Hare: " + "-" * hare_pos + "H")

# Determine the winner and print the result

if tortoise_pos > hare_pos:

print("TORTOISE WINS!!!")

elif hare_pos > tortoise_pos:

print("Hare wins. Yuch.")

else:

print("It's a tie.")

The program sets up the starting positions of the tortoise and hare, as well as the finish line. It then defines functions to calculate the next move for each animal. The function for the tortoise moves it forward 3 or backward 6, while the function for the hare has a more complicated set of moves based on random numbers.

The program then enters a loop that repeatedly moves the animals until one of them crosses the finish line. After each move, it prints the current positions of the animals. When the race is over, the program determines the winner and prints the result.