From 1d4b0d24e3af29d3003d152deea2a5ea23cf5a78 Mon Sep 17 00:00:00 2001 From: Sankarsan Kampa <19631364+iamtraction@users.noreply.github.com> Date: Mon, 1 Mar 2021 08:32:43 +0530 Subject: [PATCH] hurkle: add python port Signed-off-by: Sankarsan Kampa <19631364+iamtraction@users.noreply.github.com> --- 51 Hurkle/python/hurkle.py | 65 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 51 Hurkle/python/hurkle.py diff --git a/51 Hurkle/python/hurkle.py b/51 Hurkle/python/hurkle.py new file mode 100644 index 00000000..dfe40d8d --- /dev/null +++ b/51 Hurkle/python/hurkle.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 +# +# Ported to Python by @iamtraction + +from random import random + + +def direction(A, B, X, Y): + """Prints the direction hint for finding the hurkle.""" + + print("GO ", end="") + if Y < B: + print("NORTH", end="") + elif Y > B: + print("SOUTH", end="") + + if X < A: + print("EAST", end="") + elif X > A: + print("WEST", end="") + + print() + + +if __name__ == "__main__": + print(" " * 33 + "HURKLE") + print(" " * 15 + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY") + + print("\n\n\n") + + N = 5 + G = 10 + + print() + print("A HURKLE IS HIDING ON A", G, "BY", G, "GRID. HOMEBASE") + print("ON THE GRID IS POINT 0,0 IN THE SOUTHWEST CORNER,") + print("AND ANY POINT ON THE GRID IS DESIGNATED BY A") + print("PAIR OF WHOLE NUMBERS SEPERATED BY A COMMA. THE FIRST") + print("NUMBER IS THE HORIZONTAL POSITION AND THE SECOND NUMBER") + print("IS THE VERTICAL POSITION. YOU MUST TRY TO") + print("GUESS THE HURKLE'S GRIDPOINT. YOU GET", N, "TRIES.") + print("AFTER EACH TRY, I WILL TELL YOU THE APPROXIMATE") + print("DIRECTION TO GO TO LOOK FOR THE HURKLE.") + print() + + while True: + A = int(G * random()) + B = int(G * random()) + + for k in range(0, N): + print("\nGUESS #" + str(k)) + + # read coordinates in `X, Y` format, split the string + # at `,`, and then parse the coordinates to `int` and + # store them in `X` and `Y` respectively. + [ X, Y ] = [int(c) for c in input("X,Y? ").split(",")] + + if abs(X - A) + abs(Y - B) == 0: + print("\nYOU FOUND HIM IN", k + 1, "GUESSES!") + break + else: + direction(A, B, X, Y) + continue + + print("\n\nLET'S PLAY AGAIN, HURKLE IS HIDING.\n")