Forum Pplware

Versão Completa: [C#] Jogo 4 em Linha
Está de momento a ver uma versão reduzida do nosso conteúdo. Ver versão completa com o formato adequado.
Boas,

estou actualmente num curso de programação e costumo ter alguns trabalhos práticos para fazer, e recentemente recebi um trabalho que não estou a conseguir desenvolver, trata-se do clássico jogo "4 em linha" e decidi vir postar aqui no fórum o enunciado do trabalho prático.

Queria só referir que o trabalho é feito em C# Console Application.

Enunciado:

Citar:Pretende-se que implemente um programa em C# que simule o tradicional jogo de
tabuleiro “4 Em Linha”. Este jogo exige um tabuleiro com 42 posições (6 linhas e 7
colunas) e será jogado por dois jogadores alternadamente. Vence o jogo aquele que
primeiro conseguir colocar 4 peças seguidas, na horizontal, na vertical ou na
diagonal.

O jogador deverá efectuar a sua jogada escolhendo a coluna onde quer colocar a peça.
A peça irá “cair” até encontrar a última linha disponível dessa coluna.

Este jogo termina quando um dos jogadores atingir o objectivo ou quando o tabuleiro
estiver completo (não existirem posições vazias).

Quando o jogo termina, deverá ser indicado o jogador vencedor ou uma situação de empate caso nenhum deles atinja o objectivo.

Requisitos:
Deverá implementar mecanismos que permitam:

1 - Apresentar o tabuleiro
2 - Pedir o nome dos jogadores
3 - Apresentar um menu com as opções “Jogar” e “Sair”
4 - Solicitar ao jogador a coluna onde pretende colocar a peça
5 - Verificar se a jogada é válida
6 - Identificar uma situação de vitória e identificar o vencedor
7 - Identificar final de jogo por uma das situações descritas em cima

Deixo desde de já aqui o meu agradecimento aos que me conseguirem ajudar no desenvolvimento do trabalho Obrigado
Seria melhor postares qual a tua duvida em concreto, pois ninguém virá aqui fazer te o trabalho..

De forma a dar-te um empurrão vou sugerir algumas coisas que terás que implementar:

1. Para armazenar o tabuleiro o melhor é utilizares uma matriz com as dimensões pretendidas. Fazes as marcações do jogo com uma letra por exemplo.. X para o jogador1 e O para o jogador2 (por ex).

2. Cria métodos que com base numa dada posição verifiquem através de posições relativas se esta feito um 4 em linha ou não.

3. Cria um contador de jogadas

4. A cada jogada verificas se o numero de jogadas efectuada atingiu o limite, e em caso afirmativo terminas o jogo. Caso contrario Aplicas os métodos criados no paço 2. Caso nenhum deles te diga que se fez 4 em linha, então pedes a jogada ao próximo jogador.

5. Relativamente à queda das peças, é fácil.. Inicias a matriz inicial com um carácter qualquer.. vamos supor '_'. Quando um jogador mete numa determinada coluna uma peça, esta vai caindo ate encontrar um carácter diferente de '_'. No momento em que encontrar um carácter diferente de '_' metes na posição a cima.

[_ _ _ _ _ _ _]
[_ _ _ _ _ _ _]
[_ _ _ _ _ _ _]
[_ _ X1 _ _ _ _]
[_ _ _ X _ _ _]
[_ _ _ _X_ _ _]
[_ _ _ _ X _ _]

Com base no exemplo a cima para verificares as posições relativas à jogada X1(posição xy 4, 3), um dos métodos seria verificares a posição (X1.y -1, X1.x + 1), (X1.y -2, X1.x + 2) ... e por ai fora.


Espero que tenha ajudado Wink

cumps!
obrigado Guilherme de Sousa ;D

vou tentar desenvolver com base nessa explicação.
Para as posições relativas a melhor forma é optares por fazer recursão que o codigo fica mais pequeno Wink

cumps!
Queria pedir-te só uma coisa... podias-me arranjar só o código do tabuleiro?
Como assim o codigo do tabuleiro? É definires uma matrix e inicializa-la..

Em c# nao sei como é que se faz, pois não é uma linguagem que utilizo, mas se googlares encontras.

cumps
ok, obrigado na mesma pela dica Wink
Eu também tive esse trabalho para fazer mas nós tínhamos de usar classes.
http://www.mediafire.com/?egzzm56yd89r487
aqui está a minha class se quiseres dar uma vista de olhos.
tens de fazer a Form e para por a funcionar e só chamar as funções:
para jogar basta chamar a função jogar e enviar a coluna em que joga (numero entre 1 e 7)

para verificar basta chamar a função verifica e enviar a coluna em que jogou (numero entre 1 e 7)

A função verifica retorna 1 se o jogador 1 ganhar, 2 se o jogador 2 ganhar e 3 em caso de empate
para reiniciar basta chamar a função reinicia

o tabuleiro esta numa matriz publica chamada tabuleiro (6 linhas, 7 colunas)
URL's de Referência