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
d’un 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 d’utilisation 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 l’algorithme et les
choix de structures de données. Il devra comprendre également des exemples
d’utilisation avec d’éventuelles indications de performances.
Le programme sera écrit en C et fonctionnera sur la machine de l’université.
Les points suivants feront l’objet d’une 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 qu’un 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 à l’aide de caractères alphabé-
tiques (minuscules pour un camp et majuscules pour l’autre) 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 l’utilisateur sous la forme :
case de départ-case d’arrivée.
On devra pouvoir demander un affichage des déplacements possibles d’une
pièce. La question sera indiquée par l’utilisateur sous la forme :
position suivie d’un point d’interrogation
Le programme devra permettre d’effectuer :
• 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 l’utilisateur
(on vérifiera la validité du problème : 1 seul roi par camp, au plus un
fou de chaque couleur par camp, ...’)
Il n’est 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 !

Poster un commentaire
LowLiLoL
LowLiLoL
12 ans
IMG
Rascal
Rascal
12 ans

@LowLiLoL: Oue ça je m\'y attendais, pour ça que j\'ai dit une partie entière qui est pas à lire.

MrGoodCat
MrGoodCat
12 ans

I like turtles.

unforgiven
unforgiven
12 ans

un peu

kaalp
kaalp
12 ans

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 !

Rascal
Rascal
12 ans

@kaalp: 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 !

Rascal
Rascal
12 ans

J\'aime vos commentaires constructifs :)

Nuffix
Nuffix
12 ans

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.

Rascal
Rascal
12 ans

@Nuffix: Ok tu m\'as pas vraiment aidé en fait ...

totocaca
totocaca
12 ans

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.

Rascal
Rascal
12 ans

@totocaca: 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 :/)

totocaca
totocaca
12 ans

@Rascal:
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)

Rascal
Rascal
12 ans

@totocaca: 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 ...

Bisb
Bisb
12 ans

@Rascal: Et si tu veux te faire un programme en mode console trop l33t t\'as la librairie ncurses ;-)

Grouchy
Grouchy
12 ans

@totocaca: \"sans oublier de différencier les noirs des blancs\"

IMG
totocaca
totocaca
12 ans

@Grouchy: 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 !

totocaca
totocaca
12 ans

@Bisb: Ouais mais c\'est pareil... Si c\'est pas installé sur les ordis de sa fac c\'est mort.

Grouchy
Grouchy
12 ans

@totocaca: c\'est sur que s\'il n\'y avait que des blancs, ce serait plus compliqué ;)

Bisb
Bisb
12 ans

@Rascal: 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é ?

Bisb
Bisb
12 ans

@Grouchy: d\'ailleurs c\'est toujours les blancs qui commencent ... je dis ça je dis rien ...

Rascal
Rascal
12 ans

@Bisb: 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)

Dada
Dada
12 ans

Tu fais quoi comme études ?

Rascal
Rascal
12 ans

@Dada: Licence Maths-Info 1ère année et en parallèle classe prépa MPSI.

Grouchy
Grouchy
12 ans

Ce projet doit être réalisé en binômes : Il glande quoi ton pote ?

Rascal
Rascal
12 ans

@Grouchy: 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 !

Cette page est réservée aux ADULTES

Tu es sur le point d'accéder à un site web qui contient du matériel explicite (pornographie).

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.