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.