Bienvenue sur OnEnAGros!, le forum qui fait tenir un balai en équilibre sur le pif !

Lisez la charte du forum avant de commencer à participer. Si vous êtes nouveau, une présentation est toujours appréciée afin de mieux se connaître !


Chevalier aux Pouces Verts
Hors ligne

Bon, dis moi si ça convient à ce que tu voulais faire, j'ai un peu lu en diagonale ^^

int i = 1;
int j = 1;

char Nom_du_tableau[10][10]; //un tableau deux dimensions, de caractères, de 0 à 10 donc 11 valeurs chacun.

for(i; i<=10; i++)
{	
	//rempli la première colonne de 1 à 10 dans les cases de 1 à 10 (la colonne et ligne 0 sont utilisées pour les en-tête
	Nom_du_tableau[i][0] = (char)i;	//on cast i qui est un entier en char, c'est pas hyper classe. Tu peux utiliser sprintf sinon, cherche un peu :p
}

Nom_du_tableau[0][1] = 'A';
Nom_du_tableau[0][2] = 'B';
Nom_du_tableau[0][3] = 'C';
Nom_du_tableau[0][4] = 'D';
Nom_du_tableau[0][5] = 'E';
Nom_du_tableau[0][6] = 'F';
Nom_du_tableau[0][7] = 'G';
Nom_du_tableau[0][8] = 'H';
Nom_du_tableau[0][9] = 'I';
Nom_du_tableau[0][10] = 'J';

i = 1;
for(i; i<=10; i++)
{
	for(j; j<=10; j++)
	{
		Nom_du_tableau[i][j]=" "; //rempli d'un caractère vide chaque case du tableau
	}
}
Tribunus Cohortis Bescherellae
Hors ligne

Mais c'est d'la merde !!! :mad:

Hum. Je déconne bien sûr. Merci beaucoup, ça répond à plein d'questions ! :b Et en fait le C++ ressemble assez au C. :) (Héhé, acéocé.)
Encore merci, ça nous avance déjà pas mal ! ^^

Chevalier aux Pouces Verts
Hors ligne

Bin le C est un peu la base du C++ quand même ^^ (d'où le nom quoi, pas de surprise :D)

N'hésite pas si tu as encore des questions. ;)

Tribunus Cohortis Bescherellae
Hors ligne

Je C bien, mais quand même ! C'aurait pu être très différent, j'connais pas du tout le C++ moi. :)
Merci, a priori je te re-solliciterai sûrement pendant les vacances ! ;) (Donc les deux semaines qui viennent.)

Chevalier aux Pouces Verts
Hors ligne

Merci de la précision, je n'ai pas de vacances moi :D (jusqu'à la toussaint youhouuuuu ! \o/)
T'es certain? Pas d'autres questions aujourd'hui? Non parce que j'étais bien motivé là ! Bon ok, j'voulais faire autre chose que mon stage... :D

Tribunus Cohortis Bescherellae
Hors ligne

:lol:
Nan bah j'suis plus avec mon pote là, j'suis sur le point d'aller manger.. ^^"
Si je suis motivé cette après-midi, peut-être que je m'y remettrai et que je te poserai quelques questions ! :p
(M'enfin, c'est vraiment pas sûr hein.. :b)

Chevalier
Hors ligne

Bonjour, je viens ici car je sais pas trop où aller ^^'
j'ai un programme vba à réaliser et j'ai comme qui dirait un pitit problème ^^'
si quelqu'un peut m'aider à le résoudre :/

J'explique mon travail : il s'agit de réaliser une sorte de démineur sur excel. A la différence du démineur classique, ici, on part de la case en haut a gauche de la grille pour tenter d'aller en bas a droite de la grille, on ne peut se deplacer que d'une case à la fois.

Afin que le programme attende l'action du changement de case j'ai vu sur internet qu'on pouvait mettre un Doevents. Je ne sais cependant pas à quoi ça sert (enfin comment ça marche :/)

je vous montre mon programme : (il y a surement beaucoup plus simple et je pense qu'il y a des lignes en trop mais a force de le refaire j'ai peut etre des trucs qui servent à rien)

il y a la macro de départ qui met en place le jeu (cadre, fond, ...) il appelle cette macro :

Sub Etude_Cellule(L As Integer, C As Integer, X As Integer, Y As Integer, Mine As Integer, message As String)

Cells(L, C).Activate
Cells(L, C).Interior.ColorIndex = 2

Call M_MineAlentour.mine_alentour(L, C, Mine, message)

Call M_CoordonnéeCellules.Coordonnée_Cellules(X, Y)
While X = L And Y = C
Call Coordonnée_Cellules(X, Y)
  If message = "Perdu" Then
  X = -1
  Y = -1
  End If
  If X = 12 And Y = 12 Then
  L = -1
  C = -1
  End If
  DoEvents
Wend

Call M_CoordonnéeCellules.Coordonnée_Cellules(X, Y)
L = X
C = Y

If L = 12 And C = 12 Then
Call M_MineAlentour.mine_alentour(L, C, Mine, message)
  If message <> "Perdu" Then
    MsgBox "Gagné"
    message = "Gagné"
    End If
End If
End Sub

Ce Doevents me permets d'activer une autre macro (par des boutons placés sur la feuille excel)

Sub Bouton_Bas()
Dim X As Integer
Dim Y As Integer
Dim L As Integer
Dim C As Integer
Dim Mine As Integer
Dim message As String

Call M_CoordonnéeCellules.Coordonnée_Cellules(X, Y)
Cells(X + 1, Y).Select
L = X + 1
C = Y
Call M_EtudeCellule.Etude_Cellule(L, C, X, Y, Mine, message)
End Sub

Je vois que le doevents arrete la macro etude de cellule, ce qui me laisse le loisir d'activer par exemple la macro bouton bas, cependant a la fin de l'execution de bouton il reviens sur la macro etude de cellule, cependant les variables ont changer de valeur. du coup lorsque j'ai gagné (voir perdu mais c'est moins grave) il me mets en boucle le message "gagné" ... puisqu'il retourne toujours dans la boucle alors que je veut qu'il finnisse le programme.

je vous mets egalement les 2 macro qui sont appelées :

Sub mine_alentour(L As Integer, C As Integer, Mine As Integer, message As String)

Mine = 0
If Cells(L, C).Value = "X" Then
        MsgBox "Perdu"
        message = "Perdu"
Range("C3:L12").Interior.ColorIndex = 2
  Else
        If Cells(L - 1, C - 1).Value = "X" Then
          Mine = 1 + Mine
          End If
        If Cells(L - 1, C).Value = "X" Then
          Mine = 1 + Mine
          End If
        If Cells(L - 1, C + 1).Value = "X" Then
          Mine = 1 + Mine
          End If
        If Cells(L, C - 1).Value = "X" Then
          Mine = 1 + Mine
          End If
        If Cells(L + 1, C + 1).Value = "X" Then
          Mine = 1 + Mine
          End If
        If Cells(L, C + 1).Value = "X" Then
          Mine = 1 + Mine
          End If
        If Cells(L + 1, C - 1).Value = "X" Then
          Mine = 1 + Mine
          End If
        If Cells(L + 1, C).Value = "X" Then
          Mine = 1 + Mine
          End If
        Cells(L, C).Value = Mine
        Cells(L, C).Font.ColorIndex = 5
    If Mine = 0 Then
    Cells(L, C).Value = ""
    End If
End If
End Sub
Sub Coordonnée_Cellules(X As Integer, Y As Integer)

Y = ActiveCell.Column
X = ActiveCell.Row

End Sub

si quelqu'un pouvait m'en apprendre plus sur le Doevents et pourquoi il me ramène toujours dans ma boucle ...
voir si possible me dire comment resoudre ce problème  ...
Merci beaucoup !!

Tribunus Cohortis Bescherellae
Hors ligne

Je ne peux absolument pas t'aider, et j'en suis navré, mais j'voulais juste te dire que tu postes bien dans le bon topic ! ;) Je l'ai créé pour ça ! :P

J'espère que kelk1 pourra aider quelqu'un !
Ou l'inverse.. De quoi ?
Je sais pas j'écoutais pas !!!

Chevalier aux Pouces Verts
Hors ligne

J'connais un peu le vba mais pas du tout le doevents :/
Par contre tu devrais poster sur des forums spécifiques, il y en a des vraiment bien foutus !

Excel Pratique (vraiment bien foutu j'trouve)
et , sur Developpez.com, qui est une sorte de bible tu vois :D
Ici aussi, il y a souvent des sources intéressantes.

Chevalier
Hors ligne

c'est bon je viens de regler mon pitit probleme :
en réalité je me suis aperçu que ma boucle while ne servait à rien ^^ (depuis que j'ai mis le Doevents)
du coup le jeu marche : plus de "gagné" infini
cependant j'ai durant tout le jeu un clignotement de l'ecran qui est plutot genant ... s'il y a une solution je suis preneur

p-s : j'ai tenté le code "Application.ScreenUpdating = False"
mais cela n'a rien donner !


EDIT (piaf) : j'ai résolu le problème

Chevalier aux Pouces Verts
Hors ligne

Tant mieux alors x)

Tain hier j'ai passé toute la journée à aider Coco à tenter de débuger un code, ça enchainait erreur incongrue sur erreur falacieuse sur erreur de ma part, et là bim, j'arrive au stage, 1h30 de taf' et bouuum, ça marche ! Je suis RE-FAIT ! \o/ :D

C'est mi-coin des bonnes nouvelles, mi-informatique et re-mi-coin des bonnes nouvelles derrière !

Chevalier
Hors ligne

et j'ai fini mon projet de démineur :D
re bonne nouvelle derrière :p

Tribunus Cohortis Bescherellae
Hors ligne

Content pour toi kelk1 !! :)
Et pour toi aussi Bothan ! :p

kelk1 a écrit :

EDIT (piaf)

Pas mal ! :lol:




Bon, petites news concernant mon projet..
-Le prof veut qu'on fasse jouer un joueur contre l'ordinateur.
-Il veut pas qu'on le fasse sur console, mais un affichage graphique à l'aide d'une bibliothèque SDL. (Désolé si j'me plante dans les termes, j'ai du mal à suivre ce qu'il raconte.. ^^")
-Il nous conseille fortement (vu que c'est pas sur console) de ne pas créer de tableaux mais de les "dessiner" et de coller les images en fond, immobiles. On rajouterait après des trucs par-dessus (bateaux, marqueurs touché/dans l'eau..)

Donc ce que tu nous a pondu sert pas à grand-chose, finalement. :b Mais au moins on est pas arrivés les mains vides en cours !! :p

Chevalier aux Pouces Verts
Hors ligne

Oula, c'est bizarre de voir ça quand on en a jamais fait Oo
Et "coller des images"... whaaaat? Comment il veut les bouger après? ^^'

Tribunus Cohortis Bescherellae
Hors ligne

Le mot "coller", c'est moi qui m'exprime mal.
Il veut afficher le tableau en image de fond (avec un "sprite" si je me souviens bien..), étant donné que le tableau ne change pas.

Chevalier aux Pouces Verts
Hors ligne

Dak. Mais il t'a parlé d'un outil de développement particulier? Je trouve ça un peu compliqué pour quelqu'un qui n'a jamais vu ça ^^
Pour l'instant j'ai du mal à comprendre ce qu'il désire obtenir.

Tribunus Cohortis Bescherellae
Hors ligne

Un outil de développement ? Qu'est-ce à dire que ceci ?
:beuh:
^^

Je trouve qu'il nous surestime ééééénormément. Il se rend pas compte du peu de connaissances, de maîtrise et d'expérience qu'on a, ni du temps qu'il nous reste.
:/

Chevalier aux Pouces Verts
Hors ligne

Bah, ton IDE quoi, ton logiciel, ce sur quoi tu écris tes lignes de code ! :D
Ouais j'sais pas, c'est bizarre de vous demander de faire un truc comme ça s'il ne vous l'a jamais présenté.

Tribunus Cohortis Bescherellae
Hors ligne

Le compilateur ? Si c'est ça on utilise Geany (Linux), mais n'importe quel logiciel qui compile le C ça le fait, non..?
J'avais téléchargé Code::Blocks par exemple sur mon PC.

Chevalier aux Pouces Verts
Hors ligne

Bin voilà, t'es quand même capable de répondre à ma question ! :D
Parce qu'au lycée vous êtes sous Linux? Tu utilises Linux? ^^
Code::Blocks c'est très bien.

Mais ce qui s'appelle en vérité le compilateur, c'est ce qui transforme ton code pour le rendre interprétable par la machine. C'est à lui qu'on fait appel lorsque sur ton IDE tu demandes de compiler :)
Tu vois la toute petite différence de notion? ^^
C'est pas très important, juste pour qu'on se comprenne :D

Tu veux bien essayer de faire un joli post (structuré itou itou) où tu donnes le max de données/consignes que tu as pour ton travail?

Chef de Clan
Hors ligne
Coco l'asticot a écrit :

Le compilateur ? Si c'est ça on utilise Geany (Linux), mais n'importe quel logiciel qui compile le C ça le fait, non..?

J'veux po faire mon chiant, mais Geany, c'est juste un éditeur (avec surlignage syntaxique) ... le compilateur, c'est le truc en mode console derrière, genre gcc :-)
J'aime quand on appelle une couille une couille

Pécore
Hors ligne

Essaye de squatter #onenagros on pourra te filer un coup de main aussi

Tribunus Cohortis Bescherellae
Hors ligne

Bothan : Je vois totalement la différence, et t'as raison hein ! J'suis pas au point sur le vocabulaire, ça me fait pas de mal de petites révisions. :)
Pour le post avec toutes les info, euh.. C'est un peu ce que j'ai fait au début, j'ai pas plus d'infos hein ! ^^ Les consignes sont : ne bougez pas, on arrive. créer un programme en C de bataille navale. :b
Après je t'ai donné les infos en plus au fur et à mesure.. Je ferai peut-être un résumé bien structuré dans quelques jours, mais t'attends pas à un miracle. :/
Juste un truc, je sais plus si je l'ai dit : ce n'est pas très grave si le programme ne fonctionne pas le jour du BAC. Tu sais comme moi qu'un pauv´ point-virgule peut tout faire foirer.. :b
Et enfin, au lycée les PC sont sous Windows, mais on a une "VirtualBox" ou j'sais pu quoi, qui nous permet de travailler sous Linux.

Jieffe : nous casse pas les couilles. Ça te va comme vocabulaire ?
Nan mais t'as raison, faut qu'j'apprenne !! :D

Herezia : Neu ?
Où je dois vous rejoindre ? :b

Pécore
Hors ligne

Pardon, c'est la mode d'appeler ça un hashtag maintenant. D'mon temps les gamins savaient qu'on parlait d'IRC </vieuxcon>
serveur irc : langochat.net
salon : #onenagros

Tribunus Cohortis Bescherellae
Hors ligne

Tu parles du chat d'OEAG ou de ce machin- ?
Si c'est ça j'sais pô m'en servir hein ! :b

Pied de page des forums

Propulsé par FluxBB