Added win condition logic
It was the hardest to implement, but yay, I did it.
This commit is contained in:
parent
a9b8409928
commit
8dd2035167
27
GameLogic.py
27
GameLogic.py
@ -19,9 +19,30 @@ class GameLogic():
|
||||
pass
|
||||
|
||||
|
||||
def check_for_win(self, playerList):
|
||||
for player in playerList:
|
||||
pass
|
||||
def check_who_win(self):
|
||||
# Should have used vectors instead of committing tuples mithosis,
|
||||
# but whatever, it works anyway, and if it works, why code more
|
||||
# for nothing?
|
||||
for player in self.playerList:
|
||||
markList = player.get_markList()
|
||||
# since every mark is checked, there's no need to go into
|
||||
# opposite directions, so, there is (0,1) but no (0, -1).
|
||||
# This twice decreases the amount of computation needed.
|
||||
directions = ((0, 1), (1, 0), (1,1), (-1, 1))
|
||||
for mark in markList:
|
||||
for direction in directions:
|
||||
if self.is_line(markList, mark, direction):
|
||||
return player
|
||||
return False
|
||||
|
||||
def is_line(self, markList, mark, direction): # INTERNAL, I guess.
|
||||
for i in range(1, self.winRowLength):
|
||||
seeked = (mark[0] + direction[0] * i, mark[1] + direction[1] * i)
|
||||
if seeked in markList:
|
||||
continue
|
||||
else:
|
||||
return False
|
||||
return True
|
||||
|
||||
def get_time(self):
|
||||
return str(datetime.now() - self.startTime)
|
||||
|
Loading…
Reference in New Issue
Block a user