Compare commits
7 Commits
main
...
9dfff400de
| Author | SHA1 | Date | |
|---|---|---|---|
| 9dfff400de | |||
| 70777c9f80 | |||
| 9054a9d80f | |||
| 97afe595fb | |||
| 58b24176ab | |||
| c9f5dcd642 | |||
| 7891ff172f |
117
PlayerScript.gd
117
PlayerScript.gd
@@ -8,6 +8,7 @@ var Current_Position = [0,0]
|
|||||||
var Cords = [[0,0]]
|
var Cords = [[0,0]]
|
||||||
var Cords_Copy = []
|
var Cords_Copy = []
|
||||||
var Intersections = [[]]
|
var Intersections = [[]]
|
||||||
|
|
||||||
var Intersections_Copy = []
|
var Intersections_Copy = []
|
||||||
var Distance_From_Intersection = 0
|
var Distance_From_Intersection = 0
|
||||||
var Tree_Array = []
|
var Tree_Array = []
|
||||||
@@ -39,6 +40,7 @@ var Move_Check2 = 0
|
|||||||
var Move_Check = 0
|
var Move_Check = 0
|
||||||
var move_check2 = 0
|
var move_check2 = 0
|
||||||
var Move_Check3 = 0
|
var Move_Check3 = 0
|
||||||
|
var move_check7 = 99
|
||||||
var Been_There_Overide = false
|
var Been_There_Overide = false
|
||||||
var LogDump = []
|
var LogDump = []
|
||||||
var IntersectionDump = []
|
var IntersectionDump = []
|
||||||
@@ -48,11 +50,12 @@ var Move_Check6 = 0
|
|||||||
var Move_Check7 = 0
|
var Move_Check7 = 0
|
||||||
var Move_Check9 = 0
|
var Move_Check9 = 0
|
||||||
var Cicling = false
|
var Cicling = false
|
||||||
|
var CircleIntsMax = 0
|
||||||
var CircleInts = 0
|
var CircleInts = 0
|
||||||
var LogDumpOrdered = []
|
var LogDumpOrdered = []
|
||||||
var Order = []
|
var Order = []
|
||||||
var Intersections_from_root = []
|
var Intersections_from_root = []
|
||||||
var TargetCord = [100,-10]
|
var TargetCord = [200,-10] # HAD TO CHANGE TARGET CORD, IT WAS PREVIOUSLY [2,-10]
|
||||||
var CircleCompleted = null
|
var CircleCompleted = null
|
||||||
var AutoBacktrack = false
|
var AutoBacktrack = false
|
||||||
var IntersectionDict = {"Cord": [], "Data": [] }
|
var IntersectionDict = {"Cord": [], "Data": [] }
|
||||||
@@ -60,6 +63,11 @@ var IntersectionDir = []
|
|||||||
var IntersectionMove = 0
|
var IntersectionMove = 0
|
||||||
var IntOptions = []
|
var IntOptions = []
|
||||||
var CurrentInt = ""
|
var CurrentInt = ""
|
||||||
|
var Invert = false
|
||||||
|
var InvertionArray = []
|
||||||
|
var CordsDump = []
|
||||||
|
var FullCount = 0
|
||||||
|
var Done = 0
|
||||||
|
|
||||||
func _input(event):
|
func _input(event):
|
||||||
if Current_Position != TargetCord:
|
if Current_Position != TargetCord:
|
||||||
@@ -99,8 +107,19 @@ func _process(delta):
|
|||||||
MoveAfterIntersection()
|
MoveAfterIntersection()
|
||||||
IntersectionWaysAvailable()
|
IntersectionWaysAvailable()
|
||||||
IntersectionDumping()
|
IntersectionDumping()
|
||||||
|
CordsDumping()
|
||||||
|
#print(InverNext)
|
||||||
|
#print(CordsDump)
|
||||||
else:
|
else:
|
||||||
|
if Done != 1:
|
||||||
|
print("******************************")
|
||||||
|
print()
|
||||||
|
print()
|
||||||
print("We Done!!!!!!!!!!!!!!!!!!!!!!!")
|
print("We Done!!!!!!!!!!!!!!!!!!!!!!!")
|
||||||
|
print()
|
||||||
|
print()
|
||||||
|
print("******************************")
|
||||||
|
Done = 1
|
||||||
|
|
||||||
func Mark(Prev_Direction):
|
func Mark(Prev_Direction):
|
||||||
|
|
||||||
@@ -126,6 +145,13 @@ func WhatMove():
|
|||||||
move = move + 1
|
move = move + 1
|
||||||
state4 = 2
|
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():
|
func TravelLog():
|
||||||
if Detail_Dict.Been_There == false:
|
if Detail_Dict.Been_There == false:
|
||||||
if move_check3 != move:
|
if move_check3 != move:
|
||||||
@@ -140,6 +166,7 @@ func BackTracking():
|
|||||||
BackTrack_Array.push_back(move)
|
BackTrack_Array.push_back(move)
|
||||||
if Intersections.find(Current_Position) == -1 and Intersections.find(Current_Position) != Intersections.size() -1 and BackTrack_Array.size() >= 2:
|
if Intersections.find(Current_Position) == -1 and Intersections.find(Current_Position) != Intersections.size() -1 and BackTrack_Array.size() >= 2:
|
||||||
TrackBack = GiveOrder()
|
TrackBack = GiveOrder()
|
||||||
|
#print(TrackBack)
|
||||||
Distance_From_Intersection = BackTrack_Array[-1] - BackTrack_Array[-2]
|
Distance_From_Intersection = BackTrack_Array[-1] - BackTrack_Array[-2]
|
||||||
print("The distance from the last intersection is : ", Distance_From_Intersection)
|
print("The distance from the last intersection is : ", Distance_From_Intersection)
|
||||||
print("To get to the last intersection follow these steps : ", TrackBack)
|
print("To get to the last intersection follow these steps : ", TrackBack)
|
||||||
@@ -151,22 +178,36 @@ func Circling():
|
|||||||
if Been_There_Array.size() > 3:
|
if Been_There_Array.size() > 3:
|
||||||
if move_check5 != move:
|
if move_check5 != move:
|
||||||
if Intersections.find(Current_Position) != Intersections.size()-1 and Intersections.find(Current_Position) != -1 and Been_There_Array[-2] == false and Been_There_Array[-3] == false:
|
if Intersections.find(Current_Position) != Intersections.size()-1 and Intersections.find(Current_Position) != -1 and Been_There_Array[-2] == false and Been_There_Array[-3] == false:
|
||||||
var holder = []
|
# var holder = []
|
||||||
for n in (move - BackTrack_Array[-1]):
|
# for n in (move - BackTrack_Array[-1]):
|
||||||
holder.push_back(LogDump[n])
|
# holder.push_back(LogDump[n])
|
||||||
holder.push_front(Prev_dir_Opp)
|
#holder.push_front(Prev_dir_Opp)
|
||||||
|
#print(holder)
|
||||||
print("Circling")
|
print("Circling")
|
||||||
Cicling = true
|
Cicling = true
|
||||||
Individual_Steps.push_front(holder)
|
#ndividual_Steps.push_front(holder)
|
||||||
CircleRootsAndInts()
|
#CircleRootsAndInts()
|
||||||
HowManyIntsInCircle()
|
HowManyIntsInCircle()
|
||||||
FirstCirclePart()
|
if CircleInts == 0:
|
||||||
|
print("This Circle is exhausted go back")
|
||||||
|
print(Individual_Steps)
|
||||||
|
for n in CircleIntsMax:
|
||||||
|
Individual_Steps.pop_front()
|
||||||
|
GoBack(Individual_Steps[0])
|
||||||
|
if CircleInts != 0:
|
||||||
|
print("Go back to circle part :(")
|
||||||
|
#FirstCirclePart()
|
||||||
move_check5 = move
|
move_check5 = move
|
||||||
|
|
||||||
func HowManyIntsInCircle():
|
func HowManyIntsInCircle():
|
||||||
CircleInts = Tree_Array.size() - Intersections.find(Current_Position)+1
|
|
||||||
print(CircleInts)
|
|
||||||
|
|
||||||
|
var subtractor = 0
|
||||||
|
CircleIntsMax = Intersections.size() - (Intersections.find(Current_Position)+1)
|
||||||
|
CircleInts = CircleIntsMax
|
||||||
|
for n in CircleInts:
|
||||||
|
if Tree_Array[-(n+1)] == 1:
|
||||||
|
CircleInts -= 1
|
||||||
|
print(CircleInts)
|
||||||
|
|
||||||
func FirstCirclePart():
|
func FirstCirclePart():
|
||||||
var count = CircleInts
|
var count = CircleInts
|
||||||
@@ -278,7 +319,7 @@ func GiveOrder():
|
|||||||
TrackIntersections()
|
TrackIntersections()
|
||||||
if Detail_Dict.Been_There == false:
|
if Detail_Dict.Been_There == false:
|
||||||
Ordered_Commands_Backward.push_back(Prev_dir_Opp)
|
Ordered_Commands_Backward.push_back(Prev_dir_Opp)
|
||||||
if Detail_Dict.Type != "Plain Path":
|
if Detail_Dict.Type != "Plain Path" and Intersections.size() > 1:
|
||||||
TakeOut = (Cords.size() - Cords.find(Intersections[-2]))
|
TakeOut = (Cords.size() - Cords.find(Intersections[-2]))
|
||||||
var test = Ordered_Commands_Backward.slice(0 , TakeOut)
|
var test = Ordered_Commands_Backward.slice(0 , TakeOut)
|
||||||
test.reverse()
|
test.reverse()
|
||||||
@@ -296,20 +337,43 @@ func TrackIntersections():
|
|||||||
func MoveAfterIntersection():
|
func MoveAfterIntersection():
|
||||||
if move == IntersectionMove+1:
|
if move == IntersectionMove+1:
|
||||||
if Move_Check6 != move:
|
if Move_Check6 != move:
|
||||||
if TrackBack.size() != 1:
|
if TrackBack.size() != 1 and BackTrack_Array.size() > 1:
|
||||||
IntersectionDir.push_back(LogDumpOrdered[0])
|
IntersectionDir.push_back(LogDumpOrdered[0])
|
||||||
|
if BackTrack_Array.size() > 1 and BackTrack_Array[-1] - BackTrack_Array[-2] == 1:
|
||||||
|
InvertionArray.pop_back()
|
||||||
|
Invert = true
|
||||||
|
else:
|
||||||
|
Invert = false
|
||||||
else:
|
else:
|
||||||
IntersectionDir.push_back(LogDump[0])
|
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:
|
||||||
|
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
|
Move_Check6 = move
|
||||||
|
|
||||||
func IntersectionDumping():
|
func IntersectionDumping():
|
||||||
if CurrentInt != "Plain Path" and Detail_Dict.Type != "Dead End":
|
if CurrentInt != "Plain Path" and Detail_Dict.Type != "Dead End" and Been_There_Array.size() >=1:
|
||||||
if Move_Check9 != move or Been_There_Array[-1] == true:
|
if Move_Check9 != move or Been_There_Array[-1] == true:
|
||||||
IntersectionMove = move
|
IntersectionMove = move
|
||||||
IntersectionDump.push_back(Current_Position)
|
IntersectionDump.push_back(Current_Position)
|
||||||
var Dupe = IntersectionDump.duplicate(true)
|
var Dupe = IntersectionDump.duplicate(true)
|
||||||
IntersectionDump = Dupe
|
IntersectionDump = Dupe
|
||||||
#print(IntersectionDump)
|
|
||||||
Move_Check9 = move
|
Move_Check9 = move
|
||||||
|
|
||||||
func CallableRaycastData():
|
func CallableRaycastData():
|
||||||
@@ -330,14 +394,15 @@ func IntersectionWaysAvailable():
|
|||||||
var Sender = []
|
var Sender = []
|
||||||
var Colliders = [R,L,U,D]
|
var Colliders = [R,L,U,D]
|
||||||
var DirArray = ["R","L","U","D"]
|
var DirArray = ["R","L","U","D"]
|
||||||
if Move_Check7 != move and TypeOfIntersectionHelper() == "BlanketIntersection" and Detail_Dict.Been_There == false:# and Intersections.find(Current_Position) == -1:
|
if Move_Check7 != move and TypeOfIntersectionHelper() == "BlanketIntersection" and Detail_Dict.Been_There == false:
|
||||||
for n in Colliders.size():
|
for n in Colliders.size():
|
||||||
if Colliders[n] == false:
|
if Colliders[n] == false:
|
||||||
Sender.push_back(DirArray[n])
|
Sender.push_back(DirArray[n])
|
||||||
IntOptions.push_back(Sender)
|
IntOptions.push_back(Sender)
|
||||||
print(IntOptions)
|
#print(IntOptions)
|
||||||
if Move_Check7 != move and TypeOfIntersectionHelper() == "BlanketIntersection" and Detail_Dict.Been_There == true:
|
if Move_Check7 != move and TypeOfIntersectionHelper() == "BlanketIntersection" and Detail_Dict.Been_There == true:
|
||||||
print(IntOptions)
|
#print(IntOptions)
|
||||||
|
pass
|
||||||
Move_Check7 = move
|
Move_Check7 = move
|
||||||
|
|
||||||
|
|
||||||
@@ -403,12 +468,21 @@ func AutoSolve():
|
|||||||
DirectionStrengths[n] -= 25
|
DirectionStrengths[n] -= 25
|
||||||
if MoveScore < 15:
|
if MoveScore < 15:
|
||||||
DirectionStrengths[n] -= MoveScore
|
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:
|
for i in OptionArrays:
|
||||||
if Intersections.find(i) != -1:
|
if Intersections.find(i) != -1:
|
||||||
DirectionStrengths[n] -= 100
|
DirectionStrengths[n] -= 100
|
||||||
AutoBacktrack = false
|
AutoBacktrack = false
|
||||||
var HighestPoints = DirectionStrengths.find(max(DirectionStrengths[0],DirectionStrengths[1],DirectionStrengths[2],DirectionStrengths[3]))
|
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])
|
Move(DirArray[HighestPoints])
|
||||||
|
|
||||||
#***** Helpers *****
|
#***** Helpers *****
|
||||||
@@ -432,6 +506,7 @@ func TypeOfIntersectionHelper():
|
|||||||
func goDown():
|
func goDown():
|
||||||
var D = $Forwardv
|
var D = $Forwardv
|
||||||
dir = Vector2.DOWN
|
dir = Vector2.DOWN
|
||||||
|
FullCount += 1
|
||||||
if not D.is_colliding():
|
if not D.is_colliding():
|
||||||
self.global_position.y += 24
|
self.global_position.y += 24
|
||||||
Current_Position[1] -=1
|
Current_Position[1] -=1
|
||||||
@@ -444,6 +519,7 @@ func goDown():
|
|||||||
move += Move_Strength
|
move += Move_Strength
|
||||||
print("There is something below you")
|
print("There is something below you")
|
||||||
|
|
||||||
|
|
||||||
func goUp():
|
func goUp():
|
||||||
var U = $Backv
|
var U = $Backv
|
||||||
dir = Vector2.UP
|
dir = Vector2.UP
|
||||||
@@ -459,6 +535,7 @@ func goUp():
|
|||||||
move += Move_Strength
|
move += Move_Strength
|
||||||
print("There is something above you")
|
print("There is something above you")
|
||||||
#BeenTheirFromPrevCord()
|
#BeenTheirFromPrevCord()
|
||||||
|
FullCount += 1
|
||||||
|
|
||||||
func goRight():
|
func goRight():
|
||||||
var R = $Rightv
|
var R = $Rightv
|
||||||
@@ -474,6 +551,7 @@ func goRight():
|
|||||||
Been_There_Overide = true
|
Been_There_Overide = true
|
||||||
move += Move_Strength
|
move += Move_Strength
|
||||||
print("There is something to your right")
|
print("There is something to your right")
|
||||||
|
FullCount += 1
|
||||||
|
|
||||||
func goLeft():
|
func goLeft():
|
||||||
var L = $Leftv
|
var L = $Leftv
|
||||||
@@ -489,6 +567,7 @@ func goLeft():
|
|||||||
Been_There_Overide = true
|
Been_There_Overide = true
|
||||||
move += Move_Strength
|
move += Move_Strength
|
||||||
print("There is something to your left")
|
print("There is something to your left")
|
||||||
|
FullCount += 1
|
||||||
|
|
||||||
#***** Auto Movement *****
|
#***** Auto Movement *****
|
||||||
|
|
||||||
@@ -500,6 +579,7 @@ func Move(SetDirection):
|
|||||||
Prev_dir_Opp = "L"
|
Prev_dir_Opp = "L"
|
||||||
move += Move_Strength
|
move += Move_Strength
|
||||||
Been_There()
|
Been_There()
|
||||||
|
FullCount += 1
|
||||||
|
|
||||||
if SetDirection == "L":
|
if SetDirection == "L":
|
||||||
self.global_position.x -= 24.4
|
self.global_position.x -= 24.4
|
||||||
@@ -508,6 +588,7 @@ func Move(SetDirection):
|
|||||||
Prev_dir_Opp = "R"
|
Prev_dir_Opp = "R"
|
||||||
move += Move_Strength
|
move += Move_Strength
|
||||||
Been_There()
|
Been_There()
|
||||||
|
FullCount += 1
|
||||||
|
|
||||||
if SetDirection == "D":
|
if SetDirection == "D":
|
||||||
self.global_position.y += 24
|
self.global_position.y += 24
|
||||||
@@ -516,6 +597,7 @@ func Move(SetDirection):
|
|||||||
Prev_dir_Opp = "U"
|
Prev_dir_Opp = "U"
|
||||||
move += Move_Strength
|
move += Move_Strength
|
||||||
Been_There()
|
Been_There()
|
||||||
|
FullCount += 1
|
||||||
|
|
||||||
if SetDirection == "U":
|
if SetDirection == "U":
|
||||||
self.global_position.y -= 24
|
self.global_position.y -= 24
|
||||||
@@ -524,3 +606,4 @@ func Move(SetDirection):
|
|||||||
Prev_dir_Opp = "D"
|
Prev_dir_Opp = "D"
|
||||||
move += Move_Strength
|
move += Move_Strength
|
||||||
Been_There()
|
Been_There()
|
||||||
|
FullCount += 1
|
||||||
|
|||||||
Reference in New Issue
Block a user