Python, sauvegarde des données au format JSON
Résolu
Paul
-
Paul -
Paul -
Bonjour,
J'ai créé un programme python permettant de jouer au domino. Et voici ce que je dois mettre en place: Donner la possibilité d’interrompre la partie pour pouvoir y revenir plus tard. On pourra stocker les données au format JSON et les recharger lors du prochain lancement du programme.
J'ai alors cherché comment enregistrer les données de mon dictionnaire mais je n'y arrive pas. Voici ma fonction main : (PS: mon problème est au début et à la fin)
De plus, je ne sais si il faut que je crée un fichier JSON à l'origine avec un dictionnaire vide. Et est il possible de créer une fonction qui permettrait de remettre à 0 le fichier JSON si le jeu est fini. Merci d'avance. (PS: les indentations ne se mettent pas mais elles sont présentes sur mon programme.
J'ai créé un programme python permettant de jouer au domino. Et voici ce que je dois mettre en place: Donner la possibilité d’interrompre la partie pour pouvoir y revenir plus tard. On pourra stocker les données au format JSON et les recharger lors du prochain lancement du programme.
J'ai alors cherché comment enregistrer les données de mon dictionnaire mais je n'y arrive pas. Voici ma fonction main : (PS: mon problème est au début et à la fin)
def main(): # partie permettant la récupération des données de jeu, mais non fonctionnelle with open('data.json', 'r') as fp: game_data = json.load(fp) # En gros si l'un des éléments du dico récupéré est vide alors je mets en place les paramètres, dans le cas contraire le programme passe directement au while if game_data['board'] == []: nb_player = nb_players() list_player = pseudo_players(nb_player) for pseudo in list_player: game_data['players'][pseudo] = [] init_game(game_data, list_player) display_stack(game_data) for pseudo in list_player: display_dominoes(game_data, pseudo) display_board(game_data) start_info = who_start(nb_player, list_player, game_data) player_start = start_info[0] first_domino = start_info[1] list_player.remove(player_start) list_player.insert(0, player_start) flag = False while flag is False: for pseudo in list_player: print(f"*** Joueur {pseudo} ***") domino = choose_domino(game_data['players'][pseudo], game_data, first_domino) if domino is None: if game_data['stack'] == []: print("Pioche vide, passe son tour") else: dominoes_taken = take_dominoes(game_data['stack'], 1) give_dominoes(game_data, dominoes_taken, pseudo) else: board = game_data['board'] if board != []: position = choose_board_position() if is_domino_possible(game_data['board'], domino, position) is True: play_domino_on_board(game_data, domino, position, pseudo) else: print("Wrong position ! Take a card !") dominoes_taken = take_dominoes(game_data['stack'], 1) give_dominoes(game_data, dominoes_taken, pseudo) else: play_domino_on_board(game_data, domino, 'd', player_start) display_dominoes(game_data, pseudo) display_board(game_data) for player in game_data['players'].keys(): if has_player_won(game_data, player) is True: result = print(f"{player} won the Game !") flag = True return result if is_game_frozen(game_data) is True: result = print(f"{player_with_min_dominoes(game_data)} won the game)") flag = True return result # partie permettant l'enregistrement des données game_stop = input("If you want to stop the game for the moment or not, scribe : Yes or No : ") if game_stop == 'Yes': with open('data.json', 'w') as fp: json.dump(game_data, fp) sys.exit("See you next time") main()
De plus, je ne sais si il faut que je crée un fichier JSON à l'origine avec un dictionnaire vide. Et est il possible de créer une fonction qui permettrait de remettre à 0 le fichier JSON si le jeu est fini. Merci d'avance. (PS: les indentations ne se mettent pas mais elles sont présentes sur mon programme.
A voir également:
- Python, sauvegarde des données au format JSON
- Fuite données maif - Guide
- Format epub - Guide
- Format factory - Télécharger - Conversion & Codecs
- Logiciel de sauvegarde gratuit - Guide
- Sauvegarde des données - Guide
2 réponses
Bonjour,
Pour la mise en forme des sources, au dessus de la zone d'édition de tes messages, il y a des icônes pour l'enrichissement du texte. Celle qui a cet aspect
Un petit tuto là : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
J'ai modifié ta question.
Pour la mise en forme des sources, au dessus de la zone d'édition de tes messages, il y a des icônes pour l'enrichissement du texte. Celle qui a cet aspect
<> ▼permet d'appliquer au code, suivant une liste de valeurs, le format correspondant à sa nature (C, Python, Shell, ...).
Un petit tuto là : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
J'ai modifié ta question.