示例#1
0
int main(){
    srand(time(NULL));
    numeros_aleatorios();
    tabuleiro();
        for(;k<3;){
            if (l<6){
                printf("\nInsira um numero:\n");
                scanf("%d",&n);
                system("cls");
                procurar();
                printf("Acertos: %d/6\n-----------------------\n",l);
                }
            else{
              system("cls");
              tabuleiro();
              printf("Acertos: %d/6\n-----------------------\n",l);
              printf("\nParabens!!!\n\n");
              return 0;
            }
        }
    system("cls");
    tabuleiro();
    printf("Acertos: %d/6\n-----------------------\n",l);
    printf("\nTentativas Excedidas.\n\n");
};
示例#2
0
main (){
   setlocale (LC_ALL, "Portuguese");
   system ("color 07");

   //Essse loop "ZERA" as casas do tabuleiro para qualquer novo jogo.
    for (i=0; i<=3; i++){            
        for (j=0;j<=3; j++){
            casa[i][j] = '\0';
		}
	}

     if (opcao == 5){
        system ("cls");
        cabecalho();
        informa ();
	} else {
		menu1();
		informa ();
	}

	opcao=0;

   //O loop seguinte repete o jogo enquanto se iniciarem novos jogos com os mesmos jogadores. 
	do {
      //A função da estrutura de decisão abaixo é informar novamente ao programa os nomes dos 
      //jogadores 1 e 2. O programa só passará por ela, em caso de novo jogo com jogadores iguais aos da partida anterior.
		if (nomeaux == 1){
			strcpy (nome1, nomeaux1);
			strcpy (nome2, nomeaux2);
			cabecalho ();
			tabuleiro ();
		}	
		//Laço de repetição que determina a duração do jogo.
		while (vencedor == 0 && turno < 9) {
            tabuleiro ();
			jogada ();
			system ("cls");
			cabecalho ();
			tabuleiro ();
            for (i=1; i<=3; i++){
                verificavencedor (i, 1, i, 2, i, 3);     //verifica vencedor nas colunas
				verificavencedor (1, i, 2, i, 3, i);    //verifica vencedos nas linhas
            }
            verificavencedor (1, 1, 2, 2, 3, 3);       //verifica vencedor na primeira diagona
            verificavencedor (1, 3, 2, 2, 3, 1);       //verifica vencedor na segunda diagonal
		}

		printf ("Pressione qualquer tecla para continuar...\n\n");
        getch ();
		placar ();
		printf ("Pressione qualquer tecla para continuar...\n\n");
        getch ();
		menu2();

	} while (opcao == 1);
	
	printf("Obrigado por jogar TicTacToe\nDesenvolvido por José Tarciso e Olliver Felipe.\n\n Pressione qualquer tecla para sair...");
	getch();
}
示例#3
0
//Valida uma jogada em posição livre e, caso a posição informada não estivesse marcada, marca
//a posição informada e, após isso, alterna o jogador que jogará o próximo turno.
validajogada (){
	if (casa[linha][coluna] == 'X' || casa[linha][coluna] == 'O'){
		system ("cls");
		cabecalho ();
		tabuleiro ();
			if (jogador == 1)
				printf ("\nA posição escolhida já foi marcada. \n\n%s, ainda é sua vez.\n", nome1);
			if (jogador == 2)
				printf ("\nA posição escolhida já foi marcada. \n\n%s, ainda é sua vez.\n", nome2);
            
		printf ("\nInforme as novas coordenadas da sua jogada.\n");
        printf ("Linha: ");
        scanf ("%d", &linha);
        validalinha ();
        printf ("Coluna: ");
        scanf ("%d", &coluna);
        validacoluna();
        validajogada ();
	} else {
		if (jogador == 1){
			casa[linha][coluna] = 'X';
			jogador = 2;
		} else {
			casa[linha][coluna] = 'O';
			jogador = 1;
		}
	}
}
示例#4
0
//Obriga coluna estar entre 1 e 3.
validacoluna (){
	while (coluna < 1 || coluna > 3){
		system ("cls");
		cabecalho ();
		tabuleiro ();
		printf ("Entrada inválida!\n\n");
		if (jogador == 1){
			printf ("%s, ainda é sua vez.\n\n", nome1);
		} else {
			printf ("%s, ainda é sua vez. \n\n", nome2);
		}
		printf ("Por favor, escolha um valor de 1 até 3 para a posição escolhida. \n\n\n");
		printf ("Coluna: ");
    do {
		valorDoScanf = 0;
        mensagemDeErro = 0; 
		if(mensagemDeErro >= 1){
				printf("\nVocê deve digitar um número inteiro entre 1 e 3.\n\n--->");
		}
        fflush(stdin);
		valorDoScanf = scanf ("%d", &coluna);
		mensagemDeErro++;
	} while(valorDoScanf == 0);			
	}
}
示例#5
0
void escolherPos(int player, int jogador[][3], int tab[][3]){
	int celula_valida = 0, erro = 0;
	char celula[2];
	while(!celula_valida){ // Enquanto a celula informada for inválida, continue pedidindo uma célula válida
		if(erro){ // Se a célula informada já foi selecionada ou inválida...
			system("cls"); // Limpe a tela
			tabuleiro(tab, jogador); //Mostre o tabuleiro
			printf("\n\nCelula ja selecionada ou invalida! Player %d, informe uma outra celula: ", player);
			fflush(stdin);
			gets(celula);
		} else{ // Primeira mensagem para o player
			system("cls"); 
			tabuleiro(tab, jogador);
			printf("\n\nPlayer %d, informe a celula desejada: ", player);
			fflush(stdin);
			gets(celula);
		}
		erro = 0;
		for(int x = 0; x < 3 && !celula_valida && !erro; x++){ // Verificando se a célula informada é válida ou se já foi selecionada
			for(int y = 0; y < 3; y++){
				if(celula[0] == 65 + x && celula[1] == 49 + y){ // 65 + 0 = A | 65 + 1 = B | 65 + 2 = C | 49 + 0 = 1 | 49 + 1 = 2 | 49 + 2 = 3
					if(tab[x][y] != 1){ // Se a posição na tabela não foi marcada...
						tab[x][y] = 1; // Marque-a
						if(player == 1){ // Se for o player 1...
							jogador[x][y] = 1; // Marque com 1 a mesma posição na matriz jogador
							celula_valida = 1; // A célula informada é válida
							break;
						} else if(player == 2){ // Se for o player 2...
							jogador[x][y] = 2; // Marque com 2 a mesma posição na matriz jogador
							celula_valida = 1; // A célula informada é válida
							break;
						}						
					} else{ // Caso a posição já foi selecionada...
						erro = 1;
						break;
					}
					
				}
				if(x == 2 && y == 2){ // Se todas as posições forem verificadas e nenhuma ação foi tomada, a céluda informada é inválida
					erro = 1;
				}
			}
		}
	}
}
示例#6
0
int procurar(){
    int j;

            for(j=0;j<6;j++){
               if (n == m[n]){
                l++;
                p[n]=n;
                printf("Numero Correto.\n-----------------------\n");
                tabuleiro();
                m[n]=0;
                return 0;
                }
            }
    printf("Numero Incorreto.\n-----------------------\n");
    tabuleiro();

    k++;
};
示例#7
0
int main(){
	int tab[3][3], jogador[3][3], jogadas = 0, player = 1, vencedor = 0;
	tabuleiro(tab, jogador);
	while(jogadas != 9 || !vencedor){
		if(player == 1){
			escolherPos(player, jogador, tab);
			jogadas++;
			vencedor = verifica_vencedor(jogador);
			player = 2;
		}
		if(vencedor == 1){
			system("cls");
			tabuleiro(tab, jogador);
			printf("\n\nO Player 1 venceu!");
			break;
		}
		if(jogadas == 9){
			system("cls");
			tabuleiro(tab, jogador);
			printf("\n\nNao houve vencedor!");
			break;
		}
		if(player == 2){
			escolherPos(player, jogador, tab);
			vencedor = verifica_vencedor(jogador);
			jogadas++;
			player = 1;
		}
		if(vencedor == 2){
			system("cls");
			tabuleiro(tab, jogador);
			printf("\n\nO Player 2 venceu!");
			break;
		}
		if(jogadas == 9){
			system("cls");
			tabuleiro(tab, jogador);
			printf("\n\nNao houve vencedor!");
			break;
		}
	}
	return 0;
}
示例#8
0
//Obriga coluna estar entre 1 e 3.
validacoluna (){
	while (coluna < 1 || coluna > 3){
		system ("cls");
		cabecalho ();
		tabuleiro ();
		printf ("O número informado é inválido.\n");
		printf ("Por favor, escolha um valor de 1 até 3 para a coluna escolhida: \n");
		printf ("----> ");		
		valorDoScanf = 0;
        mensagemDeErro = 0;    
        do {
			if(mensagemDeErro >= 1){
				printf("\nVocê deve digitar um número inteiro entre 1 e 3.\n\n--->");
			}
            fflush(stdin);
			valorDoScanf = scanf ("%d", &coluna);
			mensagemDeErro++;
		} while(valorDoScanf == 0);		
	}
}
示例#9
0
/* Funcao que administra o turno do jogador 1 */
void turno_p1(int m_valores[][7], int escolha, int jogada_AI){
    char jogada;
    int j_vet, total, i, j, n;

    tabuleiro(m_valores);
    /* Este if define quem ira jogar, o player ou a IA, de acordo com a
     escolha passada no menu */
    if((escolha == 2)||(simulando != 1)){
        /* Le a posicao que quer ser realizada a jogada */
        printf("\nJogador 1 favor realizar sua jogada: ");
        scanf(" %c", &jogada);
        /* Armazena a posicao na coluna de acordo com a referencia passada */
        j_vet = referencia(jogada);
        /* Realiza a verificacao se o jogador nao esta escolhendo nenhuma casa vazia */
        while(m_valores[1][j_vet] == 0 || j_vet == (-1)){
            printf("\nJogada invalida, favor informar uma jogada valida: ");
            scanf(" %c", &jogada);
            j_vet = referencia(jogada);
        }
    /* j_vet para P1 vs IA */
    } else{
        j_vet = jogada_AI;
    }


    /* Armazena a quantidade de sementes na casa informada */
    n = m_valores[1][j_vet];
    /* Zera o atual */
    m_valores[1][j_vet] = 0;
    /* Redistribui as sementes */
    j = 0;
    while(n>0){
        /* sleep(1); */
        j_vet += 1;
        if(j_vet > 6){
            i=0;
            j++;
            m_valores[i][j_vet-j] += 1;
            j++;
            if(j_vet-j == 0){
                j_vet = -1;
            }
        } else{
            i=1;
            m_valores[i][j_vet] += 1;
        }

        n -= 1;
        tabuleiro(m_valores);
        if(simulando == 0)
        {
            sleep(1);
        }
    }


    /* Verifica se o p1 pode pegar as sementes do p2 */
    if((i == 1) && (m_valores[i][j_vet] == 1) && (m_valores[0][j_vet+1] != 0) && (j_vet != 6)){
        total = m_valores[0][j_vet+1] + m_valores[1][j_vet];
        m_valores[0][j_vet+1] = 0;
        m_valores[1][j_vet] = 0;
        m_valores[1][6] += total;
    }

    /* Verifica se o p1 pode jogar denovo */
    if((i==1) && (j_vet == 6) && (m_vazia(m_valores) == 1)){
        tabuleiro(m_valores);
        flag = 1;
        turno_p1(m_valores, escolha, jogada_AI);
    } else{
        flag = 2;
        tabuleiro(m_valores);
    }

}