dremo92 Posted November 30, 2012 at 10:00 PM Report #485292 Posted November 30, 2012 at 10:00 PM Boas pessoal Tenho um trabalho para fazer que é fazer o jogo das damas (com algumas especificações). Nos usamos um "compilador" (AGUIAJ - tem ja umas funçoes feitas e traz um layout porreiro) A minha duvida conciste em algo simples: fazer a peça mover se correctametne ou seja na diagonal e so nas casas pretas. (a funçao vai ter de ter o valor onde esta a peça (linha coluna) e receber os valor para onde ela vai. isto depois vai ter de ter excepçoes mas isso ja é outra coisa eu so prciso mesmo de ajuda na parte de movimentar correctamente as peças...ou seja a casa fica a null e o icon mexe nao penso que seja dificil mas nao esta a correr bem... Explicar me como fica as condiçoes para o botao random fazer a deslocaçao da peça correctamente Algumas funçoes do AGUIAJ: int getR()devolve o valor da componente de vermelho [0-255] int getG()devolve o valor da componente de verde [0-255] int getB()devolve o valor da componente de azul [0-255] boolean equals(Object color)devolve verdadeiro caso a cor seja igual ao objeto color int getLuminance()devolve a luminância da cor [0-255] Color toGraytone()devolve a cor convertida para um tom de cinzento Construtor: ColorImage(int width, int height) Funções: int getWidth()devolve a largura da imagem int getHeight()devolve a altura da imagem Color getColor(int x, int y)devolve a cor do pixel na coordenada (x, y) Procedimentos: void setColor(int x, int y, Color color)altera o pixel na coordenada (x, y) para a cor colorBocadinho de codigo que tenho: import java.util.Random; import aguiaj.grid.*; import aguiaj.colors.Color; import aguiaj.icons.CharacterIcon; // imagens 32x32 pre-carregadas public class CreateTabuleiro{ private Grid grid; private Position aguiaPosition, marioPosition; //Construtor - Tabuleiro parameterizado public CreateTabuleiro(int tab, int n){ grid = new Grid(tab, tab); for (int i = 0; i < tab; i++){ for (int j = 0; j < tab; j++){ if (i%2==0 && j%2!=0){ Position p = grid.getPosition(i,j); // obtem posicao p.setBackground(Color.BLACK); // altera cor da posicao } if (i%2!=0 && j%2==0){ Position p = grid.getPosition(i,j); // obtem posicao p.setBackground(Color.BLACK); // altera cor da posicao } } } } //Construtor - Tabuleiro default public CreateTabuleiro (){ grid = new Grid (8,8); for(int i = 0; i < 8; i++){ for (int j = 0; j < 8; j++){ if (i%2==0 && j%2!=0){ Position p = grid.getPosition(i,j); // obtem posicao p.setBackground(Color.BLACK); // altera cor da posicao } if (i%2!=0 && j%2==0){ Position p = grid.getPosition(i,j); // obtem posicao p.setBackground(Color.BLACK); // altera cor da posicao } } } for (int i = 0; i < 3; i++){ for (int j=0; j < 8; j++){ if(i%2==0 && j%2!=0){ aguiaPosition = grid.getPosition(i, j); aguiaPosition.setIcon(CharacterIcon.AGUIAJ); // define o icone } if (i%2!=0 && j%2==0){ aguiaPosition = grid.getPosition(i, j); aguiaPosition.setIcon(CharacterIcon.AGUIAJ); // define o icone } } } for (int i = grid.getNumberOfColumns()-3; i < grid.getNumberOfColumns(); i++){ for (int j=0; j < 8; j++){ if(i%2==0 && j%2!=0){ marioPosition = grid.getPosition(i, j); marioPosition.setIcon(CharacterIcon.SUPER_MARIO); // define o icone } if (i%2!=0 && j%2==0){ marioPosition = grid.getPosition(i, j); marioPosition.setIcon(CharacterIcon.SUPER_MARIO); // define o icone } } } } //Funcao para jogada random do adversario private Position randomPosition() { Random randomizer = new Random(); int r = randomizer.nextInt(grid.getNumberOfRows()); int c = randomizer.nextInt(grid.getNumberOfColumns()); return grid.getPosition(r, c); } public void random() { Position p = randomPosition(); aguiaPosition.setIcon(null); // remove o icone da posicao p.setIcon(CharacterIcon.AGUIAJ); aguiaPosition = p; } //Funcao para mover peca AJUDA AQUI! public void movePosition (int l, int c, int la, int ca){ } public Grid getBoard() { return grid; } } Cumpriementos André Mota
brunoais Posted November 30, 2012 at 10:15 PM Report #485294 Posted November 30, 2012 at 10:15 PM (edited) Usa as tags code com geshi para o código (basicamente é escrever "[ code = java ]" sem os espaços (e a tag de fecho desse code)). Indenta o código. Código desse tamanho não indentado é uma dor de cabeça enorme para se perceber. Edited November 30, 2012 at 10:17 PM by brunoais "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%.
dremo92 Posted November 30, 2012 at 10:35 PM Author Report #485297 Posted November 30, 2012 at 10:35 PM Usa as tags code com geshi para o código (basicamente é escrever "[ code = java ]" sem os espaços (e a tag de fecho desse code)). Indenta o código. Código desse tamanho não indentado é uma dor de cabeça enorme para se perceber. penso que ja ta é so colocar antes do codigo [ code = java ] CODIGO [ code = java ] é isto né? Cumpriementos André Mota
AJBM Posted November 30, 2012 at 10:42 PM Report #485298 Posted November 30, 2012 at 10:42 PM (edited) sem espaços, sem o = java no ultimo code, e no ultimo code, poe /code, Edited November 30, 2012 at 10:49 PM by AJBM
dremo92 Posted November 30, 2012 at 11:01 PM Author Report #485300 Posted November 30, 2012 at 11:01 PM sem espaços, sem o = java no ultimo code, e no ultimo code, poe /code, DONE Cumpriementos André Mota
Guest Posted December 16, 2012 at 03:13 PM Report #487361 Posted December 16, 2012 at 03:13 PM quanto ao primeiro ponto como sabes onde começam as pretas ou brancas a partir dai crias um genero de regra ou seja só moves assim por ex : 3x3 de grelha mov[0][0] para mov [1][1] de pois para mov [2][2] ou seja na diagonal... e imagina supostamente tu em principio crias-te um objecto peça preta e outro peça branca certo ? Ao correres um ciclo na verificação para ver se podes meter a peça se aparecer lá que o lugar ta ocupado pela peça preta podes fazer a eliminação.. espero ter ajudado cumps
Guest GuiGa Posted January 3, 2013 at 01:22 PM Report #489373 Posted January 3, 2013 at 01:22 PM Dê uma olhada em um projeto de um jogo de damas em pascal. Como a sintaxe do pascal é de fácil entendimento, talvez você poderá sanar suas dúvidas. Procure no código fonte deste projeto a função responsável por mover as peças. Link: https://www.portugal-a-programar.pt/topic/58077-jogo-damas-pascal/
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now