Create server, and remove backup feature
DONE TODO01 DONE TODO02
This commit is contained in:
parent
f903089686
commit
315e7f9537
|
@ -8,11 +8,6 @@ Ce fichier fait partie du projet `roboc`
|
|||
"""
|
||||
|
||||
# CONFIGURATION
|
||||
# fichier de sauvegarde
|
||||
BACKUP_FILE = '.backup'
|
||||
# Commandes de refus/acceptation
|
||||
MSG_NO_YES = ['non', 'oui']
|
||||
|
||||
# Commandes
|
||||
# Le code utilise l'index des listes `COMMANDS` & `COMMANDS_LABEL`
|
||||
# pour faire le lien entre les 2.
|
||||
|
@ -21,7 +16,7 @@ MSG_NO_YES = ['non', 'oui']
|
|||
# leur correspondant dans la condition de traitement du mouvement.
|
||||
COMMANDS = ['Q', 'H']
|
||||
# Libelle des commandes d'interuption, conserver l'ordre
|
||||
COMMANDS_LABEL = ['Sauvegarder & quitter', 'Aide']
|
||||
COMMANDS_LABEL = ['Quitter', 'Aide']
|
||||
# Commandes clavier de deplacement
|
||||
DIRECTIONS = ['N', 'S', 'E', 'O']
|
||||
# Étiquette des commandes clavier des de deplacements pour l'affichage
|
||||
|
@ -63,20 +58,17 @@ ERR_UNKNOW = ERR_ + "personne n'est censé arriver ici…"
|
|||
MIN_MAP_SIDE = 3
|
||||
|
||||
MSG_DISCLAMER = "Bienvenue dans Roboc."
|
||||
MSG_AVAIBLE_BACKUP = "Sauvegarde dispo, voulez-vous la charger? ({}/{}) "
|
||||
MSG_AVAIBLE_MAP = "Cartes disponible: "
|
||||
MSG_BACKUP_DONE = "La partie a été sauvegardée."
|
||||
MSG_BACKUP_GAME = "Partie sauvegardé chargée"
|
||||
MSG_CHOOSE_MAP = "Choississez un numéro de carte: "
|
||||
MSG_CHOOSE_MOVE = "Votre deplacement ({}:{}): "
|
||||
MSG_START_GAME = "Votre partie commence"
|
||||
MSG_END_GAME = "Fin du jeu."
|
||||
MSG_QUIT_GAME = "Vous quittez la partie"
|
||||
# Recapitulatif des commandes
|
||||
MSG_HELP = "Voici les commandes disponibles:\n"
|
||||
MSG_SELECTED_MAP = "Vous avez fait le choix #{}, la carte «{}»."
|
||||
|
||||
MAPS_NAME_LIST = list() # liste des maps proposees a l'utilisateur
|
||||
USER_SELECT_BACKUP = str() # choix utilisateur: la sauvegarde
|
||||
|
||||
# FONCTIONS
|
||||
|
||||
|
|
|
@ -0,0 +1,90 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
Author: freezed <freezed@users.noreply.github.com> 2018-02-06
|
||||
Version: 0.2
|
||||
Licence: `GNU GPL v3` GNU GPL v3: http://www.gnu.org/licenses/
|
||||
|
||||
roboc
|
||||
=====
|
||||
|
||||
A multiplayer maze game over network
|
||||
|
||||
This is the server script, see readme.md for more details
|
||||
"""
|
||||
|
||||
import os
|
||||
from configuration import choose_maps_menu, cls, COMMANDS, \
|
||||
COMMANDS_LABEL, DIRECTIONS, DIRECTIONS_LABEL, get_msg_list, \
|
||||
MAP_DIRECTORY, MAP_EXTENTION, MAPS_NAME_LIST, MOVE_STATUS, \
|
||||
MOVE_STATUS_MSG, MSG_CHOOSE_MOVE, MSG_DISCLAMER, MSG_END_GAME, \
|
||||
MSG_HELP, MSG_QUIT_GAME
|
||||
|
||||
# DEBUT DU JEU
|
||||
|
||||
# Recuperation de la liste des cartes
|
||||
try:
|
||||
MAPS_AVAIBLE = os.listdir(MAP_DIRECTORY)
|
||||
except FileNotFoundError as except_detail:
|
||||
print("FileNotFoundError: «{}»".format(except_detail))
|
||||
else:
|
||||
for map_file in MAPS_AVAIBLE:
|
||||
filename_len = len(map_file) - len(MAP_EXTENTION)
|
||||
|
||||
# garde les fichiers avec la bonne extention
|
||||
if map_file[filename_len:] == MAP_EXTENTION:
|
||||
MAPS_NAME_LIST.append(map_file[: filename_len])
|
||||
|
||||
# Affichage du debut de partie
|
||||
cls() # vide l'ecran de la console
|
||||
print(MSG_DISCLAMER)
|
||||
|
||||
CURRENT_MAP = choose_maps_menu()
|
||||
|
||||
|
||||
# DEBUT DE BOUCLE DE TOUR DE JEU
|
||||
|
||||
# Affichage de la carte tant que status == True
|
||||
while CURRENT_MAP.status:
|
||||
# Affiche la carte et le message
|
||||
CURRENT_MAP.map_print()
|
||||
print(CURRENT_MAP.status_message)
|
||||
|
||||
# Demande a l'utilisateur son choix du deplacement
|
||||
user_move = input(MSG_CHOOSE_MOVE.format(
|
||||
COMMANDS[1], COMMANDS_LABEL[1])
|
||||
).upper()
|
||||
cls() # vide l'ecran de la console
|
||||
|
||||
# Traitement de la commande utilisateur
|
||||
if user_move == COMMANDS[0]: # quitter
|
||||
CURRENT_MAP.status = False
|
||||
CURRENT_MAP.status_message = MSG_QUIT_GAME
|
||||
|
||||
elif user_move == COMMANDS[1]: # Affiche l'aide
|
||||
CURRENT_MAP.status_message = MSG_HELP
|
||||
# liste les directions
|
||||
CURRENT_MAP.status_message += get_msg_list(
|
||||
DIRECTIONS, DIRECTIONS_LABEL
|
||||
)
|
||||
# liste les commandes
|
||||
CURRENT_MAP.status_message += get_msg_list(COMMANDS, COMMANDS_LABEL)
|
||||
|
||||
else: # Traitement du deplacement
|
||||
status = CURRENT_MAP.move_to(user_move)
|
||||
message = MOVE_STATUS_MSG[MOVE_STATUS[status]].format(user_move)
|
||||
CURRENT_MAP.status_message = message
|
||||
|
||||
# La sortie est atteinte, fin de la boucle
|
||||
if MOVE_STATUS[status] == 'exit':
|
||||
CURRENT_MAP.status = False
|
||||
|
||||
# fin de la boucle de tour
|
||||
|
||||
if CURRENT_MAP.status is False:
|
||||
print(CURRENT_MAP.status_message)
|
||||
|
||||
# Fin de partie
|
||||
print(MSG_END_GAME)
|
||||
CURRENT_MAP.map_print()
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
## Roadmap to v0.2 [exercice 4](https://openclassrooms.com/courses/apprenez-a-programmer-en-python/exercises/181)
|
||||
|
||||
- [] remove the backup feature TODO01
|
||||
- [] conversion to client/server mode: server creation TODO02
|
||||
- [x] ~~remove the backup feature TODO01~~
|
||||
- [x] ~~conversion to client/server mode: server creation TODO02~~
|
||||
- [] conversion to client/server mode: client creation TODO03
|
||||
- [] multiplayer turn-by-turn TODO04
|
||||
- [] each player has a differant robot TODO05
|
||||
|
|
Loading…
Reference in New Issue