![]() |
Vaciar matriz en un drawgrid
bueno tengo problemas para entender como pasar los valores de una matriz en un drawgrid, es decir, en el programa cuando hago click sobre el drawgrid, me debe leer la matriz espejo para luego devolverlo al drawgrid, el problema es ese no se como hacerlo, lo que llevo es esto:
void __fastcall TForm1::DrawGrid1SelectCell(TObject *Sender, int ACol, int ARow, bool &CanSelect) { float O[10][10]; float m,n; O[4][4]=1; O[5][4]=2; O[5][4]=2; O[5][5]=1; m=ARow; n=ACol; jugada(m,n,O); //DrawGrid1->......=O[ ][ ]; (no se como se vaciaria la matriz en el drawgrid) //cambio de jugador } //--------------------------------------------------------------------------- void jugada(unsigned char F, unsigned char C, unsigned char O[][10]) { char k,i,j,l,q,r,s,t,u,v,w,z,b,c,d,e; if (O[F][C]==1||O[F][C]==2) show message 'no es posible la jugada'; if (O[F][C]==0) {for (k=C+1;O[F][k]==0||O[F][k]==P||k<=C;k++) //chequeo y volteo hacia la derecha if(O[F][k]==P) for(u=C+1;u<=K;u++) {O[F][u]=P; } k=C; for (i=F-1;O[i][C]==0||O[i][C]==P||i>=0;i--) //chequeo y volteo hacia arriba if(O[i][C]==P) for(w=F-1;w>=i;w--) {O[w][C]=P; } i=0; for (j=F+1;O[j][C]==0||O[j][C]==P||j<=F;j++) //chequeo y volteo hacia abajo if(O[j][C]==P) for(z=F+1;z>=i;z++) {O[z][C]=P; } j=F; for (l=C-1;O[F][l]==0||O[F][l]==P||l>=0;l--) //chequeo y volteo hacia la izquierda if(O[F][l]==P) for(v=C-1;v>=l;v--) {O[F][v]=P; } l=0; for (q=C+1;O[F-(q-F)][q]==0||O[F-q][q]==P||q<=C;q++) //chequeo y volteo hacia arriba y a la derecha if(O[F-(q-F)][q]==P) for(b=C+1;b<=q;b++) {O[F-(b-F)][b]=P; } q=C; for (r=C+1;O[r][r]==0||O[r][r]==P||r<=C;r++) //chequeo y volteo hacia abajo y a la derecha if(O[r][r]==P) for(c=C+1;c<=r;c++) {O[c][c]=P; } r=C; for (s=C-1;O[s][C-(C-s)]==0||O[s][C-(C-s)]==P||s>=0;s++) //chequeo y volteo hacia abajo y a la izquierda if(O[s][C-(C-s)]==P) for(d=C-1;d<=s;d--) {O[d][b]=P; } s=0; for (t=C-1;O[t][t]==0||O[t][t]==P||t>=0;t--) //chequeo y volteo hacia arriba y a la izquierda if(O[t][t]==P) for(e=C-1;e>=t;t--) {O[e][e]=P; } t=0; } if(O[F][k]==0&&O[i][C]==0&&O[j][C]==0&&O[F][l]==0&&O[F-(q-F)][q]==0&&O[r][r]==0&& O[s][C-(C-s)]==0 O[t][t]==0) show message 'no es posible la jugada'; } Mi problema esta en los puntos suspensivos del principio, ahi se deberia vaciar la matriz para llevarla al drawgrid pero no se como si alguien sabe como se hace y me puede responder estaria muy agradecido, ojala sepan y me puedan responder, gracias de antemano PD: el programa es el juego de othello para ver si lo ven mas facil, no logro hacer que me verifique las cosas ya que no se como llamar a la matriz espejo y devolver ese valor al drawgrid |
La franja horaria es GMT +2. Ahora son las 21:57:29. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi