Duvida sobre jogo em clipper

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Arthur.HVT
Usuário Nível 1
Usuário Nível 1
Mensagens: 13
Registrado em: 02 Fev 2008 02:55
Localização: Aqui.

Duvida sobre jogo em clipper

Mensagem por Arthur.HVT »

Ola. Vi o jogo da forca feito aqui no pctoledo, e resolvi fazer um tambem, porem com recursos a mais. Guardarei as palavras com suas respectivas dicas no banco de dados, e fiz com que o usuario poderia adicionar suas proprias palavras. Ja fiz tambem um recebimento aleatorio de palavras(no caso do jogo da forca feito aqui, as palavras tem a mesma sequencia.). Minha duvida é apenas de como conseguir fazer o programa colocar cada letra em seu lugar e como saber que o usuario conseguiu adiconar todas as letras, para mostrar a mensagem de que ganhou. Se puderem talvez disponibilizar o codigo fonte deste jogo da forca feito, ou entao me dessem ideias agradeceria muito.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Seja bem-vindo.

De imediato consigo pensar apenas numa matriz de duas dimensões, redimencionável. No início do jogo, quando o programa escolher a palavra, cria-se tantas "lacunas" quanto for o tamanho desta. E a matriz é criada com esse tamanho. Cada elemento desta será uma outra matriz de dois elementos apenas. No primeiro elemento, a letra correta. No segundo, uma marca qualquer para identificar que a letra foi encontrada. Conforme ele escolher uma letra, uma rotina simples "varre" a matriz em busca de alguma coincidência. Se encontrar, preenche-se o segundo elemento. Uma outra rotina verifica se ainda há "lacunas". Se não houver, fim.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Arthur.HVT
Usuário Nível 1
Usuário Nível 1
Mensagens: 13
Registrado em: 02 Fev 2008 02:55
Localização: Aqui.

Mensagem por Arthur.HVT »

Desculpe, sou iniciante em clipper. Quando vc diz lacunas, se refere a variaveis? Elementos seriam os valores?
Arthur.HVT
Usuário Nível 1
Usuário Nível 1
Mensagens: 13
Registrado em: 02 Fev 2008 02:55
Localização: Aqui.

Mensagem por Arthur.HVT »

Acho que entendi o que quiz dizer. Isso seria ao fato de saber a hora em que o jogo acabar. Mas como poderia fazer para as letras ficassem em seu lugares?
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Quando digo lacunas, me refiro tanto ao efeito visual (as posições no vídeo) quanto às lacunas da matriz de checagem.

Para fazer as letras ficarem nos seus lugares você terá de montar um procedimento com base na posição (o número de ordem do...) elemento encontrado na matriz. Se o camarada informar "A" e existir essa letra na quinta posição da matriz, digamos, você terá de calcular a coluna do vídeo onde se encontra a quinta letra e lá imprimir a letra "A".

Esse é o tipo de programa em que você tem que aprender a calcular posicionamento de caracteres no vídeo. É meio chato, mas necessário.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Aproveitando.

Para quem quer mais diversão em Clipper

Segue abaixo um link para o jogo TETRIS feito em Clipper. (Com fontes)
http://www.the-oasis.net/files/general/cliptris.zip

Esse é de cartas (Poker(5 e 7 cartas), BlackJack(21) e um tal de Bet sei lá o que) (Com fontes)
http://www.the-oasis.net/files/general/clipgame.zip

Esse é o FreeCell (Só tem o OBJ)
http://www.the-oasis.net/files/general/freecell.zip

Na FAST LIB existe mais 2 jogos, PUZZLE e SNAKE, basta chamar as funções Puzzle() e Serpent()

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Aproveitando...

Sempre tive vontade de desenvolver um jogo tipo Quiz em Clipper, para quem não sabe Quiz é aqule jogo tipo Show do Milhão, a idéia básica é :

Nível Noob -

Aparece a pergunta no vídeo e também as possiveis respostas(4), o jogador escolhe entre as possiveis.

Nível Rookie -

Aparece a pergunta no vídeo e o jogador tem que responder em um determinado tempo.

Vejo inclusive a possibilidade de jogar multiplayer.

Tive essa vontade a partir dos meus clientes que sempre ficam me cobrando por mensagens novas no sistema, na entrada dos meus sistemas sempre aparece uma mensagem (provérbios, curiosidades, piadas, etc...)

Abaixo algumas :

A capacidade pouco vale sem oportunidade.
Napoleão Bonaparte

Quem mente precisa ter boa memória.
Corneille

Nao há  tarefa mais pesada que a ociosidade.
Vitor Hugo

A preguiça anda tão devagar que a miséria facilmente a alcança.
Benjamin Franklin

Você sabia que a maior indústria cinematográfica é a da India, que produz cerca de 900 filmes por ano ?

Você sabia que Mario de Andrade publicou Macunaíma em 1928 ?

Sabe quem venceu o primeiro Fla x Flu ? óbvio que foi o Fluminense, hahahahahah (e o último também e se tudo der certo o próximo também)
:)Pos

Você sabia que a batata frita foi inventada na na Bélgica ?

Você sabia que os Brasileiros são quem mais consomem bebidas destiladas no mundo ? (eu tô na estatística) -:]

Você sabia que a primeira camisa do Flamengo era azul e amarela, e a do Fluminense cinza e branca ?

Você sabia que o menor país é o Vaticano com uma área de 1 KM2 ?

E aí ? Quem topa ?

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Arthur.HVT
Usuário Nível 1
Usuário Nível 1
Mensagens: 13
Registrado em: 02 Fev 2008 02:55
Localização: Aqui.

Mensagem por Arthur.HVT »

mas para o caso de posicionar nas lacunas eu teria que criar uma variavel para cada letra certo?
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Um elemento de uma matriz, conforme comentei, é uma variável. Uma para cada letra. Claro que você até pode usar uma variável string comum. Mas a complexidade no controle aumentará. Isso vai atrapalhar você. Acho que com matriz fica mais simples.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Arthur.HVT
Usuário Nível 1
Usuário Nível 1
Mensagens: 13
Registrado em: 02 Fev 2008 02:55
Localização: Aqui.

Mensagem por Arthur.HVT »

Mais duas pequenas duvidas. Ainda nao estudei muito sobre banco de dados e queria saber o comando para saber o numero de registros do banco de dados. Porque eu posso controlar ate onde o numero aleatorio vai, mas se os usuarios adicionassem mais palavras e o numero estivesse fixo na funcao random nao teria efeito algum. Existe esse comando?

A outra duvida é como eu poderia fazer para quando o usuario escolhesse "Sair", o prompt fecharia-se igual no programa da forca daqui do forum.



OBS: As dicas funcionaram direitinho maligno. Valeu
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Seu maior companheiro nessa aventura é o NG do Clipper. Não desgrude dele. E nele você vai encontrar a função LastRec() pra saber a quantidade de registros no banco de dados, incluindo aí os que estiverem marcados para apagamento.

Não sei como é o programa que o Toledo colocou no site dele. Nunca baixei. Mas pra encerrar o programa e voltar ao prompt é fácil: limpe a tela e emita um QUIT. Se precisar apresentar alguns dados do resultado do jogo, após apagar a tela, imprima-os normalmente e encerre.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Arthur.HVT
Usuário Nível 1
Usuário Nível 1
Mensagens: 13
Registrado em: 02 Fev 2008 02:55
Localização: Aqui.

Mensagem por Arthur.HVT »

Gostaria mesmo que encerrasse. O joguinho esta neste link : https://pctoledo.org/download/cop ... t&deonde=2

Logo na primeira tela aperte esc. Apresenta uma mensagem e encerra o prompt.


Quanto ao commando, gostaria que pegasse apenas os que nao estao apagados, pois se o numero for maior que o numero de registros nao apagado daria um erro certo? Nao daria para apagar de vez os registros do BD?
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Como é um jogo onde é interessante ter o máximo de palavras no BD então não vejo muito a necessidade de exclusão de registros, mas caso se faça necessário então use o comando PACK para excluir fisicamente os registros, vale salientar que isso terá que ser feito sempre que se excluir alguam palavra.

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Arthur.HVT
Usuário Nível 1
Usuário Nível 1
Mensagens: 13
Registrado em: 02 Fev 2008 02:55
Localização: Aqui.

Mensagem por Arthur.HVT »

poderiam me passar o NG em portugues da versao 5.2 por favor?
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

O NG deveria estar junto com sua instalação do Clipper. Não está? Se não, baixe o NG do meu site. Se não tiver o navegador do NG, tente usar o WEG, que é para Windows. Pegue-o aqui.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Responder