<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>O.Cantinho.da.Programação &#187; Jogo do Galo</title>
	<atom:link href="/tag/jogo-do-galo/feed/" rel="self" type="application/rss+xml" />
	<link>http://omundodaprogramacao.com</link>
	<description>O mundo da programação visto pelos olhos de um novato</description>
	<lastBuildDate>Mon, 07 May 2012 23:01:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Jogo do Galo em C – Versão 1.07</title>
		<link>http://omundodaprogramacao.com/jogo-do-galo-em-c-versao-1-07/</link>
		<comments>http://omundodaprogramacao.com/jogo-do-galo-em-c-versao-1-07/#comments</comments>
		<pubDate>Tue, 10 Apr 2012 23:01:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Exercícios]]></category>
		<category><![CDATA[Línguagens de Programação]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Jogo do Galo]]></category>

		<guid isPermaLink="false">http://omundodaprogramacao.com/?p=4951</guid>
		<description><![CDATA[Continuando com a evolução do meu projecto de execução do jogo do galo em C implementei uma nova funcionalidade que não é mais que as estatísticas do jogo. Neste momento as estatísticas apenas ficam guardadas em memória pelo que o só são válidas enquanto o programa não for terminado, mas futramente irei guardar essa informação [...]]]></description>
			<content:encoded><![CDATA[<p>Continuando com a evolução do meu projecto de execução do jogo do galo em C implementei uma nova funcionalidade que não é mais que as estatísticas do jogo. Neste momento as estatísticas apenas ficam guardadas em memória pelo que o só são válidas enquanto o programa não for terminado, mas futramente irei guardar essa informação num ficheiro que posteriormente será lido e actualizado.</p>
<p>O código que criei até agora é o seguinte:</p>
<blockquote>
<pre lang="”C”">/**************************************************************
Nome: Nuno Santos
Data: 06-04-2012
Projecto: Jogo do Galo_1.07
**************************************************************/

#include&lt;stdio.h&gt;
#include&lt;stdlib.h&gt;

#define DIM 3

int matriz[DIM][DIM];
int contapc = 0, contahumano = 0;

void iniciar_matriz();
void coordenadas();
void coordenadas_pc();
int verifica_vencedor();
void apresenta_matriz();
void apresenta_estatisticas(int contahumano, int contapc);

int main()
{
    printf("\t\t\t\t Jogo do Galo \n\n\n");

    int escolha = 0;

    do
    {
        printf("\t\t\t\t*MENU*\n\n\n");
        printf("1 - Jogar Jogo do Galo:\n");
        printf("2 - Consultar Estatísticas de Jogo:\n");
        printf("3 - SAIR\n");
        printf("Opção: ");
        scanf("%d", &amp;escolha);

        switch(escolha)
        {
            case 1:
            {
                   iniciar_matriz(matriz);
                   apresenta_matriz();

                    do
                    {

                        coordenadas();

                        //Verifica o vencedor após a Jogada do Humano
                        if (verifica_vencedor() == 1)
                        {
                            printf("\n\nO Vencedor é o Jogador Humano!\n\n");
                            contahumano = contahumano + 1;
                            break;
                        }

                    coordenadas_pc();

                        //Verifica o vencedor após a jogada do Computador

                        if (verifica_vencedor() == 1)
                        {
                            printf("\n\nO Vencedor é o Computador!\n\n");
                            contapc = contapc + 1;
                            break;
                        }

                    apresenta_matriz();

                    }while(1);

                    // Apresentar a Matriz após a verificação do vencedor
                    apresenta_matriz();
                    break;

            }

            case 2:
            {
                printf("\t\t\t*Estatisticas do Jogo*\n\n\n");
                apresenta_estatisticas(contahumano, contapc);
                break;
            }

            case 3:
            {
                printf("Deseja Sair!");
                exit(0);
            }

            default:
            {
                printf("Opção Inválida");
                return main;
            }
        }

    }
    while(escolha != 3);

    getchar();
}

// Função que Incializa a matriz

void iniciar_matriz()
{
    int i, j;

    for(i = 0; i &lt; DIM; i++)
    {
        for (j = 0; j &lt; DIM; j++)
        {
            matriz[i][j] = ' ';
        }

    }
}

//Função para a coodenadas

void coordenadas()
 {
    int x, y;

    printf("Insira a coordenada X: ");
    scanf("%d", &amp;x);
    fflush(stdin);

    printf("\n\nInsira a coordenada Y: ");
    scanf("%d", &amp;y);
    fflush(stdin);

    x--;
    y--;

    if (matriz[x][y] != ' ')
    {
        printf("\n Posição Ocupada! \n");
        coordenadas();
    }
    else
    {
        matriz[x][y] = 'X';
    }
}

//Função para apresentar a matriz

void apresenta_matriz()
{
    int i;

    printf("\n");

    for (i = 0; i &lt; DIM; i++)
    {
        printf(" %c | %c | %c ", matriz[i][0], matriz[i][1], matriz[i][2]);

        if ( i != 2)
        {
            printf("\n");
            printf("---|---|---");
            printf("\n");
        }
    }

    printf("\n");
}

// Função para A Jogada do Computador

void coordenadas_pc()
{
    int i, j;

    for (i = 0; i &lt; DIM; i++)
    {
        for(j = 0; j &lt; DIM; j++)
        {
            if (matriz[i][j] == ' ')
            {
                matriz[i][j] = 'O';
                return;
            }
        }
    }
}

//Função para verificar o Vencedor do jogo

int verifica_vencedor()
{
    int i;

    // Verificar Linhas e retorna o valor 1 caso seja verdadeiro

    for (i = 0; i &lt; DIM; i++)
    {
        if (matriz[i][0] != ' ' &amp;&amp; matriz[i][1] != ' ' &amp;&amp; matriz[i][2] != ' ')
        {
            if(matriz[i][0] == matriz[i][1] &amp;&amp; matriz[i][0] == matriz[i][2])
            {
                return 1;
            }
        }
    }

    // Verificar Linhas e retorna o valor 1 caso seja verdadeiro

    for (i = 0; i &lt; DIM; i++)
    {
        if (matriz[0][i] != ' ' &amp;&amp; matriz[1][i] != ' ' &amp;&amp; matriz[2][i] != ' ')
        {
            if (matriz[0][i] == matriz[1][i] &amp;&amp; matriz[0][i] == matriz[2][i])
            {
                return 1;
            }
        }
    }

    // Verificar as diagonais e retornar o valor 1 caso seja verdadeiro

    if(matriz[0][0] != ' ' &amp;&amp; matriz[1][1] != ' ' &amp;&amp; matriz[2][2] != ' ')
    {
        if (matriz[0][0] == matriz[1][1] &amp;&amp; matriz[0][0] == matriz[2][2])
        {
            return 1;
        }
    }

    if(matriz[0][2] != ' ' &amp;&amp; matriz[1][1] != ' ' &amp;&amp; matriz[2][0] != ' ')
    {
        if(matriz[0][2] == matriz[1][1] &amp;&amp; matriz[0][2] == matriz[2][0])
        {
            return 1;
        }
    }
}

//Função para calculo das estatísticas e apresentação

void apresenta_estatisticas(int contahumano, int contapc)
{
    printf("Numero de jogos Ganhos pelo Humano: %d\n\n", contahumano);
    printf("Numero de Jogos Ganhos Pelo Computador: %d\n\n", contapc);

}</pre>
</blockquote>
<p>Sei que esta solução ainda não resolve o desafio e que pode muito bem ser melhorada, principalmente no método da inteligência artificial do modo como o computador joga e sobre como é guardada a informação das estatísticas do jogo, pelo que estou aberto a todas as sugestões que me possam dar.</p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fomundodaprogramacao.com%2Fjogo-do-galo-em-c-versao-1-07%2F&amp;t=Jogo%20do%20Galo%20em%20C%20%E2%80%93%20Vers%C3%A3o%201.07" id="facebook_share_button_4951" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; display: -moz-inline-block; display:inline-block; padding:1px 20px 0 5px; margin: 5px 0; height:15px; border:1px solid #d8dfea; color: #3B5998; background: #fff url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif) no-repeat top right;">Share</a>
	<script type="text/javascript">
	<!--
	var button = document.getElementById('facebook_share_link_4951') || document.getElementById('facebook_share_icon_4951') || document.getElementById('facebook_share_both_4951') || document.getElementById('facebook_share_button_4951');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_4951') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	-->
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://omundodaprogramacao.com/jogo-do-galo-em-c-versao-1-07/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
