Conectar-se
Quem está conectado
20 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 20 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ir em baixo
avatar
Ranking : Nota E
Notas recebidas : E-D-E-E
Data de inscrição : 18/12/2010
Número de Mensagens : 258
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Como fazer um jogo de simon ou genius ?

em Qua 13 Jul 2011, 15:26
Pessoal, como fazer um jogo de simon ou genius
, pode ser bácico, mas que tenha as 4 cores e sons igual ao original, não precisa ter graficos 10, pode ser simples, só para me ajudar mesmo. Alguem sabe como fazer?
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: Como fazer um jogo de simon ou genius ?

em Qui 14 Jul 2011, 11:26
1- escolha um valor aleatório entre as possibilidades e armazene no último item de uma array.
2- mostre a array ao jogador, um valor de cada vez
3- defina uma variável como "0"
4- libere o jogo ao jogador e aguarde a entrada de dados dele
5- se a entrada corresponder ao valor da array que está na posição da variável que você definiu como "0" no 3° passo, aumente o valor dela em um e aguarde nova entrada do jogador. Se não corresponde, ele errou (tire uma vida ou reinicie o jogo)
6- se a tal variável for maior que o tamanho da array, isso significa que o jogador acertou todo o código. Aumente a array em uma casa, tire o jogo das mãos do jogador (pare de aceitar entrada de dados) e volte ao 1° passo.

-fim? Nãããão!-

7- coloque um menu bonito, cores bonitas, sons bonitos
8- coloque diversas opções de jogo (componha sua música, 3 novos valores por acerto, velocidades variáveis, cheat/bonus que mostra o próximo valor a ser inputado, sistema de pontos, highscorelist)
9- Corra pro abraço
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: Como fazer um jogo de simon ou genius ?

em Qui 14 Jul 2011, 15:41
lucasgmaker, sugiro manter a conversa aqui no tópico mesmo, porque outras pessoas podem se interessar. Eu até tenho a engine (o jogo foi minha entrada num concurso), mas prefiro tentar fazer você entender e criar a sua.
Em que ponto você deixou de entender a explicação?

Se for no "1", o que eu quis dizer é: defina as possibilidade de escolha e escolha uma aleatória. Tipo, no genius original, temos vermelho, verde, azul e amarelo. Escolha uma delas, aleatoriamente (com a função "choose", por exemplo) e armazene no último elemento de uma array. Se o jogo começou agora, o último elemento é o primeiro (índice 0). A array terá mais elementos a partir do ponto 6.
Se você não conhece arrays, tem um tutorial na minha assinatura.
avatar
Ranking : Nota E
Notas recebidas : E-D-E-E
Data de inscrição : 18/12/2010
Número de Mensagens : 258
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como fazer um jogo de simon ou genius ?

em Qui 14 Jul 2011, 16:42
@saim escreveu:lucasgmaker, sugiro manter a conversa aqui no tópico mesmo, porque outras pessoas podem se interessar. Eu até tenho a engine (o jogo foi minha entrada num concurso), mas prefiro tentar fazer você entender e criar a sua.
Em que ponto você deixou de entender a explicação?

Se for no "1", o que eu quis dizer é: defina as possibilidade de escolha e escolha uma aleatória. Tipo, no genius original, temos vermelho, verde, azul e amarelo. Escolha uma delas, aleatoriamente (com a função "choose", por exemplo) e armazene no último elemento de uma array. Se o jogo começou agora, o último elemento é o primeiro (índice 0). A array terá mais elementos a partir do ponto 6.
Se você não conhece arrays, tem um tutorial na minha assinatura.

O que eu não intendi foi tudo, e continuo sem intender, se vc me desce a engine, seria blz, mais, já que vc não quer, pode fazer um tutorial passo a passo? Tipo, só pra mim, ou vc publicar no fórum.
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: Como fazer um jogo de simon ou genius ?

em Qui 14 Jul 2011, 16:52
O tutorial passo-a-passo eu já fiz. 6 passos e mais 3 2 passos bônus, pra melhorar o jogo.
Explique melhor suas dúvidas, uma por uma, que aos poucos podemos chegar lá. Dizer que não entendeu nada é muito genérico. Pelo menos diga se não entendeu o que eu quis dizer ou se não sabe fazer o que eu disse.
avatar
Ranking : Nota E
Notas recebidas : E-D-E-E
Data de inscrição : 18/12/2010
Número de Mensagens : 258
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como fazer um jogo de simon ou genius ?

em Qui 14 Jul 2011, 16:58
@saim escreveu:O tutorial passo-a-passo eu já fiz. 6 passos e mais 3 2 passos bônus, pra melhorar o jogo.
Explique melhor suas dúvidas, uma por uma, que aos poucos podemos chegar lá. Dizer que não entendeu nada é muito genérico. Pelo menos diga se não entendeu o que eu quis dizer ou se não sabe fazer o que eu disse.
Eu não sei fazer o que vc disse. Manda a engine por favor cara, eu não vou roubar, ou editar e falar que fui eu que fiz, eu só quero estudar ela e criar um jogo tipo Google Chrome invade genius. Eu te dou créditos! Se não quiser publicar a sua engine para todo mundo ver, me envie por MP.
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: Como fazer um jogo de simon ou genius ?

em Qui 14 Jul 2011, 17:32
A engine faz o que está escrito no passo-a-passo, se você não entendeu o passo-a-passo, não vai conseguir criar seu jogo. Acredite, eu não tenho ciúme nenhum da engine, só quero te ajudar a aprender ao invés de fazer o jogo pra você.
Calma, vamos aos poucos, te garanto que com paciência, você consegue.
Ainda no primeiro passo:
Código:
escolha um valor aleatório entre as possibilidades e armazene no último item de uma array
Pra isso, precisamos de uma variável que será o tamanho da array. Podemos definí-la no create event como "tamArray" e atribuir a ela o valor zero. Ela armazenará qual é o tamanho da array. No começo do jogo, esse valor é zero e vai aumentando a cada vez que o jogador conseguir chegar até o final.
Podemos definir a array como, por exemplo, "senha".
Daí, no começo do jogo, bem como a cada vez que o tamanho da array "senha" crescer, escolheremos um valor aleatório pro último índice, ou seja:
Código:
senha[tamArray]=choose(0, 1, 2, 3)
avatar
Ranking : Nota E
Notas recebidas : E-D-E-E
Data de inscrição : 18/12/2010
Número de Mensagens : 258
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como fazer um jogo de simon ou genius ?

em Sex 15 Jul 2011, 09:56
@saim escreveu:A engine faz o que está escrito no passo-a-passo, se você não entendeu o passo-a-passo, não vai conseguir criar seu jogo. Acredite, eu não tenho ciúme nenhum da engine, só quero te ajudar a aprender ao invés de fazer o jogo pra você.
Calma, vamos aos poucos, te garanto que com paciência, você consegue.
Ainda no primeiro passo:
Código:
escolha um valor aleatório entre as possibilidades e armazene no último item de uma array
Pra isso, precisamos de uma variável que será o tamanho da array. Podemos definí-la no create event como "tamArray" e atribuir a ela o valor zero. Ela armazenará qual é o tamanho da array. No começo do jogo, esse valor é zero e vai aumentando a cada vez que o jogador conseguir chegar até o final.
Podemos definir a array como, por exemplo, "senha".
Daí, no começo do jogo, bem como a cada vez que o tamanho da array "senha" crescer, escolheremos um valor aleatório pro último índice, ou seja:
Código:
senha[tamArray]=choose(0, 1, 2, 3)
Eu ainda não intendi nada, eu to quase desistindo e mandando fechar o tópico. Eu não sou um usuario muito avançado.
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 30/06/2010
Número de Mensagens : 628
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 15

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como fazer um jogo de simon ou genius ?

em Sex 15 Jul 2011, 10:47
sugiro que não peça pra trancar o tópico, eu ja fiz isso e vai por mim, eu perdi 25% da minha barra de warn, nunca crie um tópico e só pq não conseguiu fazer peça pra trncar, estude os códigos até chegar em um ponto certo, te dou essa dica.
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: Como fazer um jogo de simon ou genius ?

em Sex 15 Jul 2011, 11:15
Se desistir, nunca será. Agora, a lógica por trás do genius requer um pouco de persistência mesmo. Como toda lógica, ela é compreensível, mas não é, de forma alguma, simples como movimento em labirinto, por exemplo. Se acha que não dá conta, se prefere tentar algo mais simples primeiro, fique à contade.

Você tinha dito que não estava conseguindo fazer o que eu havia dito. Parti do pre-suposto que você tinha entendido e fui mostrar como fazer. Se não entendeu, eu posso ser mais simples.

Pense no funcionamento de um jogo de gênius. Veja o jogo com olhos de jogador, por enquanto. O que acontece?
Primeiro, o jogo te dá uma nota musical e um sinal luminoso correspondente. Depois, ele espera que você repita a informação pra ele.
Aí, se você repete a informação corretamente, ele te dá o mesmo sinal e adiciona outro, aleatório. Ele escolhe um entre as 4 opções disponíveis e adiciona no final da senha.
À medida que você vai repetindo a senha, ele te mostra a senha todinha de novo e acrescenta uma informação no final.

Agora vejamos essa senha com olhos de programador. Como armazenar uma série de valores em sequencia? Temos duas opções: ds_lists e arrays. ds_lists são perfeitas, mas um pouco chatas de lidar e, sinceramente, não precisamos das maravilhas das ds_lists. Nós queremos manter a senha da forma que ela for surgindo, então usaremos arrays mesmo. Mais uma vez, sugiro ler o tutorial na minha assinatura.
Bom, podemos criar a senha toda - TODA - no create event. Basta ir mostrando ao jogador apenas a quantidade de valores que ele acertar. Mas qual o tamanho dessa array? Depende da capacidade do jogador. Se o jogador for outro computador, ele não vai esquecer nunca, não vai errar nunca, então o tamanho da array deve ser do tamanho da memória do outro computador. Digamos que seja 1 tera. Imensa, não é? Acho melhor ir populando (atribuindo valores) a array à medida que o jogador vai acertando a senha.
Então, precisamos de:
1 array pra armazenar o valor atual de cada ponto da senha
4 valores (mais ou menos) pra serem os pontos da array
1 variável pra ser o tamanho da array, ou seja, o quanto o jogador foi longe
1 variável pra ser o índice da array, ou seja, o ponto atual que deve ser mostrado ao jogador ou recebido como entrada.

Essa última variável parece meio complicada de entender. Permita-me ilustrar um pouco mais.
Suponha que a senha tenha, atualmente, 20 posições. O jogador já respondeu 4 posições (as 4 primeira são muito fáceis de lembrar). O computador precisa saber qual o valor da quinta posição pra comparar com a entrada do jogador. Mas o computador é burro. Ele não sabe o que precisa ser comparado, nem o que é uma posição. Você tem que explicar tudo pra ele. Você tem que dizer pro computador: "essa entrada do jogador foi a quarta entrada, agora vamos comparar a próxima entrada com a quinta posição da senha. A senha é essa array, então vamos comparar a entrada do jogador com o valor da array cujo índice é 5". Pra fazer isso, a variável que antes valia 4 deve passar a valer 5 no momento em que o jogador acertar a entrada.
Agora, acelere o tempo até o momento em que o jogador já terminou de digitar a senha. Ele acertou tudo e o computador está mostrando a nova senha pra ele, agora com 21 posições. Estamos recebendo a 8ª posição. Congele o tempo. Observe o que o computador está fazendo. Ele está mostrando por sinal luminoso e sonoro qual o oitavo valor da senha. Dê zoom e olhe de novo. Ele está olhando, na array, qual o valor que está na oitava posição, porque ele recebeu o comando de exibir o valor da oitava posição. Como ele sabe que é a oitava posição? A variável que indica a posição a ser exibida está com o valor 8! Uma vez exibida o valor da posição 8, essa variável passa a ter o valor 8+1 e o comando de exibir a o ponto da array na posição do valor dessa variável (9, agora) é disparado novamente.

Releia esses últimos parágrafos até entender. Desenhe uma array e acompanhe o que está acontecendo. Ah, deixe-me desenhar uma array pra você:
senha[0]=2; //primeira posição
senha[1]=3; //segunda
senha[2]=0; //etc
senha[3]=2;
senha[4]=2;
senha[5]=1;
...
senha[21]=2;
leia: a primeira posição (posição de índice zero) da array "senha" tem o valor dois;
a segunda posição (posição de índice um) da array "senha" tem o valor três;
...
a vigésima-segunda posição (posição de índice 21) da array "senha" tem o valor dois;
avatar
Ranking : Nota E
Notas recebidas : E-D-E-E
Data de inscrição : 18/12/2010
Número de Mensagens : 258
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como fazer um jogo de simon ou genius ?

em Sab 16 Jul 2011, 11:26
@saim escreveu:Se desistir, nunca será. Agora, a lógica por trás do genius requer um pouco de persistência mesmo. Como toda lógica, ela é compreensível, mas não é, de forma alguma, simples como movimento em labirinto, por exemplo. Se acha que não dá conta, se prefere tentar algo mais simples primeiro, fique à contade.

Você tinha dito que não estava conseguindo fazer o que eu havia dito. Parti do pre-suposto que você tinha entendido e fui mostrar como fazer. Se não entendeu, eu posso ser mais simples.

Pense no funcionamento de um jogo de gênius. Veja o jogo com olhos de jogador, por enquanto. O que acontece?
Primeiro, o jogo te dá uma nota musical e um sinal luminoso correspondente. Depois, ele espera que você repita a informação pra ele.
Aí, se você repete a informação corretamente, ele te dá o mesmo sinal e adiciona outro, aleatório. Ele escolhe um entre as 4 opções disponíveis e adiciona no final da senha.
À medida que você vai repetindo a senha, ele te mostra a senha todinha de novo e acrescenta uma informação no final.

Agora vejamos essa senha com olhos de programador. Como armazenar uma série de valores em sequencia? Temos duas opções: ds_lists e arrays. ds_lists são perfeitas, mas um pouco chatas de lidar e, sinceramente, não precisamos das maravilhas das ds_lists. Nós queremos manter a senha da forma que ela for surgindo, então usaremos arrays mesmo. Mais uma vez, sugiro ler o tutorial na minha assinatura.
Bom, podemos criar a senha toda - TODA - no create event. Basta ir mostrando ao jogador apenas a quantidade de valores que ele acertar. Mas qual o tamanho dessa array? Depende da capacidade do jogador. Se o jogador for outro computador, ele não vai esquecer nunca, não vai errar nunca, então o tamanho da array deve ser do tamanho da memória do outro computador. Digamos que seja 1 tera. Imensa, não é? Acho melhor ir populando (atribuindo valores) a array à medida que o jogador vai acertando a senha.
Então, precisamos de:
1 array pra armazenar o valor atual de cada ponto da senha
4 valores (mais ou menos) pra serem os pontos da array
1 variável pra ser o tamanho da array, ou seja, o quanto o jogador foi longe
1 variável pra ser o índice da array, ou seja, o ponto atual que deve ser mostrado ao jogador ou recebido como entrada.

Essa última variável parece meio complicada de entender. Permita-me ilustrar um pouco mais.
Suponha que a senha tenha, atualmente, 20 posições. O jogador já respondeu 4 posições (as 4 primeira são muito fáceis de lembrar). O computador precisa saber qual o valor da quinta posição pra comparar com a entrada do jogador. Mas o computador é burro. Ele não sabe o que precisa ser comparado, nem o que é uma posição. Você tem que explicar tudo pra ele. Você tem que dizer pro computador: "essa entrada do jogador foi a quarta entrada, agora vamos comparar a próxima entrada com a quinta posição da senha. A senha é essa array, então vamos comparar a entrada do jogador com o valor da array cujo índice é 5". Pra fazer isso, a variável que antes valia 4 deve passar a valer 5 no momento em que o jogador acertar a entrada.
Agora, acelere o tempo até o momento em que o jogador já terminou de digitar a senha. Ele acertou tudo e o computador está mostrando a nova senha pra ele, agora com 21 posições. Estamos recebendo a 8ª posição. Congele o tempo. Observe o que o computador está fazendo. Ele está mostrando por sinal luminoso e sonoro qual o oitavo valor da senha. Dê zoom e olhe de novo. Ele está olhando, na array, qual o valor que está na oitava posição, porque ele recebeu o comando de exibir o valor da oitava posição. Como ele sabe que é a oitava posição? A variável que indica a posição a ser exibida está com o valor 8! Uma vez exibida o valor da posição 8, essa variável passa a ter o valor 8+1 e o comando de exibir a o ponto da array na posição do valor dessa variável (9, agora) é disparado novamente.

Releia esses últimos parágrafos até entender. Desenhe uma array e acompanhe o que está acontecendo. Ah, deixe-me desenhar uma array pra você:
senha[0]=2; //primeira posição
senha[1]=3; //segunda
senha[2]=0; //etc
senha[3]=2;
senha[4]=2;
senha[5]=1;
...
senha[21]=2;
leia: a primeira posição (posição de índice zero) da array "senha" tem o valor dois;
a segunda posição (posição de índice um) da array "senha" tem o valor três;
...
a vigésima-segunda posição (posição de índice 21) da array "senha" tem o valor dois;
Agora estou começando a intender, só to com dificuldades nas arrays, mas e os sons, as cores?
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: Como fazer um jogo de simon ou genius ?

em Sab 16 Jul 2011, 17:38
A perfumaria fica pra depois que a engine estiver funcionando Smile
Arrays são a alma dessa engine. Entenda arrays - TUDO sobre arrays - e você faz essa engine com uma mão nas costas.
Vou viajar amanhã, então vou te abandonar por uns tempos... Alguma pergunta específica pra até hoje à noite?
avatar
Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2184
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 106

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como fazer um jogo de simon ou genius ?

em Sab 16 Jul 2011, 17:46
Seria melhor não criar valores pré-programados, perderia a graça poios o jogador saberia a ordem toda vez que ele começasse o jogo. Se bem que o saim mesmo disse que só é possível memorizar as primeiras quatro cores... A mente humana é realmente incrível. Porém a função random() nem sempre retorna um valor muito satisfatório, tendo assim termos que partir para valores pré-programados mesmo.

Rapaz eu acho que entendi a lógica disso aí. Vou até ver se consigo fazer aqui Happy
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: Como fazer um jogo de simon ou genius ?

em Dom 17 Jul 2011, 08:44
Não, Markituh, eu disse que os primeiros 4 valores de cada senha são fáceis de lembrar. Tem gente que acha fácil lembrar os 20 primeiros valores.
A cada jogo, cada ponto da senha é gerado aleatoriamente. Pode-se usar a função random (ou irandom) sim, mas como a resposta do ponto pode não ser um valor numérico (por exemplo, pode ser a string "amarelo"), achei melhor usar o choose.

O rascunho do create seria assim:
Código:
tamanho da array=0 //índice do último ponto
posição na array=0  //índice atual
senha[posição na array]=choose(0,1,2,3)
táNaHoraDeReceberEntradaDoJogador=false //tá na hora de mostrar a senha

Claro que precisa mudar os nomes das variáveis, além de adicionar uma ou outra.
avatar
Ranking : Nota E
Notas recebidas : E-D-E-E
Data de inscrição : 18/12/2010
Número de Mensagens : 258
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como fazer um jogo de simon ou genius ?

em Dom 17 Jul 2011, 12:10
@saim escreveu:Não, Markituh, eu disse que os primeiros 4 valores de cada senha são fáceis de lembrar. Tem gente que acha fácil lembrar os 20 primeiros valores.
A cada jogo, cada ponto da senha é gerado aleatoriamente. Pode-se usar a função random (ou irandom) sim, mas como a resposta do ponto pode não ser um valor numérico (por exemplo, pode ser a string "amarelo"), achei melhor usar o choose.

O rascunho do create seria assim:
Código:
tamanho da array=0 //índice do último ponto
posição na array=0  //índice atual
senha[posição na array]=choose(0,1,2,3)
táNaHoraDeReceberEntradaDoJogador=false //tá na hora de mostrar a senha

Claro que precisa mudar os nomes das variáveis, além de adicionar uma ou outra.
Olhá só cara, pergunta não tenho nenhuma, mais tenho duas palavras, Boa Viagem!
Conteúdo patrocinado

Re: Como fazer um jogo de simon ou genius ?

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