[C] bataille navale
oliver3923
Messages postés
971
Date d'inscription
Statut
Membre
Dernière intervention
-
oliver3923 Messages postés 971 Date d'inscription Statut Membre Dernière intervention -
oliver3923 Messages postés 971 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
avant tout je dois préciser que je ne suis pas expert en programmation et que ca fait longtemps que je n'en ai pas fait
je me suis dit qu'il pourrait être marrant (ou pas^^) de faire un jeu de bataille navale
sur la théorie je vois a peu près comment je dois faire (au moins en partie) mais j'aurais besoin d'aide pour débuter
mon idée était d'afficher une fenetre (j'utiliserai la SDL) et de générer un tableau par exemple de 20*20 pour remplir la fenetre générée avec des "cases" (dessinées ou téléchargées) que je stockerais dans mon tableau
en gros je ferais
double (a vérifier je ne suis plus sur que ca soit le plus adapté) tableau [20] [20]
et je voudrais initialiser chaque case de mon tableau avec l'image qu'il me faudrait (soit une petite case grise pour cacher ce qu'il y a "dessous")
est ce possible?
si on ne peux pas le faire directement dans la déclaration puis je le faire plus tard?
par exemple je déclare mon tableau en ne mettant aucune valeur (NULL si je me souviens bien) ou une variable (certains disent qu'on peut d'autre disent qu'on ne peut pas^^)
ensuite dans le main j'ouvre ma fenètre sdl et je change la valeur de mon tableau pour afficher mes petites cases (en modifiant la valeur de ma variable pour qu'elle corresponde a l'affichage de mes cases que je veux mettre) et j'affiche ca dans ma fenêtre sdl
voila merci d'avance pour vos réponses (et si vous avez des conseils pour la suite du programme hésitez pas^^)
avant tout je dois préciser que je ne suis pas expert en programmation et que ca fait longtemps que je n'en ai pas fait
je me suis dit qu'il pourrait être marrant (ou pas^^) de faire un jeu de bataille navale
sur la théorie je vois a peu près comment je dois faire (au moins en partie) mais j'aurais besoin d'aide pour débuter
mon idée était d'afficher une fenetre (j'utiliserai la SDL) et de générer un tableau par exemple de 20*20 pour remplir la fenetre générée avec des "cases" (dessinées ou téléchargées) que je stockerais dans mon tableau
en gros je ferais
double (a vérifier je ne suis plus sur que ca soit le plus adapté) tableau [20] [20]
et je voudrais initialiser chaque case de mon tableau avec l'image qu'il me faudrait (soit une petite case grise pour cacher ce qu'il y a "dessous")
est ce possible?
si on ne peux pas le faire directement dans la déclaration puis je le faire plus tard?
par exemple je déclare mon tableau en ne mettant aucune valeur (NULL si je me souviens bien) ou une variable (certains disent qu'on peut d'autre disent qu'on ne peut pas^^)
ensuite dans le main j'ouvre ma fenètre sdl et je change la valeur de mon tableau pour afficher mes petites cases (en modifiant la valeur de ma variable pour qu'elle corresponde a l'affichage de mes cases que je veux mettre) et j'affiche ca dans ma fenêtre sdl
voila merci d'avance pour vos réponses (et si vous avez des conseils pour la suite du programme hésitez pas^^)
A voir également:
- [C] bataille navale
- Notice bataille navale électronique ref 4287 - Télécharger - Divers Web & Internet
- Bataille navale eztec notice ✓ - Forum Loisirs / Divertissements
- Notice bataille navale électronique zig zag ✓ - Forum Réseau
- Bataille navale vtech notice - Forum Windows
- Nimitz bataille navale notice - Forum Loisirs / Divertissements
4 réponses
Bonjour,
J'ai du mal à saisir l'information que tu veux stocker dans ton tableau..
Le plus simple serait d'indiquer s'il y a un bateau ou non, et si la case est cachée ou non(enfin je pense).
Ensuite au moment de l'affichage, tu détermine si la case est cachée ou non, et si il ya un bateau à cet endroit:
-si elle est cachée, tu affiches une case grise(ou ce que tu veux)
-sinon, si il y a un bateau tu mets un bout de bateau ou une case rouge
-sinon tu affiches de l'eau à cet endroit.
Pour le reste ça a l'air logique, je te conseille de remplir ton tableau avant d'ouvrir ta fenetre SDL.
Bonne continuation, n'hésite pas à poser des questions si tu en as.
J'ai du mal à saisir l'information que tu veux stocker dans ton tableau..
Le plus simple serait d'indiquer s'il y a un bateau ou non, et si la case est cachée ou non(enfin je pense).
Ensuite au moment de l'affichage, tu détermine si la case est cachée ou non, et si il ya un bateau à cet endroit:
-si elle est cachée, tu affiches une case grise(ou ce que tu veux)
-sinon, si il y a un bateau tu mets un bout de bateau ou une case rouge
-sinon tu affiches de l'eau à cet endroit.
Pour le reste ça a l'air logique, je te conseille de remplir ton tableau avant d'ouvrir ta fenetre SDL.
Bonne continuation, n'hésite pas à poser des questions si tu en as.
Bonjour,
Si j'ai bien compris une partie de ta question (pas certain) ;
Utiliser une structure de ce type pourrait te faciliter les choses :
struct Case {
int contenu; --> ce qu'elle contient (eau, ou bateau)
int affichage; --> affichée ou masquée
};
struct Case tableau[20][20];
Cordialement, M.
Si j'ai bien compris une partie de ta question (pas certain) ;
Utiliser une structure de ce type pourrait te faciliter les choses :
struct Case {
int contenu; --> ce qu'elle contient (eau, ou bateau)
int affichage; --> affichée ou masquée
};
struct Case tableau[20][20];
Cordialement, M.
merci pour vos réponses
alors pour être plus précis
mon tableau me servira a reproduire ma "carte" avec pour chaque case soit de l'eau soit bateau touché
donc en gros pour chaque case de mon tableau j'aurai 2 possibilités (éventuellement 3 si j'ai le courage et surtout le temps de mettre bateau coulé)
mais ma question principale (en tout cas pour le moment) et de savoir si il est possible de réutiliser ce même tableau (qui contiendra exactement le même nombre de cases que la grille) pour mes clics de souris en faisant correspondre chaque case de mon tableau avec chaque cases de la grille
mais après avoir réfléchit je doute que ça soit possible
alors pour être plus précis
mon tableau me servira a reproduire ma "carte" avec pour chaque case soit de l'eau soit bateau touché
donc en gros pour chaque case de mon tableau j'aurai 2 possibilités (éventuellement 3 si j'ai le courage et surtout le temps de mettre bateau coulé)
mais ma question principale (en tout cas pour le moment) et de savoir si il est possible de réutiliser ce même tableau (qui contiendra exactement le même nombre de cases que la grille) pour mes clics de souris en faisant correspondre chaque case de mon tableau avec chaque cases de la grille
mais après avoir réfléchit je doute que ça soit possible
Si c'est possible, j'ai fait un mini jeu qui utilisait la même technique. Il faudra que, lors du clic sur une case, tu trouves un algorythme permettant de récuperer sur quelle case tu te trouve grace au pixel cliqué.
Une fois que tu auras trouvé la case, tu pourras récuperer les informations dans ton tableau.
Une fois que tu auras trouvé la case, tu pourras récuperer les informations dans ton tableau.
je vais utiliser une boucle pour dessiner mon tableau (un trait vertical tout les xpixels et tout les y p jusqu'a ce que je soit au bout)
pour récupérer la case dans laquelle je clique le plus simple serait de diviser les coordonner x et y de mon clic par les dimensions pour récupérer le numéro de ma case non? (en oubliant pas évidemment que dans mon tableau les cases commencent par la numéro 0 et pas 1^^)
je rajoute une petite question : quand je veux compiler mon programme (sous code blocks avec juste l'affichage d'une fenettre pour me rappeller comment on fait) code blocks me marque une erreur avec le débogueur
sauriez vous pourquoi?
le message d'erreur :
"bataille navale - Debug" uses an invalid compiler. Skipping...
Nothing to be done.
pour récupérer la case dans laquelle je clique le plus simple serait de diviser les coordonner x et y de mon clic par les dimensions pour récupérer le numéro de ma case non? (en oubliant pas évidemment que dans mon tableau les cases commencent par la numéro 0 et pas 1^^)
je rajoute une petite question : quand je veux compiler mon programme (sous code blocks avec juste l'affichage d'une fenettre pour me rappeller comment on fait) code blocks me marque une erreur avec le débogueur
sauriez vous pourquoi?
le message d'erreur :
"bataille navale - Debug" uses an invalid compiler. Skipping...
Nothing to be done.