faire un tableau C++
Dernière réponse : dans Programmation
Bonjour je suis nouveau ici.
Je viens de me lancer dans la programmation j'ai quelques bases en C++(vraiment quelques) et je maitrise + ou - Basic (plutot - m'enfin).
Alors j'ai une question comment creer un tableau style démineur et après pouvoir faire référence à chaque case ?
merci d'avance j'utilise DEV C++
Je viens de me lancer dans la programmation j'ai quelques bases en C++(vraiment quelques) et je maitrise + ou - Basic (plutot - m'enfin).
Alors j'ai une question comment creer un tableau style démineur et après pouvoir faire référence à chaque case ?
merci d'avance j'utilise DEV C++
Autres pages sur : tableau
Lassé par la pub ? Créez un compte
Bah moi j'avais vu une source d'un morpion ou plusieur s cases étaient utilisées :
Le truc (m'enfin c'était un peu lourd) c'etait de créer plusieur hWnd en child d'une principale et de récupérer le message d'un clic dans le procésus en fonction de la fenêtre et puis ensuite exécuter une fonction.
Voila voila ;-)
EDIT : Euh je me suis pas renseigner mais tu demander bien sous l'API windows ? parceque sous console il te faudra une biblio ou alors tu fais ca à la old school : parties asm dans le C++ à coup de push lol ;-) mais alors la tu vas souffrir
Le truc (m'enfin c'était un peu lourd) c'etait de créer plusieur hWnd en child d'une principale et de récupérer le message d'un clic dans le procésus en fonction de la fenêtre et puis ensuite exécuter une fonction.
Voila voila ;-)
EDIT : Euh je me suis pas renseigner mais tu demander bien sous l'API windows ? parceque sous console il te faudra une biblio ou alors tu fais ca à la old school : parties asm dans le C++ à coup de push lol ;-) mais alors la tu vas souffrir
Le code est assez long quand même donc je post que la partie des hWnd :
hwnd = CreateWindowEx (0, szClassName, "RAOUL Morpion",
WS_SYSMENU | WS_MINIMIZEBOX, 250, 150, 237, 277,
HWND_DESKTOP, NULL, hThisInstance, NULL);
case1 = CreateWindowEx (WS_EX_CLIENTEDGE, szClassName2, "nom1",
WS_VISIBLE|WS_CHILD, 10, 10, 70, 70, hwnd, NULL,
hThisInstance, NULL);
case2 = CreateWindowEx (WS_EX_CLIENTEDGE, szClassName2, "nom2",
WS_VISIBLE|WS_CHILD, 80, 10, 70, 70, hwnd, NULL,
hThisInstance, NULL);
case3 = CreateWindowEx (WS_EX_CLIENTEDGE, szClassName2, "nom3",
WS_VISIBLE|WS_CHILD, 150, 10, 70, 70, hwnd, NULL,
hThisInstance, NULL);
case4 = CreateWindowEx (WS_EX_CLIENTEDGE, szClassName2, "nom4",
WS_VISIBLE|WS_CHILD, 10, 80, 70, 70, hwnd, NULL,
hThisInstance, NULL);
case5 = CreateWindowEx (WS_EX_CLIENTEDGE, szClassName2, "nom5",
WS_VISIBLE|WS_CHILD, 80, 80, 70, 70, hwnd, NULL,
hThisInstance, NULL);
case6 = CreateWindowEx (WS_EX_CLIENTEDGE, szClassName2, "nom6",
WS_VISIBLE|WS_CHILD, 150, 80, 70, 70, hwnd, NULL,
hThisInstance, NULL);
case7 = CreateWindowEx (WS_EX_CLIENTEDGE, szClassName2, "nom7",
WS_VISIBLE|WS_CHILD, 10, 150, 70, 70, hwnd, NULL,
hThisInstance, NULL);
case8 = CreateWindowEx (WS_EX_CLIENTEDGE, szClassName2, "nom8",
WS_VISIBLE|WS_CHILD, 80, 150, 70, 70, hwnd, NULL,
hThisInstance, NULL);
case9 = CreateWindowEx (WS_EX_CLIENTEDGE, szClassName2, "nom9",
WS_VISIBLE|WS_CHILD, 150, 150, 70, 70, hwnd, NULL,
hThisInstance, NULL);
Je te fais pas de copier du processus parceque il fait 5 ou 6 pages mais bon le principe est simple c'est toujours en fonction de MSG msg que tu execute des fonction ...
(switch(msg){case WM_CREATE : ducodeducodeducode;break;case WM_PAINT : etcetcetc;break;default: return DefWindowProc (hwnd, message, wParam, lParam);};)
(Par pitier pas de commentaire je sais c'est illisible mais c'est parceque je les tapper en deux deux et que c'est juste pour expliquer)
Voila en espérence que ca t'aide : sinon le code entier est disponible sur www.cppfrance.com
(tape morpion) ;-) :-D
hwnd = CreateWindowEx (0, szClassName, "RAOUL Morpion",
WS_SYSMENU | WS_MINIMIZEBOX, 250, 150, 237, 277,
HWND_DESKTOP, NULL, hThisInstance, NULL);
case1 = CreateWindowEx (WS_EX_CLIENTEDGE, szClassName2, "nom1",
WS_VISIBLE|WS_CHILD, 10, 10, 70, 70, hwnd, NULL,
hThisInstance, NULL);
case2 = CreateWindowEx (WS_EX_CLIENTEDGE, szClassName2, "nom2",
WS_VISIBLE|WS_CHILD, 80, 10, 70, 70, hwnd, NULL,
hThisInstance, NULL);
case3 = CreateWindowEx (WS_EX_CLIENTEDGE, szClassName2, "nom3",
WS_VISIBLE|WS_CHILD, 150, 10, 70, 70, hwnd, NULL,
hThisInstance, NULL);
case4 = CreateWindowEx (WS_EX_CLIENTEDGE, szClassName2, "nom4",
WS_VISIBLE|WS_CHILD, 10, 80, 70, 70, hwnd, NULL,
hThisInstance, NULL);
case5 = CreateWindowEx (WS_EX_CLIENTEDGE, szClassName2, "nom5",
WS_VISIBLE|WS_CHILD, 80, 80, 70, 70, hwnd, NULL,
hThisInstance, NULL);
case6 = CreateWindowEx (WS_EX_CLIENTEDGE, szClassName2, "nom6",
WS_VISIBLE|WS_CHILD, 150, 80, 70, 70, hwnd, NULL,
hThisInstance, NULL);
case7 = CreateWindowEx (WS_EX_CLIENTEDGE, szClassName2, "nom7",
WS_VISIBLE|WS_CHILD, 10, 150, 70, 70, hwnd, NULL,
hThisInstance, NULL);
case8 = CreateWindowEx (WS_EX_CLIENTEDGE, szClassName2, "nom8",
WS_VISIBLE|WS_CHILD, 80, 150, 70, 70, hwnd, NULL,
hThisInstance, NULL);
case9 = CreateWindowEx (WS_EX_CLIENTEDGE, szClassName2, "nom9",
WS_VISIBLE|WS_CHILD, 150, 150, 70, 70, hwnd, NULL,
hThisInstance, NULL);
Je te fais pas de copier du processus parceque il fait 5 ou 6 pages mais bon le principe est simple c'est toujours en fonction de MSG msg que tu execute des fonction ...
(switch(msg){case WM_CREATE : ducodeducodeducode;break;case WM_PAINT : etcetcetc;break;default: return DefWindowProc (hwnd, message, wParam, lParam);};)
(Par pitier pas de commentaire je sais c'est illisible mais c'est parceque je les tapper en deux deux et que c'est juste pour expliquer)
Voila en espérence que ca t'aide : sinon le code entier est disponible sur www.cppfrance.com
(tape morpion) ;-) :-D
Euh je viens de penser à un truc là ... Tu pourrais aussi faire avec un bitblt et afficher un dessin que tu aurais fait d'un tableau de cases avec une impression de profondeur pour chaque cases
Mais le je bloque un peu pour le dynamisme ... Je connais pas vraiment de fonction qui définit une zone dans une fenètre sans se référencer à quoi que ce soit... (quoique ça doit exister en cherchant un peu)
Sinon j'ai une dernière alternative ... si le dynamisme et que tu demandes une action après un clic sur une de ces cases tu peux aussi aligner des boutons les uns à côté des autres avec sur eux un dessins d'une case en profondeur ... mais je reste un peu septique sur le résultat obtenu ... :-D
Mais le je bloque un peu pour le dynamisme ... Je connais pas vraiment de fonction qui définit une zone dans une fenètre sans se référencer à quoi que ce soit... (quoique ça doit exister en cherchant un peu)
Sinon j'ai une dernière alternative ... si le dynamisme et que tu demandes une action après un clic sur une de ces cases tu peux aussi aligner des boutons les uns à côté des autres avec sur eux un dessins d'une case en profondeur ... mais je reste un peu septique sur le résultat obtenu ... :-D
Tu peux aussi créer une seule fenetre et traiter avec une fonction de callback le message WM_LBUTTONDOWN.
tu récupère les coordonées de la souris avec GET_X_LPARAM(lParam) et GET_Y_LPARAM(lParam)
et tu calcules sur quelle case tu te trouves.
côté donnée tu peux créer ton tableau indiquant les mines ou créer une liste de mines qui contient sa position dans le tableau.
Petite astuce pour le démineur: ajoute une clonne en début et en fin, une ligne en haut et une en bas (tout à 0). Comme ça ton calcul du nombre de mines autour d'une case est le même partout (pas de cas particulier sur les bords
tu récupère les coordonées de la souris avec GET_X_LPARAM(lParam) et GET_Y_LPARAM(lParam)
et tu calcules sur quelle case tu te trouves.
côté donnée tu peux créer ton tableau indiquant les mines ou créer une liste de mines qui contient sa position dans le tableau.
Petite astuce pour le démineur: ajoute une clonne en début et en fin, une ligne en haut et une en bas (tout à 0). Comme ça ton calcul du nombre de mines autour d'une case est le même partout (pas de cas particulier sur les bords
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumComment faire un tableau avec photofiltre
- ForumLogiciel pour faire un tableau electrique
- solutionsComment faire tableau de bord
- ForumFaire tableau html
- ForumFaire un tableau planning
- ForumComment faire tableau tournoi
- ForumFaire un tableau de bord sous excel
- ForumComment faire un tableau sur excel
- ForumFaire un tableau de bord
- ForumFaire un tableau avec photofiltre
- Voir plus