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