1. TugaTech » Programação, Scripts e Webmasters » Programação, Scripts e Webmasters
Siga-nos

Realize o Login na sua conta ou Registe-se para participar.

Ver o tópico anterior Ver o tópico seguinte Ir para baixo  Mensagem [Página 1 de 1]

#1Quatro em Linha em C# Empty Quatro em Linha em C# - Qui 23 Abr 2015 - 0:22

RETROspective

Iniciante
RETROspective

Tenho um projecto para realizar para uma cadeira da faculdade envolvendo a linguagem C Sharp. Tenho de criar o jogo Quatro em Linha, para quem não conhece o jogo que clique aqui.

 

Cheguei a uma parte em que tenho um problema... preciso que a peça caia em qualquer parte da coluna/linha em que o utilizador carregar e sinceramente não sei fazer dessa maneira. Algum Einstein poderá dar-me uma dica? eheh.

https://www.youtube.com/channel/UCTmMf1nSrRYkeES49wRNxig

#2Quatro em Linha em C# Empty Re: Quatro em Linha em C# - Qui 23 Abr 2015 - 9:36

Aprendiz

Avançado
Aprendiz

Bom dia,

 

Normalmente, jogos deste tipo são programados usando matrizes (vetores de vetores). Se o jogo tiver uma grelha de 9 por 6 (x=9,y=6), então será esse o tamanho da matriz.

De seguida, marcar-se-ão as posições vazias com um código que ache melhor, por exemplo, 0. Atribua um valor para cada cor, por exemplo 1 para as vermelhas e 2 para as amarelas. Isto significa que quando um jogador carregar numa coluna, é suposto a peça ir "deslizando" (atenção que não vou referir formas de animar este movimento) até cair na primeira posição livre mais abaixo.

Como é que programamos esta parte do deslizar? Imagine que a grelha apenas tem 1 coluna, e que o vetor começa a contar nas casas inferiores. Com esta informação é fácil perceber que qualquer peça introduzida vai ficar na primeira casa que houver que contenha o valor 0, porque isto indica que está livre! Ou seja, vendo o algoritmo em pseudo-código:

 

nota: estamos a contar de baixo para cima, que é o sentido contrário ao da suposta animação.

Presuma-se também que estamos a adicionar uma peça vermelha

 

VAZIO=0

VERMELHO=1

AMARELO=2

enquanto( grelha(xActual,yActual)!=VAZIO ) {

     yActual++;

}

se(yActual > yMax) {

     // Levanta-se excepção, não há posição livre nesta coluna

}

caso contrario {

     grelha(xActual,yActual)=VERMELHO;

     pintaGrelha();

}

http://goncalotomas.com

Ver o tópico anterior Ver o tópico seguinte Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos




Aplicações do TugaTechAplicações TugaTechDiscord do TugaTechDiscord do TugaTechRSS TugaTechRSS do TugaTechSpeedtest TugaTechSpeedtest TugatechHost TugaTechHost TugaTech