From 97afe595fb2fea1d9aac89ed5c9770eb0f93e777 Mon Sep 17 00:00:00 2001 From: Jamal Millner II Date: Sat, 28 Sep 2024 16:47:46 -0400 Subject: [PATCH] All Intersections point system Algo-Fully Working- --- PlayerScript.gd | 101 ++++++++++++++++++++++++++++++------------------ 1 file changed, 63 insertions(+), 38 deletions(-) diff --git a/PlayerScript.gd b/PlayerScript.gd index 013258b..f175998 100644 --- a/PlayerScript.gd +++ b/PlayerScript.gd @@ -8,6 +8,7 @@ var Current_Position = [0,0] var Cords = [[0,0]] var Cords_Copy = [] var Intersections = [[]] + var Intersections_Copy = [] var Distance_From_Intersection = 0 var Tree_Array = [] @@ -39,6 +40,7 @@ var Move_Check2 = 0 var Move_Check = 0 var move_check2 = 0 var Move_Check3 = 0 +var move_check7 = 99 var Been_There_Overide = false var LogDump = [] var IntersectionDump = [] @@ -52,7 +54,7 @@ var CircleInts = 0 var LogDumpOrdered = [] var Order = [] var Intersections_from_root = [] -var TargetCord = [100,-10] +var TargetCord = [2,-10] var CircleCompleted = null var AutoBacktrack = false var IntersectionDict = {"Cord": [], "Data": [] } @@ -60,8 +62,10 @@ var IntersectionDir = [] var IntersectionMove = 0 var IntOptions = [] var CurrentInt = "" -var InverNext = false +var Invert = false var InvertionArray = [] +var CordsDump = [] +var FullCount = 0 func _input(event): if Current_Position != TargetCord: @@ -101,7 +105,9 @@ func _process(delta): MoveAfterIntersection() IntersectionWaysAvailable() IntersectionDumping() + CordsDumping() #print(InverNext) + #print(CordsDump) else: print("We Done!!!!!!!!!!!!!!!!!!!!!!!") @@ -129,6 +135,13 @@ func WhatMove(): move = move + 1 state4 = 2 +func CordsDumping(): + if move_check7 != FullCount: + CordsDump.push_back(Current_Position) + var Duplicate = CordsDump.duplicate(true) + CordsDump = Duplicate + move_check7 = FullCount + func TravelLog(): if Detail_Dict.Been_There == false: if move_check3 != move: @@ -143,6 +156,7 @@ func BackTracking(): BackTrack_Array.push_back(move) if Intersections.find(Current_Position) == -1 and Intersections.find(Current_Position) != Intersections.size() -1 and BackTrack_Array.size() >= 2: TrackBack = GiveOrder() + print(TrackBack) Distance_From_Intersection = BackTrack_Array[-1] - BackTrack_Array[-2] print("The distance from the last intersection is : ", Distance_From_Intersection) print("To get to the last intersection follow these steps : ", TrackBack) @@ -297,44 +311,37 @@ func TrackIntersections(): func MoveAfterIntersection(): if move == IntersectionMove+1: - if InverNext == false: - if Move_Check6 != move: - if TrackBack.size() != 1 and BackTrack_Array.size() > 1: - IntersectionDir.push_back(LogDumpOrdered[0]) - if BackTrack_Array.size() > 1 and BackTrack_Array[-1] - BackTrack_Array[-2] == 1: - InvertionArray.pop_back() - InverNext = true - else: - InverNext = false + if Move_Check6 != move: + if TrackBack.size() != 1 and BackTrack_Array.size() > 1: + IntersectionDir.push_back(LogDumpOrdered[0]) + if BackTrack_Array.size() > 1 and BackTrack_Array[-1] - BackTrack_Array[-2] == 1: + InvertionArray.pop_back() + Invert = true else: - IntersectionDir.push_back(LogDump[0]) - if BackTrack_Array.size() > 1 and BackTrack_Array[-1] - BackTrack_Array[-2] == 1: - InvertionArray.pop_back() - InverNext = true - - elif BackTrack_Array.size() > 1 and BackTrack_Array[-1] - BackTrack_Array[-2] != 1: - InverNext = false - - InvertionArray.push_back(InverNext) - CallingDir() - if InvertionArray.size() > 1 and InvertionArray[-2] == true and InvertionArray[-1] == false: - print(Prev_dir_Opp) - if InvertionArray.size() >1 and InvertionArray[-1] == true and InvertionArray[-2] == false: - print(Prev_dir_Opp) - + Invert = false + else: + IntersectionDir.push_back(LogDump[0]) + if BackTrack_Array.size() > 1 and BackTrack_Array[-1] - BackTrack_Array[-2] == 1 and Invert == false: + InvertionArray.pop_back() + Invert = true + elif BackTrack_Array.size() > 1 and BackTrack_Array[-1] - BackTrack_Array[-2] != 1: + Invert = false else: - print(Prev_dir) - print(InvertionArray) - #print("The Test is here !!!", IntOptions) - Move_Check6 = move - else: - InverNext = false - MoveAfterIntersection() - -func CallingDir(): - if Intersections.find(Current_Position) != -1 and IntOptions.size() > 1: - print(IntOptions[Intersections.find(Current_Position)-1]) - + Invert = false + + if Invert == true: + #print(Prev_dir_Opp) + IntOptions[-1].erase(Prev_dir_Opp) + #print(IntOptions) + if Invert == false and CordsDump.size() >= 2 : + #print(Prev_dir) + if CordsDump.size() >= 2 and Intersections.find(CordsDump[-1]) != -1: + IntOptions[Intersections.find(CordsDump[-1])-1].erase(Prev_dir) + + #print(IntOptions) + #print(Intersections) + Move_Check6 = move + func IntersectionDumping(): if CurrentInt != "Plain Path" and Detail_Dict.Type != "Dead End": if Move_Check9 != move or Been_There_Array[-1] == true: @@ -436,12 +443,21 @@ func AutoSolve(): DirectionStrengths[n] -= 25 if MoveScore < 15: DirectionStrengths[n] -= MoveScore + if Intersections.find(Current_Position) != -1: + var Set = Intersections.find(Current_Position) -1 + #print(IntOptions[Set]) + #print(IntOptions) + #print(Set) + if IntOptions[Set].find(DirArray[n]) == -1: + DirectionStrengths[n] -= 1000 for i in OptionArrays: if Intersections.find(i) != -1: DirectionStrengths[n] -= 100 AutoBacktrack = false var HighestPoints = DirectionStrengths.find(max(DirectionStrengths[0],DirectionStrengths[1],DirectionStrengths[2],DirectionStrengths[3])) + print(DirectionStrengths) + print("The Direction with the lowest points is ", DirArray[HighestPoints], "!") Move(DirArray[HighestPoints]) #***** Helpers ***** @@ -465,6 +481,7 @@ func TypeOfIntersectionHelper(): func goDown(): var D = $Forwardv dir = Vector2.DOWN + FullCount += 1 if not D.is_colliding(): self.global_position.y += 24 Current_Position[1] -=1 @@ -477,6 +494,7 @@ func goDown(): move += Move_Strength print("There is something below you") + func goUp(): var U = $Backv dir = Vector2.UP @@ -492,6 +510,7 @@ func goUp(): move += Move_Strength print("There is something above you") #BeenTheirFromPrevCord() + FullCount += 1 func goRight(): var R = $Rightv @@ -507,6 +526,7 @@ func goRight(): Been_There_Overide = true move += Move_Strength print("There is something to your right") + FullCount += 1 func goLeft(): var L = $Leftv @@ -522,6 +542,7 @@ func goLeft(): Been_There_Overide = true move += Move_Strength print("There is something to your left") + FullCount += 1 #***** Auto Movement ***** @@ -533,6 +554,7 @@ func Move(SetDirection): Prev_dir_Opp = "L" move += Move_Strength Been_There() + FullCount += 1 if SetDirection == "L": self.global_position.x -= 24.4 @@ -541,6 +563,7 @@ func Move(SetDirection): Prev_dir_Opp = "R" move += Move_Strength Been_There() + FullCount += 1 if SetDirection == "D": self.global_position.y += 24 @@ -549,6 +572,7 @@ func Move(SetDirection): Prev_dir_Opp = "U" move += Move_Strength Been_There() + FullCount += 1 if SetDirection == "U": self.global_position.y -= 24 @@ -557,3 +581,4 @@ func Move(SetDirection): Prev_dir_Opp = "D" move += Move_Strength Been_There() + FullCount += 1