• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

maurosmartins

GUI jogo das damas

20 mensagens neste tópico

Olá pessoal.

Sou aluno de engenharia electrotecnica e como projecto caseiro a longo prazo gostaria de criar um sistema que permita jogar ás damas contra o computador.

O sistema será constituído por um braço robótico (já quase construido http://msm.no.sapo.pt/rarm/) uma webcam e um tabuleiro de damas normal.

Pelo caminho pensei programar a aplicação em C# (no qual estou a dar os primeiros passos).

O processamento de imagem também ainda não sei muito bem com vai ser. As aulas de visão artificial na universidade que frequento são dadas utilizando o matlab. Mas um problema de cada vez.

O que gostaria de saber era qual o melhor processo para fazer algo gráfico parecido com o jogo das damas. Não tem de ser nada mto elaborado, basta permitir ver onde está cada peça. Pode ser qualquer coisa como este site http://www.bragancanet.pt/sendim/imagens/jogos_damas.htm se permitisse "drag-N-drop" seria perfeito.

Se tiverem ideias, digam, são mto bem vindas, no entanto vão com calma que eu sei pouquinho disto :D

(tenho no entanto conhecimentos razoáveis de C)

Desde já obrigado, cumprimentos Mauro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá pessoal.

Insistindo mais um pouco. O que pretendo fazer é assim tão complicado e estou a arranjar lenha para me queimar, ou o projecto não chamou a atenção?!

Qualquer sugestão que possa servir de ponto de partida seria óptimo para mim.

Cumprimentos, Mauro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fiquei sem perceber o que pretendias ao certo.

Queres saber em que linguagem fazer o GUI? Isso é uma escolha tua. Em praticamente qualquer uma consegues fazer algo assim..

Claro que se for de mais alto nível, mais simples se troca. Java, VB.net ou C# seriam boas linguagens para começar se ainda tens que aprender a linguagem primeiro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nesse caso talvez o ideal seja mover este tópico para a secção de C#.

Se possuis dúvidas sobre o melhor método de implementar isso nessa linguagem, é provavelmente o melhor. Se por outro lado precisas de ajuda na AI do computador, a secção de algoritmia e lógica é mais indicada.

Isto não significa que não possas criar um tópico nas Dúvidas e Ajudas de C# onde coloques as dúvidas que tens da linguagens, e outro em algoritmia e lógica onde se discute a inteligência do jogo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu queria ajuda sobre a forma de fazer aquilo.

O tópico foi inicialmente criado na secção C# alguém o mudou para aqui....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mais particularmente como fazer um tabuleiro com as peças e se pudesse ser drag and drop era excelente.

Neste momento já tenho qualquer coisa feito mas para a shell. Tenho uma class tabuleiro que contem uma matriz dois por dois. e métodos para inicializar o tabuleiro e mexer as peças de cada jogador.

Mas graficamente, como posso fazer isto?!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vou mover este tópico para a secção de C#.

A questão é como fazer a GUI e usar drag and drop, logo aqui não recebes tanta ajuda.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas falando de C#, alguem sabe como posso fazer isto?!

Eu encontrei na net um projecto http://www.codeproject.com/KB/game/reversi.aspx de um jogo de tabuleiro que não as damas, mas a parte que interessava era o mesmo o tabuleiro. Contém o projecto em visual studio.

Mas é algo muito complicado para que eu consiga aproveitar alguma coisa (só estou a começar com C#).

Ideias, sugestões, é tudo bem vindo!!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Esse projecto segundo o gajo, serviu para ele aprender C#. Bem, se não compreendes esse projecto, então a melhor sugestão é mesmo ires aprender primeiro C#. E então quando já estiveres melhor familiarizado com a linguagem dás uma vista de olhos novamente nesse projecto e aprendes de como é que ele fez o tabuleiro e as peças.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem, sinceramente estava à espera de um pco mais de ajuda.

Eu já sei algumas coisas de C#, mas como disse a linguagem que melhor conheço é C, por isso só me sinto "à vontade" na shell.

É com o ambiente gráfico que eu não sei como fazer.

Mas aparentemente ninguem esta interessado a ttar dar uma resposta mais objectiva.

Obrigado, na mesma, vou ttar continuar à procura.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá mais uma vez. Com um bocado de tempo "perdido" consegui fazer isto

damas.png

Fiz isto usando um array do componente PictureBox e alterando as propriedades background color e picture.

Para a localização das peças tenho uma matriz  de ints com 8x8 e as peças de cada equipa estao representadas por 1 ou 2 ou 0 se estiverem vazias.

após ter alterado a matriz chamo uma função que "desenha" o tabuleiro com as peças no sitio indicado pela matriz.

A minha questão agora será. O que posso fazer com o rato para movimentar as peças?!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A minha questão agora será. O que posso fazer com o rato para movimentar as peças?!

A melhor forma é fazeres primeiro simples e depois começares a melhorar. Se fosse eu a fazer, fazia da seguinte forma.

Usava o event click das pictureBoxs. Funcionaria da seguinte forma.

Clickava numa célula -> marcava a célula como a escolhida.

Clickava numa segunda célula.

  * Se for a que estava escolhida, então desselecciona.

  * Se for uma célula para qual a jogada é inválida, indica ao utilizador o porque é que é inválido efectuar a jogada.

  * Se for uma célula válida, então efectua a jogada e actualiza as pictureboxes para o novo estado do tabuleiro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas eu tenho 64 PictureBox para fazer o tabuleiro. Tenho de fazer o código para cada uma delas?!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não necessariamente. Podes alocar o mesmo evento para todas. Assim só precisas de fazer uma função. Depois dentro dessa função é que tens de saber com que PictureBox estás a trabalhar. Tens 2 opções, pelo name da PictureBox, ou pelo tag. Todos os controlos gráficos tem um campo tag, aí podes por a informação que quiseres. Por exemplo podes definir no tag, o índice da célula a qual a PictureBox corresponde.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok Betovsky, obrigado pela resposta, vou ver o que consigo fazer e mais cedo ou mais tarde vou colocar mais questões :)

Cumprimentos, Mauro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem, eu também estava a fazer uma coisa semelhante, mas depois acabei por desistir da interface gráfica para fazer outra, mas apenas em programação OO.

Está em VB.net, mas os conceitos devem ser semelhantes para adaptares em C#. No fundo, usa uma matriz para gerar os objectos pictureBox dinamicamente, e aplica aquilo que o Betovsky disse, da selecção de peças (pelo menos metade, visto que desisti do projecto entretanto). De resto, não faz mais nada  :);)

http://www.mediafire.com/file/noz5himmoym/checkers.zip

Espero que te faça proveito, ou alguém que esteja interessado. Cumps.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá softclean, obrigado, pelo código, toda a ajuda é bem vinda!!!

Entretanto esta manhã estive a pesquisar o que o Betovsky disse e já consigo clicar nas peças e mete-las a moverem-se de um lado para o outro!

Consegui alocar o event handler igual para todas as peças e através dos parametros Sender consigo saber em qual PictureBox é que foi enviado. dps atraves do nome que dei a cada componente linha_coluna consigo saber a sua posicao.

Relativamente ao jogo agora falta implementar as regras para que seja um jogo de damas consistente!

Quando tiver mais algum tempo disponível vou começar a trabalhar na porta série para enviar comandos ao braço robô.

Obrigado a todos pessoal, espero que me continuem a ajudar.

Cumprimentos, Mauro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

podes criar um método, i atribuir esse método a cada pictureBox... =) assim facilita-te um bocado o trabalho

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora