Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <windows.h>
- #include <conio.h>
- #include <string.h>
- #define cima 72
- #define baixo 80
- #define esquerda 75
- #define direita 77
- int controle()
- {
- int c = 224;
- while(c>5)
- {
- while(c==224){
- c=getch();
- }
- switch(c) {
- case cima: //seta para cima
- c = 1;
- break;
- case baixo: //seta para baixo
- c = 2;
- break;
- case esquerda: //seta para esquerda
- c = 3;
- break;
- case direita: // seta para direita
- c = 4;
- break;
- default:
- printf("\ninvalido"); // outra tecla
- c=224;
- break;
- }
- }
- return c;
- }
- void acha_peca(int &l, int &c, char valor[3][3]){
- int i=0, a, b;
- for (a = 0; a<3; a++){
- for(b = 0; b < 3; b++){
- if(valor[a][b] == ' '){
- l = a;
- c = b;
- }
- }
- }
- }
- int checkagem(char var[3][3]){
- int a, b, d = 0, pontos=0;
- char correto[9] = {'1','2','3','4','5','6','7','8',' '};
- for (a=0; a<3; a++){
- for(b=0; b <3; b++){
- if(var[a][b] == correto[d]){
- pontos++;
- }
- d++;
- }
- }
- if(pontos==9){
- a=1;
- }
- else{
- a=0;
- }
- return a;
- }
- void preencher_tabuleiro(char (&var)[3][3]){
- int a, b, d = 0;
- char fase[9] = {'3','2','6','5','1','7','8',' ','4'};
- for (a=0; a<3; a++){
- for(b=0; b <3; b++){
- var[a][b] = fase[d];
- d++;
- }
- }
- }
- void mudacor(int cor){
- /*
- 0 = Preto 8 = Cinza
- 1 = Azul 9 = Azul Claro
- 2 = Verde 10 = Verde Claro
- 3 = Verde-Agua 11= Verde-Agua Claro
- 4 = Vermelho 12 = Vermelho Claro
- 5 = Roxo 13 = Lilas
- 6 = Amarelo 14 = Amarelo Claro
- 7 = Branco 15 = Branco Brilhante
- */
- HANDLE Saida;
- Saida = GetStdHandle(STD_OUTPUT_HANDLE);
- SetConsoleTextAttribute(Saida,cor);
- }
- void gotoxy(int lin, int col){
- HANDLE Saida;
- COORD Posicao;
- Saida = GetStdHandle(STD_OUTPUT_HANDLE);
- Posicao.X = col;
- Posicao.Y = lin;
- SetConsoleCursorPosition(Saida, Posicao);
- }
- void mover_peca(char (&tabuleiro)[3][3], int i, int j){
- int a, b=0;
- char aux1, aux2;
- while(b==0){
- if(i==0 and j==0){
- a=controle();
- switch(a){
- case 2:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i+1][j];
- tabuleiro[i][j]=aux2;
- tabuleiro[i+1][j]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- case 4:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i][j+1];
- tabuleiro[i][j]=aux2;
- tabuleiro[i][j+1]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- default:
- gotoxy(12,7);
- printf("movimento invalido!");
- break;
- }
- }
- if(i==0 and j==2){
- a=controle();
- switch(a){
- case 2:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i+1][j];
- tabuleiro[i][j]=aux2;
- tabuleiro[i+1][j]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- case 3:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i][j-1];
- tabuleiro[i][j]=aux2;
- tabuleiro[i][j-1]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- default:
- gotoxy(12,7);
- printf("movimento invalido!");
- break;
- }
- }
- if(i==2 and j==2){
- a=controle();
- switch(a){
- case 1:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i-1][j];
- tabuleiro[i][j]=aux2;
- tabuleiro[i-1][j]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- case 3:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i][j-1];
- tabuleiro[i][j]=aux2;
- tabuleiro[i][j-1]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- default:
- gotoxy(12,7);
- printf("movimento invalido!");
- break;
- }
- }
- if(i==2 and j==0){
- a=controle();
- switch(a){
- case 1:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i-1][j];
- tabuleiro[i][j]=aux2;
- tabuleiro[i-1][j]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- case 4:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i][j+1];
- tabuleiro[i][j]=aux2;
- tabuleiro[i][j+1]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- default:
- gotoxy(12,7);
- printf("movimento invalido!");
- break;
- }
- }
- if(i==0 and j==1){
- a=controle();
- switch(a){
- case 2:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i+1][j];
- tabuleiro[i][j]=aux2;
- tabuleiro[i+1][j]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- case 3:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i][j-1];
- tabuleiro[i][j]=aux2;
- tabuleiro[i][j-1]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- case 4:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i][j+1];
- tabuleiro[i][j]=aux2;
- tabuleiro[i][j+1]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- default:
- gotoxy(12,7);
- printf("movimento invalido!");
- break;
- }
- }
- if(i==2 and j==1){
- a=controle();
- switch(a){
- case 1:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i-1][j];
- tabuleiro[i][j]=aux2;
- tabuleiro[i-1][j]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- case 3:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i][j-1];
- tabuleiro[i][j]=aux2;
- tabuleiro[i][j-1]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- case 4:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i][j+1];
- tabuleiro[i][j]=aux2;
- tabuleiro[i][j+1]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- default:
- gotoxy(12,7);
- printf("movimento invalido!");
- break;
- }
- }
- if(i==1 and j==0){
- a=controle();
- switch(a){
- case 1:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i-1][j];
- tabuleiro[i][j]=aux2;
- tabuleiro[i-1][j]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- case 2:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i+1][j];
- tabuleiro[i][j]=aux2;
- tabuleiro[i+1][j]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- case 4:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i][j+1];
- tabuleiro[i][j]=aux2;
- tabuleiro[i][j+1]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- default:
- gotoxy(12,7);
- printf("movimento invalido!");
- break;
- }
- }
- if(i==1 and j==2){
- a=controle();
- switch(a){
- case 1:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i-1][j];
- tabuleiro[i][j]=aux2;
- tabuleiro[i-1][j]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- case 2:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i+1][j];
- tabuleiro[i][j]=aux2;
- tabuleiro[i+1][j]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- case 3:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i][j-1];
- tabuleiro[i][j]=aux2;
- tabuleiro[i][j-1]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- default:
- gotoxy(12,7);
- printf("movimento invalido!");
- break;
- }
- }
- if(i==1 and j==1){
- a=controle();
- switch(a){
- case 1:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i-1][j];
- tabuleiro[i][j]=aux2;
- tabuleiro[i-1][j]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- case 2:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i+1][j];
- tabuleiro[i][j]=aux2;
- tabuleiro[i+1][j]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- case 3:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i][j-1];
- tabuleiro[i][j]=aux2;
- tabuleiro[i][j-1]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- case 4:
- aux1=tabuleiro[i][j];
- aux2=tabuleiro[i][j+1];
- tabuleiro[i][j]=aux2;
- tabuleiro[i][j+1]=aux1;
- gotoxy(12,7);
- printf(" ");
- b=1;
- break;
- }
- }
- }
- }
- void desenha_tabuleiro(int linha_inicial, int col_inicial, char val[3][3])// para o jogo QC8
- {
- int l = linha_inicial;
- int c = col_inicial;
- //desenha quadro
- gotoxy(l,c);
- printf("\332\304\304\304\302\304\304\304\302\304\304\304\277");
- gotoxy(l+1,c);
- printf("\263 %c \263 %c \263 %c \263", val[0][0], val[0][1], val[0][2]);
- gotoxy(l+2,c);
- printf("\303\304\304\304\305\304\304\304\305\304\304\304\264");
- gotoxy(l+3,c);
- printf("\263 %c \263 %c \263 %c \263", val[1][0], val[1][1], val[1][2]);
- gotoxy(l+4,c);
- printf("\303\304\304\304\305\304\304\304\305\304\304\304\264");
- gotoxy(l+5,c);
- printf("\263 %c \263 %c \263 %c \263", val[2][0], val[2][1], val[2][2]);
- gotoxy(l+6,c);
- printf("\300\304\304\304\301\304\304\304\301\304\304\304\331");
- }
- int menu(){
- char resposta;
- int valor, repete=0;
- gotoxy(2,3);
- printf("Parabens Voce venceu! Jogar novamente(s/n): ");
- while(repete==0){
- resposta = getch();
- switch(resposta){
- case 's':
- valor=0;
- repete=1;
- gotoxy(2,3);
- printf(" ");
- gotoxy(3,5);
- printf(" ");
- break;
- case 'n':
- valor=1;
- repete=1;
- break;
- default:
- gotoxy(3,5);
- printf("responda com s ou n");
- }
- }
- return valor;
- }
- int main()
- {
- char num[3][3], resposta;
- int coluna_0=0, linha_0=0;
- char (*p)[3][3];
- int *coluna_ponteiro;
- int *linha_ponteiro;
- int flag = 0;
- p = #
- int a, b, i = 0, jogar_novamente = 0;
- coluna_ponteiro = &coluna_0;
- linha_ponteiro = &linha_0;
- while(jogar_novamente==0){
- preencher_tabuleiro((*p));
- desenha_tabuleiro(4,10, num);
- while(flag==0){
- acha_peca(*linha_ponteiro, *coluna_ponteiro, num);
- mover_peca(num, linha_0, coluna_0);
- desenha_tabuleiro(4,10, num);
- flag = checkagem(num);
- }
- jogar_novamente=menu();
- coluna_0=0;
- linha_0=0;
- i = 0;
- flag=0;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement