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

(RESOLVIDO)xxx.EXE parou de funcionar--- stdlib.h > atoi()


Araki

Pergunta

Por favor, podem me mandar e-mail se quiserem, agredeço desde já.

[EDIT] A Imagem do erro:1hiSP.jpg

#include <stdio.h>
#include <stdlib.h>


char tabuleiro[2][2];

void deseja();
void limpar_tabuleiro(){
    int il,ic;
    fflush(stdin);
    for(il=0;il<3;il++){
        for(ic=0;ic<3;ic++){
            tabuleiro[il][ic]='#';
        }
    }

}
void escrever_tabuleiro(){

    system("cls");
    printf("\n       1  2  3\n");
    printf("\n    1  %c| %c |%c ",tabuleiro[0][0],tabuleiro[0][1],tabuleiro[0][2]);
    printf("\n      --|---|--");
   // printf("\n    |   |  ");
    printf("\n    2  %c| %c |%c ",tabuleiro[1][0],tabuleiro[1][1],tabuleiro[1][2]);
    printf("\n      --|---|--");
    printf("\n    3  %c| %c |%c\n\n\n",tabuleiro[2][0],tabuleiro[2][1],tabuleiro[2][2]);
}

int checar_jogada(char jogador){
if( tabuleiro[0][0]==jogador && tabuleiro[0][1]==jogador && tabuleiro[0][2]==jogador ||
    tabuleiro[1][0]==jogador && tabuleiro[1][1]==jogador && tabuleiro[1][2]==jogador ||
    tabuleiro[2][0]==jogador && tabuleiro[2][1]==jogador && tabuleiro[2][2]==jogador ||

    tabuleiro[0][0]==jogador && tabuleiro[1][0]==jogador && tabuleiro[2][0]==jogador ||
    tabuleiro[0][1]==jogador && tabuleiro[1][1]==jogador && tabuleiro[2][1]==jogador ||
    tabuleiro[0][2]==jogador && tabuleiro[1][2]==jogador && tabuleiro[2][2]==jogador ||

    tabuleiro[0][0]==jogador && tabuleiro[1][1]==jogador && tabuleiro[2][2]==jogador ||
    tabuleiro[2][0]==jogador && tabuleiro[1][1]==jogador && tabuleiro[0][2]==jogador)

    {
        return(1);
    }else{
        return(0);
    }
}

char trocar_jogador(char jogador){
    if(jogador=='X'){
        fflush(stdin);
        return ('O');
    }else{
        fflush(stdin);
        return ('X');
    }
}

void computar_jogada(char jogador, char jogada[2]){
        int linha, coluna;
        linha=atoi(jogada[0]);
        coluna=atoi(jogada[2]);
        tabuleiro[linha][coluna]=jogador;
}

int realizar_jogada(char jogador){
    char marcar[2];
    escrever_tabuleiro();
    printf("Vez do jogador ' %c '\n",jogador);
    printf("Digite onde deseja marcar %c:\n",jogador);
    scanf("%s",&marcar);

    computar_jogada(jogador,marcar);
    if(checar_jogada(jogador)==0){
        escrever_tabuleiro();
        return (0);
    }else{
        printf("O jogador %c VENCEU!",jogador);
        return(1);
    }
}

void comecar_jogo(){
    char jogador;
    do{
    jogador='X';
    jogador=trocar_jogador(jogador);
    realizar_jogada(jogador);
    }while(realizar_jogada(jogador)==0);
    deseja();
}

void deseja(){
    char escolha;
    printf("Deseja iniciar um novo jogo? 's' ou 'n'?\n");
    scanf("%c",&escolha);
    switch(escolha){
        case's':
                system("cls");
                limpar_tabuleiro();
                comecar_jogo();
                fflush(stdin);
        case 'n':
            exit(0);
            fflush(stdin);
        default:
            fflush(stdin);
            deseja();
    }
}


main(){
    system("title JOGO DA VELHA");
    system("color 0a");
    printf("\n                      Bem Vindo ao Jogo da Velha!\n\n");
    printf("\n  Os comandos são simples: Deve se digitar a linha e a coluna separador por 1 caractere qualquer ex.'espaço'");
    printf("\n  Por exemplo: o Jogador O digita '2 2'");
    printf("\n  Com isso 'O' sera marcada na 'casa do meio';\n\n");
    deseja();
}

Editado por Durub
Adicionar tags code [Durub]
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Aos que também tem esse problema eis a solução(apesar de ter alguns erros de lógica no programa):

Eis a sintaxe que causava crush

deve se usar

atoi(&jogada[0]), ao invés de atoi(jogada[0]);

Link para o comentário
Compartilhar em outros sites

  • 0

Olha galera, isso foi um mini-projeto em sala de aula, MUDEI MUITO antes de entregar, assim que o prazo de entrega acabar(para evitar roubo por colegas) eu posto o novo código aqui. ok Obrigado.

Galera, isso foi um mini-projeto em sala de aula... 1º Período.

Alterei o meu código antes de entregar e ficou, muito, mas muito diferente.

Assim que o prazo de entrega se esgotar(para evitar plágio de colegas de sala <_< )

to ADMIN:

Desculpe por não fazer a edição correta dos posts, sou iniciante por aqui. Mas pretendo ser bem mais presente para aprender e ajudar com/os Programadores.

A propósito, para postar o novo código devo abrir um outro post e linkar com este?

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...