Qual é a combinação do jogo da velha?

O segundo projeto de programa��o, a ser implementado em PROLOG, ter� como tema o Jogo da Velha Modificado, explicado a seguir. O progama dever� ser entregue at� o dia 26/09/1999 �s 23:59. A forma de entrega ser� via Web, semelhantemente ao que ocorreu com o primeiro projeto.

Abaixo encontram-se as explica��es sobre o programa.

Tabuleiro

O jogo ser� jogado num tabuleiro 3x3, como o de jogo da velha normal. A numera��o das casas dever� seguir o seguinte padr�o:
    _____ _____ _____
   |     |     |     |
   |  1  |  2  |  3  |
   |_____|_____|_____|
   |     |     |     |
   |  4  |  5  |  6  |
   |_____|_____|_____|
   |     |     |     |
   |  7  |  8  |  9  |
   |_____|_____|_____|

As casas ser�o representadas por um n�mero entre 1 e 9, inclusive.

Regras do Jogo

Cada jogador tem tr�s pedras. Quem joga primeiro ser� chamado de X, e o outro jogador � O. O objetivo de cada jogador � posicionar suas tr�s pedras em linha reta (vertical, horizontal ou diagonal). O tabuleiro come�a vazio, e alternadamente os jogadores fazem suas jogadas, com�ando pelo jogador X. Enquanto n�o estiverem as seis pedras no tabuleiro, uma jogada consiste em colocar uma pedra em uma casa vazia. Quando as tr�s pedras de cada jogador j� estiverem no tabuleiro, uma jogada passa a ser a movimenta��o de uma pedra para uma posi��o vizinha n�o ocupada. Define-se como casa vizinha aquela � qual se pode chegar movendo-se uma posi��o no sentido vertical, horizontal, ou diagonal.

Cada jogador s� pode mexer em suas pr�prias pedras. N�o � permitido "passar" a vez.

Exemplo de partida

A seguir exibimos umapartida para ilustrar o jogo. Os tr�s primeiros lances de cada jogador s�o indicados por casas, e os restantes por listas da forma (a b), onde a � a posi��o de origem e b � a posi��o de destino da pedra que foi movida.

X O
1 5
6 3
7 4
[1, 2] [4, 1]
[7, 4] [5, 8]
[2, 5]

O X venceu, pois conseguiu fazer uma linha reta. Note que o O j� estava perdido na pen�ltima jogada, pois s� podia mexer a pedra 5, deixando o lugar vago para o X ganhar. Posi��o final:

    _____ _____ _____
   |     |     |     |
   |  O  |     |  O  |
   |_____|_____|_____|
   |     |     |     |
   |  X  |  X  |  X  |
   |_____|_____|_____|
   |     |     |     |
   |     |  O  |     |
   |_____|_____|_____|

A partida pode terminar empatada se nenhum dos jogadores tiver ganho depois de trancorridas n jogadas.

O que voce deve implementar

Voce dever� escrever um programa em PROLOG que joga este jogo, tanto do lado do X como do lado do O. Seu programa dever� ter quatro predicados:

x_inicia(-Jogada)

Este predicado ser� chamado com uma vari�vel livre como argumento e dever� instanci�-la com o valor da casa onde seu programa jogar� o primeiro lance como X. Al�m disso, pode executar as inicializa��es que julgar necess�rias.

x_responde(+Jogada, -Resposta)

Este predicado ser� chamado com o primeiro argumento instanciado com o valor da �ltima jogada do O, e deve instanciar o seu segundo argumento com o valor da jogada-resposta.

o_inicia(+Jogada, -Resposta)

Este predicado ser� chamado com uma vari�vel livre como argumento e dever� instanci�-la com o valor da casa onde seu programa jogar� o primeiro lance como O. Al�m disso, pode executar as inicializa��es que julgar necess�rias.

o_responde(+Jogada, -Resposta)

Este predicado ser� chamado com o primeiro argumento instanciado com o valor da �ltima jogada do X, e deve instanciar o seu segundo argumento com o valor da jogada-resposta.

Para evitar conflitos com outros programas, usaremos m�dulos. Cada m�dulo definir� um espa�o de nomes diferente, evitando conflitos. � muito simples usar m�dulos em SWI-Prolog. Basta que seu programa comece com a seguinte linha:

:- module(raNNNNNN, []).
onde NNNNNN � o seu RA. Exemplo: se seu login � 973451, use ra973451 como nome do m�dulo. Seu programa deve ser submetido num arquivo chamado raNNNNNN.prolog, onde novamente NNNNNN � o seu RA.

Funcionamento mínimo

O funcionamento mínimo é importante pois todo aluno que não o cumprir vai para exame direto.

Neste projeto, o funcionamento mínimo é o seguinte: seu programa n�o poder� perder mais do que 10% das partidas disputadas por ter feito jogadas inv�lidas.

Avalia��o

Os programas de todos os alunos que entregarem no prazo, ou at� dez dias ap�s o prazo, ser�o colocados num campeonato. Para cada dia de atraso, o aluno perde um ponto na nota. Este campeonato consiste em jogar uns contra os outros e ver quem acumula mais pontos. Os pontos s�o contados como: 3 para vit�ria, 1 para empate, 0 para derrota (jogada inv�lida conta como derrota).

Os jogadores ser�o ordenados pelo total de pontos. Os que n�o fizeram o funcionamento m�nimo ser�o removidos da lista. O primeiro colocado tira 10 (dez). O �ltimo colocado fica com 5 (cinco). Os outros ter�o sua nota calculada por interpola��o de seu total de pontos em rela��o ao interalo [5,10]. Ap�s tudo isso, ser�o descontados os pontos devidos aos dias de atraso, se houver.

A nota dos que n�o cumprirem o funcionamento m�nimo ser� 5 multiplicado pela fra��o de partidas onde o programa n�o fez jogadas inv�lidas.

Como sempre, programas iguais ou suficientemente parecidos ser�o punidos com nota zero para todos os envolvidos.


Joao Meidanis
Last modified: Sat Sep 25 15:40:11 EST 1999 by JM

Quantas combinações jogo da velha?

O objetivo é simples: completar três figuras em uma linha, impedindo seu oponente de fazer o mesmo. Uma continha besta (nove fatorial, ou 9!, ou 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1) nos dá a quantidade de combinações possíveis: 362.880 jogos da velha.

Qual é o segredo do jogo da velha?

Marque um dos cantos e, dependendo do que seu oponente fizer, marque outro canto, e você estará com a vitória nas mãos. Por exemplo, se você faz o X no canto inferior esquerdo, e ele coloca o O no canto inferior direito, você deve responder com um X no canto superior esquerdo.

Qual é a lógica do jogo da velha?

O objectivo é conseguir três círculos ou três xis em linha, quer horizontal, vertical ou diagonal , e ao mesmo tempo, quando possível, impedir o adversário de ganhar na próxima jogada. Quando um jogador conquista o objetivo, costuma-se riscar os três símbolos.

Como começar o jogo da velha?

Cada jogador tem três pedras. Quem joga primeiro será chamado de X, e o outro jogador é O. O objetivo de cada jogador é posicionar suas três pedras em linha reta (vertical, horizontal ou diagonal). O tabuleiro começa vazio, e alternadamente os jogadores fazem suas jogadas, comçando pelo jogador X.