Ir para conteúdo
Fórum Script Brasil
  • 0

Juntar estas duas funções / Jogo Sudoku!


duarte_valente

Pergunta

Boas! Eu tenho duas funções a parte e queria juntalas pa ficarem numa só. A primeira função é a do chamar digito, no qual pergunto a linha e a coluna e o numero e vai coloca-lo o digito no local correcto.

A outra funçao é a do cursor que se passa igual, chamo a linha e coluna e o cursor vai piscar no local correcto.

O meu trabalho é juntar estas duas funções numa SÓ. Ficava assim: ia perguntar a linha e a coluna e o numero, depois ia colucar o cursor e o numero nesse devido local correcto.(nota o cursor tem que aparecer a piscar e o digito parado).

A funçao do digito:

int main()
{
    int i, j;
    textcolor(BLACK, BLACK, BLACK);
    limpar_ecra();
    desenha_tabuleiro();
    for(i=0; i<9; i++)
        for(j=0; j<9; j++)
            digito(i, j, j+80*i);
        
}
int limpar_ecra2()
{
    int x,y;
    for(y=34; y<60; y++)

    {

        for(x=0; x<160; x++)
        {

            gotoxy(x, y);
            printf(" ");

        }

    }
    
}

int limpar_ecra3()
{
    int x,y;
    for(y=28; y<34; y++)

    {

        for(x=0; x<160; x++)
        {

            gotoxy(x, y);
            printf(" ");

        }

    }
    
}
void desenha_digito (int linha, int coluna, int digito)
{
   

            
    int x,y,n,i;

    x=8+linha*4;
    y=3+coluna*2;    
    if(coluna>=3)
    {
        y=5+coluna*2;
    }
    if(coluna>=6)
    {
        y=7+coluna*2;
    }
    if(linha>=3)
    {
        x=10+linha*4;
    }
    if(linha>=6)
    {
        x=12+linha*4;
    }
    if( digito>=9 || digito<=-1)
    {
        gotoxy(3,36);
        printf("Nº do digito INCORRETO, numeros validos de 0 a 8");        
    }
    textcolor(WHITE,BLUE,BLACK);            
    {    
        for(i=0; i<=2; i++)
        {
        n=x-1;            
        gotoxy(n,y);
        textcolor(WHITE,BLUE,BLACK);

        printf("   \n");
        }
        gotoxy(n,y);
        textcolor(BLACK, BLACK, BLACK);
        printf("   \n");
        
        gotoxy(x,y);
        textcolor(BRIGHT, GREEN, BLACK);
        printf("%d",digito);
        
    }
    //gotoxy(x,y);
    //printf("%d",digito);
    
}
int digito()
{
    int coluna,linha,digito;
    textcolor(BLACK, BLACK, BLACK);
    limpar_ecra3();
    gotoxy(3,28);
    textcolor(BRIGHT, GREEN, BLACK);
    printf("introduza coluna linha:\n");
    scanf("%d%d",&linha,&coluna);
    if(coluna>=9 || coluna<=-1 || linha>=9 || linha<=-1)
    {
        gotoxy(3,34);
        printf("Numero INCORRETO, numeros validos de 0 a 8");
        return 0;
    }
    limpar_ecra2();
    gotoxy(3,31);
    printf("introduza numero:\n");
    scanf("%d",&digito);
    desenha_digito(coluna,linha,digito);    
    return 1;
}
o código do cursor:
void desenha_cursor(int linha,int coluna, int digito)
{
    int x,y,i;
    x=10+linha*4;
    y=4+coluna*2;

        
    if(coluna>=3)
    {
        y=6+coluna*2;
    }
    if(coluna>=6)
    {
        y=8+coluna*2;
    }
    if(linha>=3)
    {
        x=12+linha*4;
    }
    if(linha>=6)
    {
        x=14+linha*4;
    }
    if( digito>=9 || digito<=-1)
    {
        gotoxy(1,36);
        printf("Nº do digito INCORRETO, numeros validos de 0 a 8");        
    }
    //gotoxy(x,y);
    //printf("%d",digito);
    
    for(i=0;i<10;i++)
    {
            
            usleep(500000);
            textcolor(WHITE,BLACK,BLACK);            
                {                
                gotoxy(x,y);

                printf("|---|\n");
                gotoxy(x,y+1);

                printf("|   |\n");
                gotoxy(x,y+2);

                printf("|---|\n");
                }
        for(i=0;i<1;i++)
            {
            usleep(500000);
            textcolor(WHITE,BLACK,YELLOW);    
                    
                    {                
                gotoxy(x,y);

                printf("|---|\n");
                gotoxy(x,y+1);

                printf("|   |\n");
                gotoxy(x,y+2);

                printf("|---|\n");
                    }
                
            }
        
    }

    gotoxy(1,28);

    printf("  \n");    

}

int cursor(int linha,int coluna,int digito) 
{
        
        gotoxy(3,32);
        printf("Insira o numero da linha\n");
        scanf("%d",&linha);
        gotoxy(3,34);    
        printf("Insira o numero da coluna\n");
        scanf("%d",&coluna);
        desenha_cursor(linha,coluna,digito);
        return 0;
       
}

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

quando você digita " int cursor(int linha,int coluna,int digito) " os campos linha, coluna, digito, são parâmetros que são passados na hora de chamar à função.

primeiro você usa o desenha_cursor, correto?! que no mesmo solicita que for jogar o campo de linha coluna e valor, isso é armazenado em uma variável, que como exemplo vou usar a, b ,c respectivamente. então dentro da função desenha cursor, quando você já estiver com o todos os valores desejados você chama a função cursor, da seguinte forma

cursor (a, b, c)

onde que:

linha vai receber a

coluna vai receber b

digito vai receber c

caso ainda tenha alguma dúvida com passagem de parâmetros, segue um link: passagem de parâmetros c/c++

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...