ir chequeando numeros en una matriz

Iniciado por veravluis, 29 Abril 2016, 01:21 AM

0 Miembros y 1 Visitante están viendo este tema.

veravluis

Tengo un problema con esto espero puedan ayudarme, si to tengo una matriz

116456
115456
234566
789123
Ejemplo si yo estoy en la casilla (0,0) & al parecer en este momento soy el numero "1" el cual esta rodeado por los numeros "2 , 3 , 4 , 5 , 6" Lo que yo quiero hacer es que cuando le de al numero EJEMPLO "6" mi matriz quede así, osea transforme todos los numeros que llevaba en el numero que voy a presionar.

666456
665456
234566
789123

& si le vuelvo a dar al numero 4 mi matriz quedaría así.

444456
445456
234566
789123 & si vuelvo a presionar el 5 quedaría así

555556
555556
234566
789123 Bueno así hasta llenar la matriz con 1 solo numero, el problema es que en mi código cuando yo presiono el numero cambia todos los números, no solo los que tengo alrededor.

Los números que llevo deberían transformarse en el nuevo que acabo de presionar. espero su ayuda gracias.

[HIGHLIGHT="C"]
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

#define filas 10
#define columnas 10
#define fico 10

void cargar_matriz(int matriz[][columnas]);
void pintar_matriz(int matriz[][columnas]);
void movimiento_matriz(int matriz[][columnas]);
void jugar(int matriz[][columnas]);

int i,j;

int main() {

int matriz[filas][columnas];

jugar(matriz);

}

void cargar_matriz(int matriz[][columnas]) {

for(i = 0; i < filas; i++) {
for(j = 0; j < columnas; j++) {
matriz[i][j] = rand()%6+1;
}
}
return;
}

void pintar_matriz(int matriz[][columnas]) {

for(i = 0; i < filas; i++) {
printf("\n\t\t\t");
for(j = 0; j < columnas; j++) {
printf("%d",matriz[i][j]);
}
}
printf("\n\n");
SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),7);
printf("\t1 \t2 \t3 \t4 \t5 \t6 \n");
SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),1);
printf("\t%c",219);
SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),2);
printf("\t%c",219);
SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),3);
printf("\t%c",219);
SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),4);
printf("\t%c",219);
SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),5);
printf("\t%c",219);
SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),6);
printf("\t%c",219);


movimiento_matriz(matriz);
}

void movimiento_matriz(int matriz[][columnas]){

int mycolor;

mycolor = matriz[0][0];
matriz[0][0] = 10;

char tecla;

tecla = getch();
//matriz[0][0] = 10;

switch (tecla) {

case '1' : {
for(i = 0; i < filas; i++) {
for(j = 0; j < columnas; j++) {
if(matriz[i][j] == mycolor ){
matriz[i][j] = 10;
}
}
}
for(i = 0; i < fico; i++) {
for (j = 0; j < fico; j++){
if(matriz[i][j] == 10) {
matriz[i][j] = 1;
}
}
}

break;
}

case '2' : {
for(i = 0; i < filas; i++) {
for(j = 0; j < columnas; j++) {
if(matriz[i][j] == mycolor ) {
matriz[i][j] = 10;
}
}

}
for(i = 0; i < fico; i++) {
for (j = 0; j < fico; j++){
if(matriz[i][j] == 10) {
matriz[i][j] = 2;
}
}
}
break;
}

case '3' : {
for(i = 0; i < filas; i++) {
for(j = 0; j < columnas; j++) {
if(matriz[i][j] == mycolor ) {
matriz[i][j] = 10;
}
}
}

for(i = 0; i < fico; i++) {
for (j = 0; j < fico; j++){
if(matriz[i][j] == 10) {
matriz[i][j] = 3;
}
}
}
break;
}

case '4' : {
for(i = 0; i < filas; i++) {
for(j = 0; j < columnas; j++) {
if(matriz[i][j] == mycolor ) {
matriz[i][j] = 10;
}
}
}
for(i = 0; i < fico; i++) {
for (j = 0; j < fico; j++){
if(matriz[i][j] == 10) {
matriz[i][j] = 4;
}
}
}
break;
}

case '5' : {
for(i = 0; i < filas; i++) {
for(j = 0; j < columnas; j++) {
if(matriz[i][j] == mycolor ) {
matriz[i][j] = 10;
}
}
}
for(i = 0; i < fico; i++) {
for (j = 0; j < fico; j++){
if(matriz[i][j] == 10) {
matriz[i][j] = 5;
}
}
}
break;
}

case '6' : {
for(i = 0; i < filas; i++) {
for(j = 0; j < columnas; j++) {
if(matriz[i][j]== mycolor ) {
matriz[i][j] = 10;
}
}
}
for(i = 0; i < fico; i++) {
for (j = 0; j < fico; j++){
if(matriz[i][j] == 10) {
matriz[i][j] = 6;
}
}
}
break;
}

default : {

printf("\nError\n");
break;
}
}

system("cls");
pintar_matriz(matriz);

}

void jugar(int matriz[][columnas]) {

cargar_matriz(matriz);
pintar_matriz(matriz);
movimiento_matriz(matriz);

}