From d369f8c4020595516243cab2d7bc30f2012541d7 Mon Sep 17 00:00:00 2001 From: Scott Wong <scottmw@student.unimelb.edu.au> Date: Mon, 22 Mar 2021 17:17:34 +1100 Subject: [PATCH] Finalised import, global dict and list --- search/main.py | 52 ++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 14 deletions(-) diff --git a/search/main.py b/search/main.py index e0ab98e..bee7a5c 100644 --- a/search/main.py +++ b/search/main.py @@ -14,6 +14,10 @@ import json # then import from them like this: from search.util import print_board, print_slide, print_swing +# Why don't we just make the pieces and blocks global then? +# No need to ever pass them around +dictpieces = {} +setblocks = set() def main(): try: @@ -37,16 +41,34 @@ def main(): # in case we need it # # e.g: object_dict = read_position_list(sys.argv[1]) ? - dictpieces = {} - setblocks = set() initialpiecesupper = data["upper"] initialpieceslower = data["lower"] initialblocks = data["block"] - # Will edit to handle duplicate pieces soon + nump, numr, nums = 0,0,0 + keywrite = "" for piece in initialpiecesupper: - dictpieces[piece[0].upper] = (piece[1],piece[2]) + if piece[0] == "p": + nump = nump + 1 + keywrite = "P" + str(nump) + elif piece[0] == "r": + numr = numr + 1 + keywrite = "R" + str(numr) + else: + nums = nums + 1 + keywrite = "S" + str(nums) + dictpieces[keywrite] = (piece[1],piece[2]) + nump, numr, nums = 0,0,0 for piece in initialpieceslower: - dictpieces[piece[0]] = (piece[1],piece[2]) + if piece[0] == "p": + nump = nump + 1 + keywrite = "p" + str(nump) + elif piece[0] == "r": + numr = numr + 1 + keywrite = "r" + str(numr) + else: + nums = nums + 1 + keywrite = "s" + str(nums) + dictpieces[keywrite] = (piece[1],piece[2]) for block in initialblocks: setblocks.add((block[1],block[2])) @@ -62,23 +84,25 @@ def main(): # We will convert both to lower case letters and check each case # Would be nice to use comparator but can't have r>s>p>r using it # Return 1 if piecea wins, 2 if pieceb wins and 0 if neither win +# Only look at first character of string +# so we don't have to worry about stripping numbers off def piece_collision(piecea, pieceb) -> int: piecea = piecea.lower() pieceb = pieceb.lower() - if piecea == "r": - if pieceb == "s": + if piecea[0] == "r": + if pieceb[0] == "s": return 1 - elif pieceb == "p": + elif pieceb[0] == "p": return 2 - elif piecea == "s": - if pieceb == "p": + elif piecea[0] == "s": + if pieceb[0] == "p": return 1 - elif pieceb == "r": + elif pieceb[0] == "r": return 2 - elif piecea == "p": - if pieceb == "r": + elif piecea[0] == "p": + if pieceb[0] == "r": return 1 - elif pieceb == "s": + elif pieceb[0] == "s": return 2 return 0 # We may have to edit this to strip numbers later -- GitLab