mirror of
				https://github.com/lov3b/Schack.git
				synced 2025-11-04 07:00:21 +01:00 
			
		
		
		
	Nickals fix
Löste bugg där man inte kan flytta de yttersta bönderna
This commit is contained in:
		@@ -25,12 +25,13 @@ public class Pawn extends Piece {
 | 
				
			|||||||
        // Om bonden har gått en gång, får gå 1 steg, annars 2
 | 
					        // Om bonden har gått en gång, får gå 1 steg, annars 2
 | 
				
			||||||
        final int upTo = hasMoved ? 1 : 2;
 | 
					        final int upTo = hasMoved ? 1 : 2;
 | 
				
			||||||
        // Kolla om man kan gå rakt frak
 | 
					        // Kolla om man kan gå rakt frak
 | 
				
			||||||
        for (int pawnX = 1; pawnX <= upTo; pawnX++) {
 | 
					        for (int pawnDY = 1; pawnDY <= upTo; pawnDY++) {
 | 
				
			||||||
            System.out.println("this.position.x: " + this.position.x);
 | 
					            System.out.println("this.position.x: " + this.position.x);
 | 
				
			||||||
            System.out.println("calced y: " + (this.position.y + (this.isWhite ? -pawnX : pawnX)));
 | 
					            System.out.println("calced y: " + (this.position.y + (this.isWhite ? -pawnDY : pawnDY)));
 | 
				
			||||||
            Point pos = new Point(this.position.x, this.position.y + (this.isWhite ? -pawnX : pawnX));
 | 
					            Point pos = new Point(this.position.x, this.position.y + (this.isWhite ? -pawnDY : pawnDY));
 | 
				
			||||||
            boolean shouldBreak = checkMove(pos, movable, pieces);
 | 
					            boolean shouldBreak = checkMove(pos, movable, pieces);
 | 
				
			||||||
            if (shouldBreak) {
 | 
					            if (shouldBreak) {
 | 
				
			||||||
 | 
					                System.out.println("should brkje!");
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -47,10 +48,10 @@ public class Pawn extends Piece {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    // Känns som det här skulle kunnat vara i validMoves, men nu är det såhär
 | 
					    // Känns som det här skulle kunnat vara i validMoves, men nu är det såhär
 | 
				
			||||||
    private void checkAttack(Point pos, LinkedHashSet movable, Piece[][] pieces) {
 | 
					    private void checkAttack(Point pos, LinkedHashSet movable, Piece[][] pieces) {
 | 
				
			||||||
        Piece p = pieces[pos.x][pos.y];
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Ifall det är en pjäs som står här och den inte är samma färg som oss, lägg till
 | 
					        // Ifall det är en pjäs som står här och den inte är samma färg som oss, lägg till
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
 | 
					            Piece p = pieces[pos.x][pos.y];
 | 
				
			||||||
            if (p.isWhite != this.isWhite) {
 | 
					            if (p.isWhite != this.isWhite) {
 | 
				
			||||||
                movable.add(pos);
 | 
					                movable.add(pos);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@@ -60,6 +61,9 @@ public class Pawn extends Piece {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    protected boolean checkMove(Point pos, LinkedHashSet movable, Piece[][] pieces) {
 | 
					    protected boolean checkMove(Point pos, LinkedHashSet movable, Piece[][] pieces) {
 | 
				
			||||||
 | 
					        if (pos.x < 0 || pos.x > 7 || pos.y < 0 || pos.y > 7) {
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        // Instead of checking index and null, try-catch
 | 
					        // Instead of checking index and null, try-catch
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            // Ifall vi kollar utanför brädet kommer detta att faila
 | 
					            // Ifall vi kollar utanför brädet kommer detta att faila
 | 
				
			||||||
@@ -82,6 +86,7 @@ public class Pawn extends Piece {
 | 
				
			|||||||
            movable.add(pos);
 | 
					            movable.add(pos);
 | 
				
			||||||
        } catch (IndexOutOfBoundsException ioobe) {
 | 
					        } catch (IndexOutOfBoundsException ioobe) {
 | 
				
			||||||
            // This means that the player is at the edge
 | 
					            // This means that the player is at the edge
 | 
				
			||||||
 | 
					            System.out.println(pos);
 | 
				
			||||||
        } catch (Exception e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
            // For good meassure
 | 
					            // For good meassure
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,16 +1,14 @@
 | 
				
			|||||||
package schack;
 | 
					package schack;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.awt.Component;
 | 
					 | 
				
			||||||
import java.awt.Graphics2D;
 | 
					import java.awt.Graphics2D;
 | 
				
			||||||
import java.awt.Point;
 | 
					import java.awt.Point;
 | 
				
			||||||
import java.awt.image.BufferedImage;
 | 
					import java.awt.image.BufferedImage;
 | 
				
			||||||
import java.awt.image.ImageObserver;
 | 
					 | 
				
			||||||
import java.io.IOException;
 | 
					import java.io.IOException;
 | 
				
			||||||
import java.io.InputStream;
 | 
					import java.io.InputStream;
 | 
				
			||||||
import java.util.LinkedHashSet;
 | 
					import java.util.LinkedHashSet;
 | 
				
			||||||
import javax.imageio.ImageIO;
 | 
					import javax.imageio.ImageIO;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public abstract class Piece extends Component {
 | 
					public abstract class Piece {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public Point position;
 | 
					    public Point position;
 | 
				
			||||||
    public boolean isWhite;
 | 
					    public boolean isWhite;
 | 
				
			||||||
@@ -44,7 +42,7 @@ public abstract class Piece extends Component {
 | 
				
			|||||||
                icon,
 | 
					                icon,
 | 
				
			||||||
                position.x * Board.SIZE_OF_TILE,
 | 
					                position.x * Board.SIZE_OF_TILE,
 | 
				
			||||||
                position.y * Board.SIZE_OF_TILE,
 | 
					                position.y * Board.SIZE_OF_TILE,
 | 
				
			||||||
                (ImageObserver) this
 | 
					                null
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user