Ir ao conteúdo
  • Cadastre-se

KXSY

Membro Pleno
  • Posts

    559
  • Cadastrado em

  • Última visita

  1. @mopcop Compre um adaptador dvi para vga, e ligue tudo na placa de vídeo.
  2. KXSY

    C Jogo da velha em C

    Quando eu falei em configurar, você realmente tem que configurar o CodeBlocks para compilar como C a extensão pouco importa para o IDE. Abra um novo projeto em C que talvez resolva, mas se você mudou as diretivas de compilação pode ser que você tenha alguns problemas. Pois é! quando eu o fiz eu estava fazendo pelo celular a parte do game play, era para representar o teclado numérico ;-;, mas agora que eu percebi eu inverti tudo. Para jogar é só pressionar o numero na posição que você deseja jogar, é pressionar enter.
  3. KXSY

    C Jogo da velha em C

    @devair1010 Você está usando um compilador de C++, você teria que usar um de C. Basta você configurar o CodeBlocks para compilar para C, eu te ajudaria nisso mas eu uso um editor de texto aqui. Exemplo:JogoDaVelhaC
  4. KXSY

    C Jogo da velha em C

    @devair1010 me desculpe! erro meu, eu esqueci que o fórum está acentuando os códigos fontes. Vou deixar a versão em zip para download. velha.zip
  5. @Juju122 kkk então vai ter que ser na mão mesmo! @Juju122 Você deveria organizar melhor o código, ele está meio criptográfico. Uma organização melhor seria assim. Só fiz um pedaço para você ter uma ideia de como seria.
  6. @Juju122 Você poderia escrever a data na hora da venda. ¯\_(ツ)_/¯ Mas é obrigatório usar o PZim?
  7. Só funciona no delphi e freepascal. Program DataEHora; uses Crt, SysUtils; begin writeln('Hora atual:', TimeToStr(Time)); writeln('Data atual:', DateToStr(Date)); readln; end. Pelo o que eu entendi ela (@Juju122 ) quer colocar a data na hora de registrar uma venda, até onde eu usei o PascalZim ele não tem nenhuma função para fazer isso.
  8. Existem duas respostas para a sua pergunta, a resposta curta é "não tem como fazer usando o pascalzim" e a resposta longa e "e plenamente possível se você trocar o compilador, exemplo usar o freepascal". Vai depender de você.
  9. KXSY

    C Jogo da velha em C

    Eu fiz esse jogo da velha ontem, ainda não terminei, mas ele está funcionando. #include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h> /* Constantes */ #define V_LINHAS 3 #define V_COLUNAS 3 #define T_NOME 10 enum v_objetos{VAZIO, XIS, BOLA, VELHA}; struct jogador_dados { char nome[T_NOME]; unsigned short vitorias; int iniciado; enum v_objetos objeto; }; void iniciaTabuleiro(enum v_objetos *tabuleiro); void destroiTabuleiro(enum v_objetos **tabuleiro); void colocaObjetoTabuleiro(enum v_objetos *tabuleiro, enum v_objetos objeto, unsigned char linha, unsigned char coluna); void mostraTabuleiro(enum v_objetos *tabuleiro); void pegaNomeJogador(struct jogador_dados *jogador); int menuPrincipal(void); int pegaJogadaValida(enum v_objetos *tabuleiro); enum v_objetos *criaTabuleiro(void); enum v_objetos pegaObjetoTabuleiro(enum v_objetos *tabuleiro, unsigned char linha, unsigned char coluna); enum v_objetos checaVitoria(enum v_objetos *tabuleiro); int main(void) { enum v_objetos *tabuleiro = criaTabuleiro(); struct jogador_dados jogador1, jogador2; int opções, posições[V_LINHAS*V_COLUNAS]; if (tabuleiro == NULL) { perror("Erro nao foi possivel reservar memoria do sistema! -"); exit(EXIT_FAILURE); } /* Inicia os jogadores */ jogador1.vitorias = jogador1.iniciado = 0; jogador2 = jogador1; jogador1.objeto = XIS; jogador2.objeto = BOLA; /* Inicia as posições do tabuleiro */ for (int cont = 0; cont < V_LINHAS*V_COLUNAS; cont++) { posições[cont] = cont; } srand(clock()); /* Loop principal */ do { int vez_jogador = rand()%2; /* Menu principal */ opções = menuPrincipal(); switch (opções) { case 1: iniciaTabuleiro(tabuleiro); if (!jogador1.iniciado) { pegaNomeJogador(&jogador1); jogador1.iniciado = 1; } strcpy(jogador2.nome, "COMP!\n"); /* Loop do jogo */ do { mostraTabuleiro(tabuleiro); if (vez_jogador) { int jogada; printf("\nVez do jogador:\t%s", jogador1.nome); jogada = pegaJogadaValida(tabuleiro); colocaObjetoTabuleiro(tabuleiro, jogador1.objeto, jogada/V_LINHAS, jogada%V_COLUNAS); vez_jogador = 0; } else { int cont; /* Mistura as posições do tabuleiro */ for (cont = 0; cont < V_LINHAS*V_COLUNAS; cont++) { int indice = rand()%(V_LINHAS*V_COLUNAS), tmp; tmp = posições[indice]; posições[indice] = posições[cont]; posições[cont] = tmp; } printf("\nVez do jogador:\t%s", jogador2.nome); /* Pega uma posição valida */ cont = 0; for (cont = 0; cont < V_LINHAS*V_COLUNAS; cont++) { if (pegaObjetoTabuleiro(tabuleiro, posições[cont]/V_LINHAS, posições[cont]%V_COLUNAS) == VAZIO) { colocaObjetoTabuleiro(tabuleiro, jogador2.objeto, posições[cont]/V_LINHAS, posições[cont]%V_COLUNAS); break; } } vez_jogador = 1; } if (checaVitoria(tabuleiro) == XIS || checaVitoria(tabuleiro) == BOLA) { printf("\nVitoria:"); if (checaVitoria(tabuleiro) == XIS) { putchar('X'); } else { putchar('O'); } opções = 0; } else if (checaVitoria(tabuleiro) == VELHA) { for (int cont = 0; cont < V_LINHAS*V_COLUNAS; cont++) tabuleiro[cont] = VELHA; puts("Deu velha!"); opções = 0; } } while (opções != 0); mostraTabuleiro(tabuleiro); puts("\nPressione enter para continuar..."); getchar(); break; } } while (opções != 3); destroiTabuleiro(&tabuleiro); return(0); } void iniciaTabuleiro(enum v_objetos *tabuleiro) { unsigned char cont; for (cont = 0; cont < V_LINHAS*V_COLUNAS; cont++) { tabuleiro[cont] = VAZIO; } } void destroiTabuleiro(enum v_objetos **tabuleiro) { if (*tabuleiro != NULL) { free(*tabuleiro); } *tabuleiro = NULL; } void colocaObjetoTabuleiro(enum v_objetos *tabuleiro, enum v_objetos objeto, unsigned char linha, unsigned char coluna) { tabuleiro[(linha*V_LINHAS)+coluna] = objeto; } void mostraTabuleiro(enum v_objetos *tabuleiro) { unsigned char linha, coluna, cont = 1; putchar('\n'); for (linha = 0; linha < V_LINHAS; linha++) { putchar('\n'); for (coluna = 0; coluna < V_COLUNAS; coluna++) { switch (pegaObjetoTabuleiro(tabuleiro, linha, coluna)) { case VAZIO: printf("%i", cont); break; case XIS: putchar('X'); break; case BOLA: putchar('O'); break; case VELHA: putchar('V'); } if (coluna == 0 || coluna == 1) { putchar('|'); } cont++; } } } void pegaNomeJogador(struct jogador_dados *jogador) { char str[256]; do { puts("\nDigite o nome do jogador:\t"); fgets(str, 256, stdin); if (strlen(str) <= 1 || strlen(str) > T_NOME-1) { printf("\nO nome do jogador deve ser menor que %i.", T_NOME); puts("\nPressione enter para continuar..."); getchar(); } } while (strlen(str) <= 1 || strlen(str) > T_NOME-1); strcpy(jogador->nome, str); } int menuPrincipal(void) { int opcao; do { char str[100]; puts("\nJogo da velha"); puts("1 - Novo jogo."); puts("2 - Versus."); puts("3 - Sair"); putchar('>'); if (fgets(str, 100, stdin) != NULL) { opcao = atoi(str); if (opcao < 1 || opcao > 3) { puts("\nOpcao invalida!"); puts("Pressione enter para continuar..."); getchar(); } } else { opcao = 0; } } while (opcao < 1 || opcao > 3); return(opcao); } int pegaJogadaValida(enum v_objetos *tabuleiro) { int jogada = 0; do { char str[256]; putchar('>'); if (fgets(str, 256, stdin) != NULL) { jogada = atoi(str); jogada--; if (jogada < 0 || jogada > 8) { puts("Jogada invalida!"); puts("Pressione enter para continuar..."); getchar(); } else { if (pegaObjetoTabuleiro(tabuleiro, jogada/V_LINHAS, jogada%V_COLUNAS) == VAZIO) { return(jogada); } else { puts("Espaco invalido!"); puts("Pressione enter para continuar..."); getchar(); jogada = 0xff; } } } else { jogada = 0xff; } } while (jogada < 0 || jogada > 8); return(jogada); } enum v_objetos *criaTabuleiro(void) { enum v_objetos *tabuleiro = malloc(sizeof(*tabuleiro)*V_LINHAS*V_COLUNAS); if (tabuleiro == NULL) { return(NULL); } iniciaTabuleiro(tabuleiro); return(tabuleiro); } enum v_objetos pegaObjetoTabuleiro(enum v_objetos *tabuleiro, unsigned char linha, unsigned char coluna) { return(tabuleiro[(linha*V_LINHAS)+coluna]); } enum v_objetos checaVitoria(enum v_objetos *tabuleiro) { unsigned char linha, coluna; unsigned char cont; enum v_objetos tmp; /* Checa vitoria linhas */ for (linha = 0; linha < V_LINHAS; linha++) { cont = 0; tmp = pegaObjetoTabuleiro(tabuleiro, linha, 0); for (coluna = 0; coluna < V_COLUNAS; coluna++) { if (tmp == pegaObjetoTabuleiro(tabuleiro, linha, coluna)) { cont++; } } if (cont >= V_LINHAS) { if (tmp != VAZIO) return(tmp); } } /* Checa vitoria colunas */ for (coluna = 0; coluna < V_COLUNAS; coluna++) { cont = 0; tmp = pegaObjetoTabuleiro(tabuleiro, 0, coluna); for (linha = 0; linha < V_LINHAS; linha++) { if (tmp == pegaObjetoTabuleiro(tabuleiro, linha, coluna)) { cont++; } } if (cont >= V_COLUNAS) { if (tmp != VAZIO) return(tmp); } } /* Checa vitoria diagonal */ tmp = pegaObjetoTabuleiro(tabuleiro, 0, 0); cont = 0; for (linha = 0, coluna = 0; linha < V_LINHAS; linha++, coluna++) { if (tmp == pegaObjetoTabuleiro(tabuleiro, linha, coluna)) { cont++; } } if (cont >= V_COLUNAS) { if (tmp != VAZIO) return(tmp); } tmp = pegaObjetoTabuleiro(tabuleiro, 0, V_COLUNAS-1); cont = 0; for (linha = 0, coluna = V_COLUNAS-1; linha < V_LINHAS; linha++, coluna--) { if (tmp == pegaObjetoTabuleiro(tabuleiro, linha, coluna)) { cont++; } } if (cont >= V_COLUNAS) { if (tmp != VAZIO) return(tmp); } /* Checa se deu velha */ cont = 0; for (linha = 0; linha < V_LINHAS; linha++) { for (coluna = 0; coluna < V_COLUNAS; coluna++) { if (pegaObjetoTabuleiro(tabuleiro, linha, coluna) != VAZIO) cont++; } } if (cont == V_LINHAS*V_COLUNAS) return(VELHA); return(VAZIO); }
  10. Você tem duas opções, a que eu acho horrível e não portável seria usar o API do Windows, ou utilizar a ncurses. Que pra mim seria a melhor opção utilizar a ncurses, fora que ela é bem menos complexa do que o API do Windows.
  11. Uma outra ideia seria assim, mas essa usa um baralho francês.
  12. @fernandoRomes Você está fazendo a fila de voos errada, você teria que pegar os nomes dos voos como char e não int. Fora que você deveria fazer uma matriz de char dessa forma char fila[MAX][TAMANHO_DO_NOME_DO_VOO]; Exemplo de como deveria ser inserido o voo.
  13. @joaoz1404 Você teria que fazer um loop que aceitasse sair só com a condição 0 ou 5. Dessa maneira. Vou deixar mais um exemplo pra você ir quebrando a cabeça.
  14. Cara você fez certinho, só errou na logica do final. program calculadora; uses crt; var n1,n2,resultado: real; op: string; begin while op <> '5' do begin writeln('1-adição'); writeln('2-subtração'); writeln('3-divisão'); writeln('4-multiplicação'); writeln('Escolha uma opção de 1 a 5'); readln(op); writeln('Valor 1: '); readln(n1); writeln('Valor 2: '); readln(n2); //soma if (op='1') then resultado:= n1+n2 //subtração else if (op='2') then resultado:= n1-n2 // divisão else if (op='3') then resultado:= n1/n2 //multiplicação else if (op='4') then resultado:= n1*n2 ; //resultado writeln('resultado: ', resultado:0:2); writeln('Digite 5 para sair ou 0 para continuar.'); readln(op); end; end. Recomendo experimentar fazer com case of também.
  15. @Murilo Murilo Boa sorte com o seu dever, tomara que você passe

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!