1. #1

    Registered
    31/10/07
    Posts
    11
    iTrader
    0
    Mentioned
    0 Post(s)

    Spelbord in Gui (java)

    Als project hebben wij een rpg ontwikkeld. Nu is al oze code af alleen moeten we ons spelbord in de gui afprinten. Dit werkt niet goed. Ons spelbord bestaat uit een lijst van vakken. Kan iemand ons helpen??
    Dit is de code van ons spelbord..

    De gui wordt in een apparte klasse aangemaakt..(Java Swing)
    package Domein.DomeinModel.Domein;

    import java.util.ArrayList;
    import java.util.List;


    public class Spelbord {
    private Personage p;
    private Vak[][] bord;
    private int dimensiex;
    private int dimensiey;
    private int eindpositieX;
    private int eindpositieY;
    private int startpositieX;
    private int startpositieY;
    private Categorie categorie;
    private ArrayList<Personage> tegenstanders = new ArrayList<Personage>();


    public Spelbord(String spelbordnaam, int dx, int dy,int startpositieX,int startpositieY,int eindpositieX,int eindpositieY) {

    dimensiex = dx;
    dimensiey = dy;
    this.startpositieX=startpositieX;
    this.startpositieY=startpositieY;
    this.eindpositieX=eindpositieX;
    this.eindpositieY=eindpositieY;

    bord = new Vak[dimensiex][dimensiey];


    for (int i = 0; i < dimensiex; i++) {

    for (int j = 0; j < dimensiey; j++) {

    bord[i][j] = new Vak(i, j);

    }
    }

    }

    public Vak[][] getSpelBord() {

    return bord;
    }
    public int getStartpositieX() {
    return startpositieX;
    }

    public void setStartpositieX(int startpositieX) {
    this.startpositieX = startpositieX;
    }

    public int getStartpositieY() {
    return startpositieY;
    }

    public void setStartpositieY(int startpositieY) {
    this.startpositieY = startpositieY;
    }

    public String toString() {
    String result = "";

    for (int y = 0; y < dimensiex ; y++) {
    for (int x = 0; x < dimensiey; x++) {
    result = result + bord[x][y].toString();
    }
    result = result + "\n";
    }

    return result;

    }
    public Vak getVak(int x, int y){
    return bord[x][y];

    }

    public boolean isVakVrij(Vak vakToCheck){

    boolean res= false;

    if (vakToCheck.toString() == "[ ]"){
    res=true;
    }
    else { res = false; }
    return res;

    }
    public boolean isGeldigeZet(Vak vakToCheck, Personage p){
    boolean res= true;

    int x = p.getVak().getX();
    int y = p.getVak().getY();
    int xv = Math.abs(x - vakToCheck.getX());
    int yv = Math.abs(y - vakToCheck.getY());

    //Verticaal
    if((yv > 1)&&(y<dimensiey-1)){
    res = false;
    }
    //Horizontaal
    if ((xv > 1 )&&(x<dimensiex-1)) {
    res = false;
    }
    //Schuin
    if (xv == 1 && yv == 1) {
    res = false;
    }
    return res;
    }



    public List<Personage> geefBeschikbareTegenstander(Personage p){
    int x = p.getVak().getX();
    int y = p.getVak().getY();

    if(bord[x+1][y].getPersonage() != null)
    tegenstanders.add(bord[x+1][y].getPersonage());

    if(bord[x-1][y].getPersonage() != null)
    tegenstanders.add(bord[x-1][y].getPersonage());

    if(bord[x][y+1].getPersonage() != null)
    tegenstanders.add(bord[x][y+1].getPersonage());

    if(bord[x][y-1].getPersonage() != null)
    tegenstanders.add(bord[x][y-1].getPersonage());

    return tegenstanders;

    }

    public void setVak(){
    this.setVak();
    }

    public int getEindpositieX() {
    return eindpositieX;
    }

    public void setEindpositieX(int eindpositieX) {
    this.eindpositieX = eindpositieX;
    }

    public int getEindpositieY() {
    return eindpositieY;
    }

    public void setEindpositieY(int eindpositieY) {
    this.eindpositieY = eindpositieY;
    }


    public Categorie getCategorie() {
    return categorie;
    }

    public void setCategorie(Categorie categorie) {
    this.categorie = categorie;
    }



    }
    no votes  

  2. #2
    Arboris's Avatar
    Registered
    29/03/10
    Location
    Temse
    Posts
    51
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    1/1
    Je hebt nog geen spelbord, maar toch is de rest van de code er al? Mooi; is een volgorde die ik nooit zou kunnen volhouden (als je iteratief werkt, kan je bv eerst ervoor zorgen dat het spelbord op zich werkt; als dat klaar is, kijken of je een manneke kan plaatsen en verplaatsen; en om af te werken dan de vijanden nog implementeren.

    Maar daar ging het hier niet over

    Probeer de volgende link eens door te pluizen
    Trail: Creating a GUI With JFC/Swing (The Java™ Tutorials)
    Voorbeeld van een schaakbord:
    Chess Application In Java Swing

    En dan gewoon, voor de sport, enkele opmerkingen:
    * package namen altijd volledig in kleine letter (geen camelcase, niet starten met hoofdletter)
    *
    Code:
    String result = "";
    
    for (int y = 0; y < dimensiex ; y++) {
    for (int x = 0; x < dimensiey; x++) {
    result = result + bord[x][y].toString();
    }
    result = result + "\n";
    StringBuffer gebruiken -> beter voor memory gebruik (niet echt nodig, wel properder). (Strings volgen niet de gebruikelijke regels voor objecten ivm memory)
    * vakToCheck.toString() == "[ ]"
    Bedoel je niet "[ ]".equals(vakToCheck.toString()) ?
    Waarom? 1. volgorde -> nullpointersafe (mss niet echt nodig, maar is een goeie gewoonte); 2. Objecten vergelijk je met .equals! (What is the difference between == and .equals() ? (all objects; java)? - Yahoo! Answers
    Not every story has explosions and car chases. That's why they have nudity and espionage.
    no votes  

  3. #3

    Registered
    31/10/07
    Posts
    11
    iTrader
    0
    Mentioned
    0 Post(s)
    ons spelbord bestaat wel al in console versie. Nu doen we gui...
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in