Skip to content
Snippets Groups Projects
Commit 5a8c5dc1 authored by David Palmer's avatar David Palmer
Browse files

Upload New File

parent b6ef2782
Branches
No related tags found
No related merge requests found
class LightPuzzle:
def __init__(self):
self.statearray = [[1, 0, 1], [0, 0, 0], [1, 0, 1]]
self.solved = False
def PrintPuzzle(self):
i = 3
for row in self.statearray:
rowprint = " ".join([str(tile) for tile in row])
print(str(i)+"| "+rowprint)
i-=1
print(" _ _ _")
print(" 1 2 3")
print()
def FlipTile(self, x, y):
self.statearray[y][x] = self.ChangeState(self.statearray[y][x])
if y > 0:
self.statearray[y - 1][x] = self.ChangeState(self.statearray[y - 1][x])
if y < len(self.statearray) - 1:
self.statearray[y + 1][x] = self.ChangeState(self.statearray[y + 1][x])
if x > 0:
self.statearray[y][x - 1] = self.ChangeState(self.statearray[y][x - 1])
if x < len(self.statearray[y]) - 1:
self.statearray[y][x + 1] = self.ChangeState(self.statearray[y][x + 1])
def ChangeState(self, number):
return 0 if number == 1 else 1
def TakeEdit(self):
valid = False
while not valid:
ToChange = input(
"What part of the puzzle would you like to flip? Enter coordinates in the format X,Y (1-3): "
)
if ToChange == "":
quit()
XY = ToChange.split(",")
if len(XY) != 2 or not XY[0].isdigit() or not XY[1].isdigit():
print("Invalid input. Please enter two numbers separated by a comma.")
elif int(XY[0]) > 3 or int(XY[0]) < 1 or int(XY[1]) > 3 or int(XY[1]) < 1:
print("Invalid input. Coordinates must be between 1 and 3.")
else:
valid = True
self.FlipTile(int(XY[0]) - 1, 3 - int(XY[1]))
def StartPuzzle(self):
for i in range(10):
if i == 9:
print("You have", 10 - i, "go left")
else:
print("You have", 10 - i, "goes left")
self.PrintPuzzle()
self.TakeEdit()
self.CheckSolved()
if self.solved:
print("Puzzle solved!")
break
def CheckSolved(self):
for row in self.statearray:
if 0 in row:
return
self.solved = True
lights = LightPuzzle()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment