Aller au contenu

C++ : Puissance 4 console


Blacksword

Messages recommandés

Posté(e)

Bonsoir,

j'essaye actuellement de developper un puissance 4 en mode console pour m'assurer de la maitrise des tableaux, appels de fonctions avec arguments, boucles etc etc, j'y arrive bien excepte une chose:

comment initialiser une matrice de [6][7] de char a la valeur " " (espace) en un coup ? En effet, ecrire {{" ", " ", ...}] me semble assez fastidieux, et k'imagine qu'il existe bien une solution alter,ative non ?

J'ai essaye char cmatrix[6][7] = {" "} ; mais ca ne donne rien... :pleure:

Et si tous les sites expliquent comment initilaiser une aprtie de la matrice, aucun ,ne dit comment tout initialiser d'un coup.

Quelqu'un a-t-il la bonne syntaxe pour cette operation ?

Merci d'avance pour vos reponses et bonne soiree :chinois:

PS: j'utilise code:blocks

Posté(e)

Avec 2 boucles 'for' imbriquées, ça n'irait pas ? :transpi:

Je te l'écris comme on l'écrirait en Java, à toi d'adapter pour le C++ si besoin est:

for( int i = 0; i < tab.length; i ++ )
{
for( int j = 0; j < tab[i].length; j ++ )
{
tab[i][j] = " ";
}
}

Posté(e)

En c++ on n'a pas accés à la taille des tableaux. De plus il ne faut pas confondre des strings (" ") et des chars (' ')

for( int i = 0; i < 6; ++i)
  for( int j = 0; j < 7; ++j)
  tab[i][j] = ' ';

Posté(e)
J'ai essaye char cmatrix[6][7] = {" "} ; mais ca ne donne rien... :transpi:
Le code exact serait plutôt
char cmatrix[6][7] = {{" "}}

Mais ça ne te remplirait que la première case à " " et tout le reste à 0.

Les réponses au dessus sont un peu compliquées...

La réponse serait plutôt :

		memset ((void *)cmatrix, (int)' ', 6*7);

  • 4 semaines après...
Posté(e)
Les réponses au dessus sont un peu compliquées...

La réponse serait plutôt :

		memset ((void *)cmatrix, (int)' ', 6*7);

Merde ^^

Je serai pas du genre a penser ce genre de truc :cartonrouge:

Mais dire que les solutions du dessus sont compliquées, je ne trouve pas :byebye:. Apres, elle sont surement moins performantes je pense, mais plus compliquées, pas vraiment

Posté(e)

je rajouterai meme que c'est idiot de montrer un memset (qui est une bidouille mémoire, non générique) plutot que deux boucles imbriquées qui est plus explicite d'un point de vu algorithmique...

Posté(e)

rhaaa, je suis pas d'accord. J'aime beaucoup le memset parce qu'il force a comprendre comment sont mappées les données en mémoire. Pour moi, c'est vital de savoir comment fonctionne la mémoire, surtout en C/C++. Il n'y a rien de plus désastreux que ceux qui programment en gardant une vision "boîte noire" de l'outil qu'ils exploitent.

Posté(e)
je rajouterai meme que c'est idiot de montrer un memset (qui est une bidouille mémoire, non générique) plutot que deux boucles imbriquées qui est plus explicite d'un point de vu algorithmique...

Moi je ne suis pas d'accord pour faire deux boucles imbriquées. Je pense qu'on devrait mettre à zéro successivement tous les bits un par un en appelant une routine en assembleur, quitte à faire dans la simplicité.

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...