Avis aux amoureux de programmation en C [Need Help]
Voilà, je dois rendre un projet d\'informatique en C (pas C++ ou autre), mais je me rends compte que le mien n\'étais sans doute pas le plus évident finalement, c\'est pourquoi je viens vous demander de l\'aide et des conseils, voir seulement des pistes pour me faire avancer.
Bon ça c\'est le protocole à respecter (pas obliger de lire ce pavé on s\'en fou un peu) :
Le contrôle des connaissances en module informatique comprend la réalisation
dun projet de programmation. Ce projet doit être réalisé en binômes.
Le travail demandé consiste à écrire le programme et à rédiger un rapport
de quelques pages décrivant le mode dutilisation et les particularités des
méthodes utilisées.
Ce rapport ne doit pas consister en un simple commentaire de la construction
du programme mais doit décrire et justifier lalgorithme et les
choix de structures de données. Il devra comprendre également des exemples
dutilisation avec déventuelles indications de performances.
Le programme sera écrit en C et fonctionnera sur la machine de luniversité.
Les points suivants feront lobjet dune attention particulière lors de la réalisation
du projet :
modularité : les tâches indépendantes doivent être exécutées par des
fonctions ;
utilisation des variables : on utilisera autant que possible des variables
locales et on fera le choix de noms pertinents pour les identificateurs
et les fonctions ;
commentaires : le programme devra être commenté en donnant les
indications nécessaires à sa lisibilité.
Les sources du programme doivent être jointes au dossier. Le projet donnera
lieu à une soutenance lors de la dernière séance de T.P.. Les dossiers
doivent être remis avant le début de la soutenance. Le sujet sera choisi parmi
les sujets décrits dans les pages qui suivent. Exceptionnellement, un sujet personnel
peut être proposé au chargé de T.D. à condition quun dossier de forme
analogue à celle des propositions qui suivent lui soit remis et que le sujet soit
accepté.
Voilà, là on entre dans le vif du sujet, j\'ai choisi la représentation d\'un échiquier, en voici le cahier des charges :
Le but du projet est de représenter un échiquier et les déplacements de
pièces en cours de partie.
A chaque déplacement de pièce, le programme vérifie si le déplacement
est valide et dans ce cas, affiche léchiquier obtenu après le déplacement.
On pourra représenter léchiquier et les pièces à laide de caractères alphabé-
tiques (minuscules pour un camp et majuscules pour lautre) et afficher
des suites de tableaux successifs, ou, ce qui est beaucoup mieux, utiliser les
fonctions graphiques vues en TP.
Les cases de léchiquier seront repérées de la manière standard, lettre de a à
h pour la colonne, chiffre de 1 à 8 pour la ligne.
Le programme devra effectuer la saisie alternée des déplacements pour
chaque camp. Le déplacement sera indiqué par lutilisateur sous la forme :
case de départ-case darrivée.
On devra pouvoir demander un affichage des déplacements possibles dune
pièce. La question sera indiquée par lutilisateur sous la forme :
position suivie dun point dinterrogation
Le programme devra permettre deffectuer :
une partie normale : pièces en position prédéfinie.
un problème : pièces en jeu et positions des pièces précisées par lutilisateur
(on vérifiera la validité du problème : 1 seul roi par camp, au plus un
fou de chaque couleur par camp, ...)
Il nest pas demandé décrire un programme jouant aux échecs!
Voilà, voilà !
Bon maintenant je vais vous exposer les idées qui me traversent directement l\'esprit à la vue du sujet :
Premièrement, je débute la programmation, donc ne me proposez pas des fonctions toutes faites etc ... je connais les tableaux, les choses de base, les adresses, les pointeurs, bref, des choses de débutant ! Les affichages graphiques on a pas encore fait beaucoup de chose dessus, donc c\'est pas une priorité pour le moment ...
Tout d\'abord je pense utiliser un tableau à deux dimensions (je me rappelle d\'un truc comme ça dans mes cours ...) pour représenter l\'échiquier.
Ensuite je ne sais pas si je dois utiliser un tableau d\'entiers ou de caractères, je penche plus pour caractères mais bon, à vous de m\'aider sur ce point.
De même je ne comprends pas \"afficher des suites de tableaux successifs\", si quelqu\'un peut m\'éclaircir sur ce point-ci ...
Bref, des questions viendront sans doute plus à l\'avenir, là ce que je demande surtout c\'est des pistes sur quoi partir, quoi réfléchir, avec quels outils de la programmation en C je dois partir pour ne pas faire fausse route, etc, etc ...
Si certains sont vraiment intéressés et veulent vraiment m\'aider, MP moi on pourra s\'échanger des moyens de communications plus pratiques.
Et au pire des cas (pas mon préféré) si quelqu\'un arrive à faire le programme complet sans commentaire ni rien dedans, je lui offre 0.34 sur Paypal (lol) !
Mon but est de vraiment progresser en programmation.
Je remercie d\'avance les passionnés !
je suis plus ou moins dans le même cas que toi. a mon humble avis, la meilleure façon de débuter (et meme de progresser), c\'est de passer par le siteduzéro !
Mais c\'est pas tant l\'utilisation des outils mais plutôt comment s\'y prendre qui me gêne ici. Enfin je te réponds alors que je suis jamais allé apprendre sur le site du zéro !
Par le biais de la programmation orientée objet tu peux repésenter ton echiquier, tu crées une classe eciquer qui contiendra des instanciations de classes pions pour faire simple.
Un tableau d\'entiers c\'est suffisant (une valeur pour chaque type de pièce sans oublier de différencier les noirs des blancs).
Après tu faire un tableau de caractères mais c\'est comme tu veux (ça change pas grand chose en fait)
Pour la représentation graphique je te conseille QT ou SDL (tu as des très bon tutos sur le net et notamment sur le site du zéro qui est largement suffisant)
Après pour la modularité c\'est en C donc c\'est pas vraiment modulaire le mieux, je penses, c\'est de faire un switch case qui en fonction de la pièce sélectionnée y associe une fonction pour chaque pièce qui définit les possibilités de déplacement en fonction de la position (X,Y, que tu passera en paramètres de la fonction) de la pièce.
Voila! Si t\'as des difficultés, demande, je verrais ce que je peux faire pour t\'aider.
Merci ! Oui c\'était mon idée première, associer à un type de pion, une fonction de déplacement sur les cases si elles existent. Ma plus grande difficulté en fait c\'est la représentation, en graphique on peut laisser tomber, on a rien vu de tel en TP/TD, on fait tout sur console, tu as des conseils ? Je vois pas comment mettre en forme de manière pas trop moche (avec les lignes et colonnes numérotées :/)
Pour QT: si t\'es limité a programmer en C (donc pas d\'objet) c\'est peut être pas le plus adapté.
Pour SDL : c\'est fait pour être développé en C, voici un bon tuto bien expliqué de débutant : http://www.siteduzero.com/tutoriel-3-14080-installation-de-la-sdl.html
Essaye de faire le tuto et si tu t\'en sort, honnêtement, fais le en graphique, c\'est super simple et tellement plus sympa que de la simple console. Si t\'es très bon et que tu finis en avance tu pourras même rajouter du son et des mouvements de pièces (car c\'est vraiment facile)
Le truc c\'est que s\'il faut télécharger une bibliothèque tierce, c\'est pas bon, le programme doit fonctionner sur les PC de l\'université et ils ont leur propre bibliothèque tierce pour les affichages de fenêtres, de même pour les fonctions, etc ... Donc ...
Et si tu veux te faire un programme en mode console trop l33t t\'as la librairie ncurses ;-)
C\'est pas ma faute si les échecs c\'est un jeu de racistes qui font se battre entre eux des noirs contre des blancs !
Ouais mais c\'est pareil... Si c\'est pas installé sur les ordis de sa fac c\'est mort.
Quand tu dis qu\'il doit fonctionner sur les PC de l’université tu veux dire qu\'il doit compiler dessus ? Ou bien tu rends le projet déjà compilé ?
On doit rendre exécutable et code source commenté.
Non mais c\'est pas grave si c\'est sur console, tout le monde le fait sur console, on débute tous c\'est notre 1ère année ! x)
Il m\'aide aussi, c\'est juste que moi de mon côté j\'essaye de bien commencer, histoire qu\'on ait de bonnes idées en commençant notre projet !
Tu ne dois accéder à ce site que si tu as au moins 18 ans ou si tu as l'âge légal pour visionner ce type de matériel dans ta juridiction locale, l’âge le plus élevé étant retenu. En outre, tu déclares et garantis que tu ne permettras aucun mineur à d'accéder à ce site ou à ces services.
En accédant à ce site, tu acceptes nos conditions d'utilisation.