Checar objetos em tais posições?

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Checar objetos em tais posições?

Mensagem por Markituh em Qui 29 Abr 2010, 11:40

Olá,espero que eu não esteja a incomodar...

Eu estou tentando checar se tal quantidade de objetos está em tais posições. Tipo num jogo da velha,pra checar se o X ou o O estão alinhados em tais posições,assim:


Obrigado.

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Checar objetos em tais posições?

Mensagem por KinKing em Qui 29 Abr 2010, 15:36

Pode tentar fazer exatamente como na figura. Crie objetos/sprites na forma das linhas que você vai usar (no caso das diagonais, claro que com precise collision checking).

Digamos que seja jogo da velha: quando houver uma colisão do X ou do O com as linhas, adione 1 no contador respectivo (de X ou de O).

KinKing

Número de Mensagens : 416
Data de inscrição : 29/05/2008
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://felipejoys.webnode.com

Voltar ao Topo Ir em baixo

Re: Checar objetos em tais posições?

Mensagem por Cainã em Qui 29 Abr 2010, 15:44

Markituh escreveu:Olá,espero que eu não esteja a incomodar...

Eu estou tentando checar se tal quantidade de objetos está em tais posições. Tipo num jogo da velha,pra checar se o X ou o O estão alinhados em tais posições,assim:


Obrigado.

Você poderia utilizar variáveis para mostrar em que quadrado está cada X ou O, daí você verifica todas as possibilidades em um código. Esse seria o jeito mais correto mas você pode fazer tambem como o amigo ai em cima disse.

Cainã

Número de Mensagens : 1335
Idade : 22
Data de inscrição : 07/03/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://cai.na.tl/

Voltar ao Topo Ir em baixo

Re: Checar objetos em tais posições?

Mensagem por KinKing em Qui 29 Abr 2010, 17:31

Pois é, você TAMBÉM pode, alternativamente, utilizar duma array 2D, usar 1 para O e -1 para X (0 para nada) e verificar ao decorrer do jogo se há colunas, linhas ou diagonais formadas.

Adicionar usando um laço for para cada modelo, se necessário usando for dentro de for (acho que 5 for são necessários para as 3 checagens) e se o resultado der 3 ou -3, declarar um vencedor.

Mas por que diabos isso seria mais "correto" que a minha solução anterior, eu não faço idéia.

KinKing

Número de Mensagens : 416
Data de inscrição : 29/05/2008
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://felipejoys.webnode.com

Voltar ao Topo Ir em baixo

Re: Checar objetos em tais posições?

Mensagem por Cainã em Qui 29 Abr 2010, 17:35

KinKing escreveu:Pois é, você TAMBÉM pode, alternativamente, utilizar duma array 2D, usar 1 para O e -1 para X (0 para nada) e verificar ao decorrer do jogo se há colunas, linhas ou diagonais formadas.

Adicionar usando um laço for para cada modelo, se necessário usando for dentro de for (acho que 5 for são necessários para as 3 checagens) e se o resultado der 3 ou -3, declarar um vencedor.

Mas por que diabos isso seria mais "correto" que a minha solução anterior, eu não faço idéia.

Eu disse isso por que seria um jeito mais complexo e preciso. Só isso. Very Happy

Cainã

Número de Mensagens : 1335
Idade : 22
Data de inscrição : 07/03/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://cai.na.tl/

Voltar ao Topo Ir em baixo

Re: Checar objetos em tais posições?

Mensagem por KinKing em Qui 29 Abr 2010, 17:42

Concordo que é muito mais complexo, mas acho que pode ser muito mais fácil, simples, e tão preciso quanto, dependendo do design.

Para um jogo da velha, eu usaria minha primeira artimanha... Para um tabuleiro beeem maior, com certeza acabaria tendo que usar código.

KinKing

Número de Mensagens : 416
Data de inscrição : 29/05/2008
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://felipejoys.webnode.com

Voltar ao Topo Ir em baixo

Re: Checar objetos em tais posições?

Mensagem por Markituh em Qui 29 Abr 2010, 21:37

KinKing escreveu:verificar ao decorrer do jogo se há colunas, linhas ou diagonais formadas.

Adicionar usando um laço for para cada modelo, se necessário usando for dentro de for (acho que 5 for são necessários para as 3 checagens)
Seu esquema ter um ar de sair perfeito,mas essa parte não entendi...

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Checar objetos em tais posições?

Mensagem por Convidad em Sex 30 Abr 2010, 00:08

Concordo que é muito mais complexo, mas acho que pode ser muito mais fácil, simples, e tão preciso quanto, dependendo do design.

Para um jogo da velha, eu usaria minha primeira artimanha... Para um tabuleiro beeem maior, com certeza acabaria tendo que usar código.

Eu discordo. Pra mim o código é uma coisa, o design é outra. Eu concordo com o Cainã (sobre o jeito "mais correto"), pois do jeito que ele falou, é possível alterar o design depois sem se preocupar se o código vai funcionar ou não. Se não for o jeito certo, com certeza é um jeito bem melhor.

Ele poderia ainda, colocar várias animações no jogo posteriormente sem ter que se preocupar com colisão de linhas... ou ainda, criar uma perspectiva no tabuleiro, pra dar uma incrementada legal no design do jogo.

Eu aposto nos arrays. Inclusive, jogos de tetris também são bem mais fáceis de se fazer usando arrays do que objetos com colisões. Minha opinião.

Markituh escreveu:
KinKing escreveu:verificar ao decorrer do jogo se há colunas, linhas ou diagonais formadas.

Adicionar usando um laço for para cada modelo, se necessário usando for dentro de for (acho que 5 for são necessários para as 3 checagens)
Seu esquema ter um ar de sair perfeito,mas essa parte não entendi...

Você considera três linhas verticais e três horizontais. A partir daí, você faz um loop nos arrays conferindo se há combinações.

Código:
for (h = 0; h < 3; h += 1)
begin
      for (v = 0; v < 3; v += 1)
      begin
            // Loop usando v e h
      end;
end;

Mas acho que nesse caso nem seria necessário, apenas um bastaria. Por exemplo: o primeiro índice é a coluna horizontal e o segundo é a coluna vertical. O array pode assumir, por exemplo, true para jogador 1 e false para jogador 2.

Código:

for (q = 0; q < 3; q += 1)
begin
      if c[q,0] = c[q,1] and c[q,0] = c[q,2] then campeao(c[q,0]);
      if c[0,q] = c[1,q] and c[0,q] = c[2,q] then campeao(c[0,q]);
end;


Daí faltam só as duas diagonais:
Código:

if c[0,0] = c[1,1] and c[0,0] = c[2,2] then campeao(c[0,0]);
if c[0,2] = c[1,1] and c[0,0] = c[2,0] then campeao(c[0,2]);

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Checar objetos em tais posições?

Mensagem por diassis em Sex 30 Abr 2010, 08:40

tenho uma engine do mark overmars de um jogo da velha, cara é "sinistra" usa arrays para que toda a coisa funcione, como angine não é minha não sei se posso postar aqui. se sim, só poderei postar a tarde.

diassis

Número de Mensagens : 310
Idade : 40
Data de inscrição : 07/11/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: Checar objetos em tais posições?

Mensagem por Cainã em Sex 30 Abr 2010, 14:25

diassis escreveu:tenho uma engine do mark overmars de um jogo da velha, cara é "sinistra" usa arrays para que toda a coisa funcione, como angine não é minha não sei se posso postar aqui. se sim, só poderei postar a tarde.

Posta aqui e coloca os créditos do autor. Vai ajudar varias pessoas!

Cainã

Número de Mensagens : 1335
Idade : 22
Data de inscrição : 07/03/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://cai.na.tl/

Voltar ao Topo Ir em baixo

Re: Checar objetos em tais posições?

Mensagem por KinKing em Sex 30 Abr 2010, 15:44

Capitão Commando escreveu:Ele poderia ainda, colocar várias animações no jogo posteriormente sem ter que se preocupar com colisão de linhas... ou ainda, criar uma perspectiva no tabuleiro, pra dar uma incrementada legal no design do jogo.

Você entende que quando eu falo "design", eu não estou falando de gráficos, mas sim da idéia do jogo em si, certo? Porque eu boiei quando você falou de "animações..."

KinKing

Número de Mensagens : 416
Data de inscrição : 29/05/2008
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://felipejoys.webnode.com

Voltar ao Topo Ir em baixo

Re: Checar objetos em tais posições?

Mensagem por diassis em Sex 30 Abr 2010, 23:34

Cainã escreveu:
Posta aqui e coloca os créditos do autor. Vai ajudar varias pessoas!
Beleza, mas acho que Presciso da permissão de um administrador também.

diassis

Número de Mensagens : 310
Idade : 40
Data de inscrição : 07/11/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: Checar objetos em tais posições?

Mensagem por fonetico em Sex 30 Abr 2010, 23:55

Relaxa, aqui no fórum é permitido postar engines contanto que poste os devidos créditos, essa engine vai ajudar muita gente, eu por exemplo, que não faço idéia de como se criar um jogo da velha.

fonetico

Número de Mensagens : 1830
Idade : 21
Data de inscrição : 05/10/2009
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Checar objetos em tais posições?

Mensagem por Conteúdo patrocinado Hoje à(s) 16:22


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum