Jump to content

Recommended Posts

Posted

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 color

Bocadinho 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

Posted (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 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%.

Posted

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

  • 3 weeks later...
Posted

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

  • 3 weeks later...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.