本文整理汇总了Python中term2048.board.Board.goal方法的典型用法代码示例。如果您正苦于以下问题:Python Board.goal方法的具体用法?Python Board.goal怎么用?Python Board.goal使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类term2048.board.Board
的用法示例。
在下文中一共展示了Board.goal方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Game
# 需要导入模块: from term2048.board import Board [as 别名]
# 或者: from term2048.board.Board import goal [as 别名]
#.........这里部分代码省略.........
save current best score in the default file
"""
if self.score > self.best_score:
self.best_score = self.score
try:
f = open(self.scores_file, 'w')
f.write(str(self.best_score))
f.close()
except:
pass # fail silently
def incScore(self, pts):
"""
update the current score by adding it the specified number of points
"""
self.score += pts
if self.score > self.best_score:
self.best_score = self.score
def end(self):
"""
return True if the game is finished
"""
return not (self.board.won() or self.board.canMove())
def readMove(self):
"""
read and return a move to pass to a board
"""
k = keypress.getKey()
return Game.__dirs.get(k)
def loop(self):
"""
main game loop
"""
try:
while True:
if self.clear_screen:
os.system(Game.__clear)
else:
print("\n")
print(self.__str__(margins={'left':4, 'top':4, 'bottom':4}))
if self.board.won() or not self.board.canMove():
break
m = self.readMove()
self.incScore(self.board.move(m))
except KeyboardInterrupt:
self.saveBestScore()
return
self.saveBestScore()
print('You won!' if self.board.won() else 'Game Over')
def getCellStr(self, x, y):
"""
return a string representation of the cell located at x,y.
"""
c = self.board.getCell(x, y)
az = {}
for i in range(1, int(math.log(self.board.goal(), 2))):
az[2**i] = chr(i+96)
if c==0 and self.__azmode:
return '.'
elif c == 0:
return ' .'
elif self.__azmode:
if c not in az:
return '?'
s = az[c]
elif c == 1024:
s = ' 1k'
elif c == 2048:
s = ' 2k'
else:
s = '%3d' % c
return self.__colors.get(c, Fore.RESET) + s + Style.RESET_ALL
def boardToString(self, margins={}):
"""
return a string representation of the current board.
"""
b = self.board
rg = xrange(b.size())
left = ' '*margins.get('left', 0)
s = '\n'.join(
[left + ' '.join([self.getCellStr(x, y) for x in rg]) for y in rg])
return s
def __str__(self, margins={}):
b = self.boardToString(margins=margins)
top = '\n'*margins.get('top', 0)
bottom = '\n'*margins.get('bottom', 0)
scores = ' \tScore: %5d Best: %5d\n' % (self.score, self.best_score)
return top + b.replace('\n', scores, 1) + bottom
示例2: Game
# 需要导入模块: from term2048.board import Board [as 别名]
# 或者: from term2048.board.Board import goal [as 别名]
#.........这里部分代码省略.........
Hide the cursor. Don't forget to call ``showCursor`` to restore
the normal shell behavior. This is a no-op if ``clear_screen`` is
falsy.
"""
if not self.clear_screen:
return
if not self.__is_windows:
sys.stdout.write('\033[?25l')
def showCursor(self):
"""Show the cursor."""
if not self.__is_windows:
sys.stdout.write('\033[?25h')
def loop(self):
"""
main game loop. returns the final score.
"""
pause_key = self.board.PAUSE
margins = {'left': 4, 'top': 4, 'bottom': 4}
atexit.register(self.showCursor)
try:
self.hideCursor()
while True:
self.clearScreen()
print(self.__str__(margins=margins))
if self.board.won() or not self.board.canMove():
break
m = self.readMove()
if m == pause_key:
self.saveBestScore()
if self.store():
print("Game successfully saved. "
"Resume it with `term2048 --resume`.")
return self.score
print("An error ocurred while saving your game.")
return None
self.incScore(self.board.move(m))
except KeyboardInterrupt:
self.saveBestScore()
return None
self.saveBestScore()
print('You won!' if self.board.won() else 'Game Over')
return self.score
def getCellStr(self, x, y): # TODO: refactor regarding issue #11
"""
return a string representation of the cell located at x,y.
"""
c = self.board.getCell(x, y)
if c == 0:
return '.' if self.__azmode else ' .'
elif self.__azmode:
az = {}
for i in range(1, int(math.log(self.board.goal(), 2))):
az[2 ** i] = chr(i + 96)
if c not in az:
return '?'
s = az[c]
elif c == 1024:
s = ' 1k'
elif c == 2048:
s = ' 2k'
else:
s = '%3d' % c
return self.__colors.get(c, Fore.RESET) + s + Style.RESET_ALL
def boardToString(self, margins=None):
"""
return a string representation of the current board.
"""
if margins is None:
margins = {}
b = self.board
rg = range(b.size())
left = ' '*margins.get('left', 0)
s = '\n'.join(
[left + ' '.join([self.getCellStr(x, y) for x in rg]) for y in rg])
return s
def __str__(self, margins=None):
if margins is None:
margins = {}
b = self.boardToString(margins=margins)
top = '\n'*margins.get('top', 0)
bottom = '\n'*margins.get('bottom', 0)
scores = ' \tScore: %5d Best: %5d\n' % (self.score, self.best_score)
return top + b.replace('\n', scores, 1) + bottom
示例3: test_size
# 需要导入模块: from term2048.board import Board [as 别名]
# 或者: from term2048.board.Board import goal [as 别名]
def test_size(self):
g = 17
b = Board(goal=g)
self.assertEqual(b.goal(), g)
示例4: Game
# 需要导入模块: from term2048.board import Board [as 别名]
# 或者: from term2048.board.Board import goal [as 别名]
#.........这里部分代码省略.........
size = self.board.SIZE
try:
with open(self.store_file, "r") as f:
lines = f.readlines()
score_str = lines[0]
self.score = int(lines[1])
except:
return False
score_str_list = score_str.split(" ")
count = 0
for i in range(size):
for j in range(size):
value = score_str_list[count]
self.board.setCell(j, i, int(value))
count += 1
return True
def loop(self):
"""
main game loop. returns the final score.
"""
pause_key = self.board.PAUSE
margins = {"left": 4, "top": 4, "bottom": 4}
try:
while True:
if self.clear_screen:
os.system(Game.__clear)
else:
print("\n")
print(self.__str__(margins=margins))
if self.board.won() or not self.board.canMove():
break
m = self.readMove()
if m == pause_key:
self.saveBestScore()
if self.store():
print("Game successfully saved. " "Resume it with `term2048 --resume`.")
return self.score
print("An error ocurred while saving your game.")
return
self.incScore(self.board.move(m))
except KeyboardInterrupt:
self.saveBestScore()
return
self.saveBestScore()
print("You won!" if self.board.won() else "Game Over")
return self.score
def getCellStr(self, x, y): # TODO: refactor regarding issue #11
"""
return a string representation of the cell located at x,y.
"""
c = self.board.getCell(x, y)
if c == 0:
return "." if self.__azmode else " ."
elif self.__azmode:
az = {}
for i in range(1, int(math.log(self.board.goal(), 2))):
az[2 ** i] = chr(i + 96)
if c not in az:
return "?"
s = az[c]
elif c == 1024:
s = " 1k"
elif c == 2048:
s = " 2k"
else:
s = "%3d" % c
return self.__colors.get(c, Fore.RESET) + s + Style.RESET_ALL
def boardToString(self, margins={}):
"""
return a string representation of the current board.
"""
b = self.board
rg = range(b.size())
left = " " * margins.get("left", 0)
s = "\n".join([left + " ".join([self.getCellStr(x, y) for x in rg]) for y in rg])
return s
def __str__(self, margins={}):
b = self.boardToString(margins=margins)
top = "\n" * margins.get("top", 0)
bottom = "\n" * margins.get("bottom", 0)
scores = " \tScore: %5d Best: %5d\n" % (self.score, self.best_score)
return top + b.replace("\n", scores, 1) + bottom