Trago-lhes um simples jogo da velha feito em C.O jogo consiste em voce jogar contra o computador. Na funcao main ha um loop que, analogamente, e o "coracao" do jogo.A funcao init_matriz inicializa a matriz 3x3 com espacos, para que assim fique melhor sua exibicao. A funcao disp_matriz mostra o "tabuleiro" formatado na tela do console. A funcao move_jogador e move_cpu sao, respectivamente, para a sua jogada e a jogada do computador. A funcao check_vencedor verifica se alguem ganhou o jogo, pela linha, coluna ou diagonal.Como o programa foi desenvolvido apenas de forma didatica, o computador nao possui nenhuma "inteligencia", sendo assim, na sua vez ele simplesmente procura um espaco em branco e joga nele. Para implementar algum tipo de IA, e necessario apenas modificar a funcao move_cpu.12/10/11:Voce pode ver o codigo do jogo completo no meu repositorio no GitHub: Jogo da Velha22/10/11:Codigo no repositorio adaptado para rodar tanto em Windows quanto em Linux.-----#include <stdio.h>char matriz[3][3];void init_matriz(){ int i, j; for(i = 0; i < 3; i++) for(j = 0; j < 3; j++) matriz[i][j] = ' ';}void disp_matriz(){ int i, j; printf(" --- --- --- \n"); for(i = 0; i < 3; i++){ printf("|"); for(j = 0; j < 3; j++) printf(" %c |", matriz[i][j]); printf("\n|---|---|---|\n"); }}void move_jogador(){ int x, y; printf("\n\nDigite em qual pos(x, y) deseja jogar: "); scanf("%d%d", &x, &y); x--; y--; if(matriz[x][y] != ' '){ printf("Posicao invalida ou ja jogada, tente novamente...\n\n"); move_jogador(); } else matriz[x][y] = 'X';}void move_cpu(){ int i, j; for(i = 0; i < 3; i++){ for(j = 0; j < 3; j++) if(matriz[i][j] == ' ') break; if(matriz[i][j] == ' ') break; } if(i*j == 9){ printf("\nEMPATE"); getchar(); exit(0); } else matriz[i][j] = 'O';}char check_vencedor(){ int i; for(i = 0; i < 3; i++) if( (matriz[i][0] == matriz[i][1]) && (matriz[i][0] == matriz[i][2]) ) return matriz[i][0]; for(i = 0; i < 3; i++) if( (matriz[0][i] == matriz[1][i]) && (matriz[0][i] == matriz[2][i]) ) return matriz[0][i]; if( (matriz[0][0] == matriz[2][2]) && (matriz[1][1] == matriz[2][2]) ) return matriz[1][1]; if( (matriz[1][1] == matriz[0][2]) && (matriz[1][1] == matriz[2][0]) ) return matriz[1][1]; return ' ';}int main(){ char terminado = ' '; printf("\t\tJogo da Velha :)\n"); printf("Modo: vs cpu\n\n"); init_matriz(); do{ disp_matriz(); move_jogador(); terminado = check_vencedor(); if(terminado != ' ') break; move_cpu(); terminado = check_vencedor(); }while( terminado == ' '); if(terminado == 'X') printf("\n\nParabens, voce venceu!\n"); else printf("\n\nQue pena, voce perdeu!\n"); disp_matriz(); fflush(stdin); getchar(); return 0;}-----Divirtam-se, facam modificacoes e code it! :) Descricao/Sobre:Grep (global / regular expression / print) e um programa executado pela linha de comando do Linux. Esse programa consiste em buscar uma expressao (uma palavra, por exemplo) em arquivos. O Grep original imprime na saida padrao todas as linhas em que ocorreram a expressao mencionada.Este e um codigo que funciona de forma parecida, mas reduzida, por isso mini-grep. O uso pela linha de comando e: [programa] [opcoes] [expressao] [arquivo]. Lembrando que programa e o executavel do mini-grep e o arquivo devera ser o nome com sua extensao.Codigo:#include <stdio.h>#include <stdlib.h>#include <string.h>FILE* abreArquivo(char caminho[], char modo[]){ FILE *f = fopen(caminho, modo); if(!f){ printf("ERRO: O arquivo nao existe\n<ENTER>"); getchar(); exit(0); } return