New feature! All moves saved to file in realtime with san anotation
This commit is contained in:
pare
c7b17abe18
commit
e7468ccaaf
S'han modificat 2 arxius amb 100 adicions i 1 eliminacions
|
@ -42,4 +42,5 @@ Within Python Virtual Environment:
|
||||||
![board](board.png)
|
![board](board.png)
|
||||||
|
|
||||||
20.11.2020 - New feature! added link to on going games in games list
|
20.11.2020 - New feature! added link to on going games in games list
|
||||||
21.11.2020 - New feature! Added a warning to player in turn when has been captured one of its pieces
|
21.11.2020 - New feature! Added a warning to player in turn when has been captured one of its pieces
|
||||||
|
23.11.2020 - New feature! Now all moves are saved to file (with san anotation).
|
||||||
|
|
|
@ -117,6 +117,34 @@ def get_piece_name(captured_piece):
|
||||||
|
|
||||||
return piece_name
|
return piece_name
|
||||||
|
|
||||||
|
def get_moved_piece_name(moved_piece):
|
||||||
|
|
||||||
|
if moved_piece == 1:
|
||||||
|
|
||||||
|
moved_piece_name = "P"
|
||||||
|
|
||||||
|
if moved_piece == 2:
|
||||||
|
|
||||||
|
moved_piece_name = "C"
|
||||||
|
|
||||||
|
if moved_piece == 3:
|
||||||
|
|
||||||
|
moved_piece_name = "A"
|
||||||
|
|
||||||
|
if moved_piece == 4:
|
||||||
|
|
||||||
|
moved_piece_name = "T"
|
||||||
|
|
||||||
|
if moved_piece == 5:
|
||||||
|
|
||||||
|
moved_piece_name = "D"
|
||||||
|
|
||||||
|
if moved_piece == 6:
|
||||||
|
|
||||||
|
moved_piece_name = "R"
|
||||||
|
|
||||||
|
return moved_piece_name
|
||||||
|
|
||||||
def get_notification_data():
|
def get_notification_data():
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -475,6 +503,72 @@ def update_game(board_game, toot_url):
|
||||||
|
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|
||||||
|
def save_annotation():
|
||||||
|
|
||||||
|
square_index = chess.SQUARE_NAMES.index(moving[2:])
|
||||||
|
|
||||||
|
moved_piece = board.piece_type_at(square_index)
|
||||||
|
|
||||||
|
moved_piece_name = get_moved_piece_name(moved_piece)
|
||||||
|
|
||||||
|
game_file = "anotations/" + str(game_id)
|
||||||
|
|
||||||
|
if moved_piece_name == 'P':
|
||||||
|
|
||||||
|
moved_piece_name = moved_piece_name.replace('P','')
|
||||||
|
|
||||||
|
if capture == True:
|
||||||
|
|
||||||
|
moved_piece_name = moved_piece_name + "X"
|
||||||
|
|
||||||
|
if check == True:
|
||||||
|
|
||||||
|
moved_piece_name = moved_piece_name + moving[2:] + "+"
|
||||||
|
|
||||||
|
if checkmate == True:
|
||||||
|
|
||||||
|
moved_piece_name = moved_piece_name + "+"
|
||||||
|
|
||||||
|
if bool(board.turn == chess.BLACK) == True:
|
||||||
|
|
||||||
|
if check != True and checkmate != True:
|
||||||
|
|
||||||
|
line_data = str(board.fullmove_number) + ". " + moved_piece_name + moving[2:]
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
line_data = str(board.fullmove_number) + ". " + moved_piece_name
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
moved_piece_name = moved_piece_name.lower()
|
||||||
|
|
||||||
|
if check != True and checkmate != True:
|
||||||
|
|
||||||
|
line_data = " - " + moved_piece_name + moving[2:] + "\n"
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
line_data = " - " + moved_piece_name + "\n"
|
||||||
|
|
||||||
|
if not os.path.isfile(game_file):
|
||||||
|
|
||||||
|
file_header = "Partida: " + str(game_id) + "\n" + white_user + " / " + black_user + "\n\n"
|
||||||
|
|
||||||
|
with open(game_file, 'w+') as f:
|
||||||
|
|
||||||
|
f.write(file_header)
|
||||||
|
|
||||||
|
with open(game_file, 'a') as f:
|
||||||
|
|
||||||
|
f.write(line_data)
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
with open(game_file, 'a') as f:
|
||||||
|
|
||||||
|
f.write(line_data)
|
||||||
|
|
||||||
def close_game():
|
def close_game():
|
||||||
|
|
||||||
now = datetime.now()
|
now = datetime.now()
|
||||||
|
@ -844,6 +938,8 @@ def get_parameter( parameter, file_path ):
|
||||||
def create_dir():
|
def create_dir():
|
||||||
if not os.path.exists('games'):
|
if not os.path.exists('games'):
|
||||||
os.makedirs('games')
|
os.makedirs('games')
|
||||||
|
if not os.path.exists('anotations'):
|
||||||
|
os.makedirs('anotations')
|
||||||
|
|
||||||
def usage():
|
def usage():
|
||||||
|
|
||||||
|
@ -1145,6 +1241,8 @@ if __name__ == '__main__':
|
||||||
|
|
||||||
game_moves = board.ply()
|
game_moves = board.ply()
|
||||||
|
|
||||||
|
save_annotation()
|
||||||
|
|
||||||
update_moves(username, game_moves)
|
update_moves(username, game_moves)
|
||||||
|
|
||||||
update_replies(status_id, username, now)
|
update_replies(status_id, username, now)
|
||||||
|
|
Loading…
Referencia en una nova incidència