Título: Duda c y c++
Publicado por: shibu en 16 Junio 2012, 16:55 pm
Hola amigos, tengo un codigo fuente de un sudoku, compila y funciona, pero quisiera que me expliquen la siguiente parte que esta en c, y si pudieran, traducirlo a c++ cabe aclarar que en este sistema los niveles de dificultad son del 1 al 8, siendo el 1 el mas dificil y el 8 el mas facil, pero necesito saber como funciona el sistema de dificultad como tal que necesito explicarlo, por ejemplo lo de %c%c%c que me confunde, expliquenme por favor cout<<"Seleccione el nivel de dificultad desde 1 hasta 8\n\n --> "; int Seguir=0,Faltan=1,Nivel,Aciertos=0,Coorde_Verti=0,Coorde_Hori=0,N_Ingresado=0,Sol_Aleatoria=(rand()%5),C[5][9][9]={{8,4,6,1,5,7,3,2,9,7,2,3,4,8,9,1,6,5,1,9,5,2,6,3,7,8,4,5,3,1,7,9,2,6,4,8,4,6,2,3,1,8,9,5,7,9,7,8,6,4,5,2,3,1,6,8,9,5,3,1,4,7,2,3,1,7,8,2,4,5,9,6,2,5,4,9,7,6,8,1,3},{1,6,7,5,3,8,9,4,2,2,5,8,7,9,4,6,3,1,9,3,4,1,6,2,5,8,7,7,1,6,3,4,5,2,9,8,3,4,2,6,8,9,1,7,5,5,8,9,2,1,7,4,6,3,4,9,3,8,5,1,7,2,6,6,7,1,9,2,3,8,5,4,8,2,5,4,7,6,3,1,9},{1,4,9,3,8,6,5,2,7,3,7,2,1,5,4,6,8,9,6,5,8,9,2,7,4,3,1,7,6,4,2,1,5,8,9,3,2,3,5,6,9,8,7,1,4,9,8,1,4,7,3,2,5,6,8,9,6,5,4,1,3,7,2,5,1,3,7,6,2,9,4,8,4,2,7,8,3,9,1,6,5},{6,9,4,3,2,5,7,8,1,8,2,5,9,1,7,3,4,6,7,3,1,6,4,8,2,9,5,1,7,8,2,5,4,9,6,3,9,5,6,1,8,3,4,2,7,3,4,2,7,6,9,1,5,8,2,6,9,5,7,1,8,3,4,4,1,3,8,9,6,5,7,2,5,8,7,4,3,2,6,1,9},{2,4,6,1,3,5,8,7,9,1,3,5,8,7,9,2,4,6,8,7,9,2,4,6,1,3,5,5,6,3,4,1,2,7,9,8,4,1,2,7,9,8,5,6,3,7,9,8,5,6,3,4,1,2,6,5,4,3,2,1,9,8,7,3,2,1,9,8,7,6,5,4,9,8,7,6,5,4,3,2,1}}; while(1!=Nivel && 2!=Nivel && 3!=Nivel && 4!=Nivel && 5!=Nivel && 6!=Nivel && 7!=Nivel && 8!=Nivel) cin>>Nivel; time (&start); for(int z=0;z<Nivel;z++) for(int i=0,f=0;i<3;i++,f++) for(int h=0,g=0,x=Casillero()+f*3,y=Casillero()+g*3;h<3;h++,g++) { while(Numero[x][y]!=0) x=Casillero()+f*3, y=Casillero()+g*3; Numero[x][y]=C[Sol_Aleatoria][x][y]; } while(Aciertos!=81) { printf("\n 1 2 3 4 5 6 7 8 9\n\n %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n 1 ",201,205,205,205,203,205,205,205,203,205,205,205,203,205,205,205,203,205,205,205,203,205,205,205,203,205,205,205,203,205,205,205,203,205,205,205,187); for(int i=0;i<9;i++) for(int j=0;j<9;j++) { if(Numero[i][j]==0) printf("º "); if(Numero[i][j]!=0) printf("º %d ",Numero[i][j]); if(i!=8&&j==8) printf("º\n %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n %d ",204,205,205,205,206,205,205,205,206,205,205,205,206,205,205,205,206,205,205,205,206,205,205,205,206,205,205,205,206,205,205,205,206,205,205,205,185,i+2); } printf("º\n %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n\n Solo Numeros En El Rango De 1 A 9 Permitidos\n\n\n Elija la columna : ",200,205,205,205,202,205,205,205,202,205,205,205,202,205,205,205,202,205,205,205,202,205,205,205,202,205,205,205,202,205,205,205,202,205,205,205,188); while(1!=Coorde_Hori && 2!=Coorde_Hori && 3!=Coorde_Hori && 4!=Coorde_Hori && 5!=Coorde_Hori && 6!=Coorde_Hori && 7!=Coorde_Hori && 8!=Coorde_Hori && 9!=Coorde_Hori) cin>>Coorde_Hori; cout<<"\n\n Elija la fila : "; while(1!=Coorde_Verti && 2!=Coorde_Verti && 3!=Coorde_Verti && 4!=Coorde_Verti && 5!=Coorde_Verti && 6!=Coorde_Verti && 7!=Coorde_Verti && 8!=Coorde_Verti && 9!=Coorde_Verti) cin>>Coorde_Verti; cout<<"\n\n Ingrese Numero : "; while(1!=N_Ingresado && 2!=N_Ingresado && 3!=N_Ingresado && 4!=N_Ingresado && 5!=N_Ingresado && 6!=N_Ingresado && 7!=N_Ingresado && 8!=N_Ingresado && 9!=N_Ingresado) cin>>N_Ingresado; Numero[Coorde_Verti-1][Coorde_Hori-1]=N_Ingresado,Aciertos=0,Faltan=0; for(int i=0;i<9;i++) for(int j=0;j<9;j++) { if(Numero[i][j]==C[Sol_Aleatoria][i][j]) Aciertos++,N_Ingresado=0,Coorde_Hori=0,Coorde_Verti=0,Seguir=0; if(Numero[i][j]==0) Faltan++; } if(Faltan==0 && Aciertos!=81) { cout<<"\n\nPerdiste, quieres volver a emprezar?\n1) SI \n\n2) NO\n\n"; while(1!=Seguir && 2!=Seguir) cin>>Seguir; if(Seguir==2) return 0; } system("cls"); } cout<<"\n\n\n Felicidades!!!\n\n Has terminado el Sudoku\n\n\n\n "; time (&end); dif = difftime (end,start); cout<<"te tomo "<< dif<<" segundos en resolverlo"; } else if (opcion==2) { for (fi=0; fi<9; fi=fi+1) for (co= 0; co<9; co++) juego[fi][co]=95; llenado_matriz(); } getch(); return 0;
Título: Re: Duda c y c++
Publicado por: david_BS en 16 Junio 2012, 17:10 pm
alto quilombo XD si está en c se tiene que poder pasar a c++, me imagino que lo que estás queriendo hacer es pasar todos los printf y scanf a cout y cin, el %c significa un char, osea en lugar de ese %c va un char. volá todos los printf y reemplasalos con cout y listo
Título: Re: Duda c y c++
Publicado por: elkiy en 16 Junio 2012, 23:20 pm
Hola pues mira yo estudio c++, como dijiste tenes que pasar printf a cout.
y eso de c% c%c%c%c%c% No se que sea, pero si miras bien el codigo te das cuenta que pasa cuando se utiliza printf.
Saludos!
Título: Re: Duda c y c++
Publicado por: STANHMAL en 17 Junio 2012, 06:07 am
Hola que tal, Bien, como ya te dijeron lo que tenes que hacer es reemplazar todo los printf por cout y los scanf por cintodos esos %c que salen en el printf quiere decir que va un carácter en dicha posición, es muy común para el uso de las tildes. ejemplo :
imprime en pantalla el 65 es el código decimal al que corresponde la A en la tabla ASCII (http://www.asciitable.com/), es decir, es lo mismo que colocar el printf de la siguiente manera :
imprime en pantalla también se le pueden imprimir varios caracteres de la siguiente forma : printf("%c%c%c%c%c%c%c%c", 83, 84, 65,78,72,77,65,76);
imprime en pantalla en C++ sería se la siguiente forma : cout << (char)83 << (char)84 << (char)65 << (char)78 << (char)72 << (char)77 << (char)65 << (char)76 << endl;
imprime en pantalla claro esta que también de puede hacer de otras formas. $4!u2
|