Je voulais juste avoir quelques opinions sur la structure générale d'un jeu que je dois construire pour un cours de programmation. Essentiellement - Je construis deux programmes - un client et un serveur pour un jeu de cuirassés. J'ai déjà écrit le programme actuel qui joue le jeu des cuirassés. Le programme que j'ai écrit est où une carte et un fichier de règles est lu et l'utilisateur essaie de deviner l'emplacement des navires jusqu'à ce qu'ils coulent tous les navires.C Concept de jeu CLI
Pour ce nouveau programme - le serveur doit permettre à des groupes de deux personnes de se battre l'un l'autre en utilisant le jeu de bataille navale. Les clients se connectent au jeu en utilisant un nom de jeu, et une fois que le jeu reçoit deux clients, il peut commencer. Nous devons utiliser TCP sur la machine locale pour communiquer entre le serveur et les clients, ainsi que les threads dans au moins le serveur.
Voici ce que je pensais ..
Une fois qu'un client se joint - vérifier quel jeu ils veulent se connecter. Si c'est un nouveau jeu - créez un nouveau fil pour ce jeu et donnez le descripteur de socket pour le premier client. Sinon, s'il y a déjà une personne dans le jeu, alertez le fil de jeu du nouveau participant et il peut commencer la partie. Quand un jeu est démarré, le thread du jeu devrait générer deux threads de plus ... une instance du jeu de bataille navale pour chaque joueur. L'instance pour chaque joueur sera l'endroit où leurs navires sont placés. Le thread écoutera ensuite l'entrée de chaque client à tour de rôle et transmettra cette information sur le jeu correspondant.
Est-ce que cette interprétation est correcte? Que j'ai besoin de 3 threads par jeu en cours? Et aussi, est-il possible d'utiliser exec() dans un thread pour lancer une nouvelle instance de battleships et ensuite passer des informations au stdin de cette instance en utilisant des threads (et obtenir la stdout)?
S'il vous plaît laissez-moi savoir si j'ai été brumeux sur quoi que ce soit et je vais clarifier. Merci beaucoup d'avance pour toute aide!
Ce n'est pas une vraie question. –
@Tadeusz A. Kadlubowski: C'est un tas de questions floues, mais elles sont définitivement * réelles *. – ereOn
désolé, ne pensait pas vraiment à une question définitive. pourrions-nous simplement dire que ma question est la suivante: est-ce que mon interprétation est valide ou contient-elle des problèmes? – Gary