diff --git a/core/src/ru/dvimer/lesson/Figurs/Bishop.java b/core/src/ru/dvimer/lesson/Figurs/Bishop.java new file mode 100644 index 0000000..837a751 --- /dev/null +++ b/core/src/ru/dvimer/lesson/Figurs/Bishop.java @@ -0,0 +1,32 @@ + +package ru.dvimer.lesson.Figurs; + +/** + * Created by Алексей on 23.01.2016. + */ +public class Bishop extends Figure { + + public Bishop(int x, int y) { + super(x, y); + } + + + + @Override + public boolean proverka(int x, int y) { + if (y - this.y == x - this.x || -(y - this.y) == (x - this.x)){ + return true; + } + return false; + } + + @Override + public void setPosition(int x, int y) { + if (y - this.y == x - this.x || -(y - this.y) == (x - this.x)) { + this.y = y; + this.x = x; + } + } + + +} diff --git a/core/src/ru/dvimer/lesson/Figurs/Figure.java b/core/src/ru/dvimer/lesson/Figurs/Figure.java index 9c1f5d8..3399421 100644 --- a/core/src/ru/dvimer/lesson/Figurs/Figure.java +++ b/core/src/ru/dvimer/lesson/Figurs/Figure.java @@ -1,5 +1,7 @@ package ru.dvimer.lesson.Figurs; +import java.util.ArrayList; + /** * Created by Алексей on 23.01.2016. */ @@ -7,7 +9,8 @@ public abstract class Figure { protected int x; protected int y; - + protected ArrayList keyX = new ArrayList(); + protected ArrayList keyY = new ArrayList(); public Figure() { } @@ -17,6 +20,13 @@ public Figure(int x, int y) { this.y = y; } + public ArrayList getKeyX() { + return keyX; + } + + public ArrayList getKeyY() { + return keyY; + } public int getX() { @@ -35,18 +45,25 @@ public void setY(int y) { this.y = y; } - -// public void setPosition(int x, int y) { -// if (y - this.y == 1 && x-this.x == 1) { -// this.y = y++; -// this.x = x++; -// } -// } -// - + public void light() { + for (int i = 0; i < 8; i++) { + for (int j = 0; j < 8; j++) { + if (proverka(i, j)) { + keyX.add(i); + keyY.add(j); + } + } + } + } + public void resetLight() { + keyX.clear(); + keyY.clear(); + } public abstract void setPosition(int x, int y); + public abstract boolean proverka(int x, int y); + } diff --git a/core/src/ru/dvimer/lesson/Figurs/Horse.java b/core/src/ru/dvimer/lesson/Figurs/Horse.java deleted file mode 100644 index 1fddb3b..0000000 --- a/core/src/ru/dvimer/lesson/Figurs/Horse.java +++ /dev/null @@ -1,26 +0,0 @@ - -package ru.dvimer.lesson.Figurs; -/** - * Created by Алексей on 23.01.2016. - */ -public class Horse extends Figure { - - public Horse(int x, int y) { - super(x, y); - } - - @Override - public void setPosition(int x, int y) { - if (y - this.y == 2 && x - this.x == 1 || - y - this.y == 2 && x - this.x == -1 || - y - this.y == -2 && x - this.x == -1 || - y - this.y == -2 && x - this.x == 1 || - y - this.y == 1 && x - this.x == 2 || - y - this.y == 1 && x - this.x == -2 || - y - this.y == -1 && x - this.x == 2 || - y - this.y == -1 && x - this.x == -2) { - this.y = y; - this.x = x; - } - } -} diff --git a/core/src/ru/dvimer/lesson/Figurs/King.java b/core/src/ru/dvimer/lesson/Figurs/King.java new file mode 100644 index 0000000..6c5ca9a --- /dev/null +++ b/core/src/ru/dvimer/lesson/Figurs/King.java @@ -0,0 +1,33 @@ +package ru.dvimer.lesson.Figurs; + +/** + * Created by Алексей on 23.01.2016. + */ +public class King extends Figure { + + + public King(int x, int y) { + super(x, y); + + } + + + @Override + public boolean proverka(int x, int y) { + if (Math.abs(y-this.y) == 1&& Math.abs(x - this.x) == 0|| Math.abs(y-this.y) == 0&& Math.abs(x - this.x) == 1||Math.abs(y-this.y) == 1 && Math.abs(x - this.x) == 1){ + return true; + } + return false; + } + + @Override + public void setPosition(int x, int y) { + if (Math.abs(y-this.y) == 1&& Math.abs(x - this.x) == 0|| Math.abs(y-this.y) == 0&& Math.abs(x - this.x) == 1||Math.abs(y-this.y) == 1 && Math.abs(x - this.x) == 1){ + this.y = y; + this.x = x; + } + } + + + +} diff --git a/core/src/ru/dvimer/lesson/Figurs/Knight.java b/core/src/ru/dvimer/lesson/Figurs/Knight.java new file mode 100644 index 0000000..e9db3cb --- /dev/null +++ b/core/src/ru/dvimer/lesson/Figurs/Knight.java @@ -0,0 +1,30 @@ + +package ru.dvimer.lesson.Figurs; +/** + * Created by Алексей on 23.01.2016. + */ +public class Knight extends Figure { + + public Knight(int x, int y) { + super(x, y); + } + + + @Override + public boolean proverka(int x, int y) { + if (Math.abs(y-this.y) == 2&& Math.abs(x - this.x) == 1|| Math.abs(y-this.y) == 1&& Math.abs(x - this.x) == 2){ + return true; + } + return false; + } + + @Override + public void setPosition(int x, int y) { + if (Math.abs(y-this.y) == 2&& Math.abs(x - this.x) == 1|| Math.abs(y-this.y) == 1&& Math.abs(x - this.x) == 2){ + this.y = y; + this.x = x; + } + } + + +} diff --git a/core/src/ru/dvimer/lesson/Figurs/Pawn.java b/core/src/ru/dvimer/lesson/Figurs/Pawn.java new file mode 100644 index 0000000..50f7736 --- /dev/null +++ b/core/src/ru/dvimer/lesson/Figurs/Pawn.java @@ -0,0 +1,30 @@ +package ru.dvimer.lesson.Figurs; + +/** + * Created by Алексей on 23.01.2016. + */ +public class Pawn extends Figure { + + public Pawn(int x, int y) { + super(x, y); + } + + + @Override + public boolean proverka(int x, int y) { + if (y - this.y == 1 && x - this.x == 0 || y - this.y == 2 && x - this.x == 0 && this.y < 1){ + return true; + } + return false; + } + + @Override + public void setPosition(int x, int y) { + if (y - this.y == 1 && x - this.x == 0 || y - this.y == 2 && x - this.x == 0 && this.y < 1) { + + this.y = y; + } + } + + +} diff --git a/core/src/ru/dvimer/lesson/Figurs/Queen.java b/core/src/ru/dvimer/lesson/Figurs/Queen.java new file mode 100644 index 0000000..2efa7a7 --- /dev/null +++ b/core/src/ru/dvimer/lesson/Figurs/Queen.java @@ -0,0 +1,31 @@ + +package ru.dvimer.lesson.Figurs; +/** + * Created by Алексей on 23.01.2016. + */ +public class Queen extends Figure { + + public Queen(int x, int y) { + super(x, y); + } + + + @Override + public boolean proverka(int x, int y) { + if (Math.abs(y-this.y) <=8&& x - this.x == 0|| y-this.y == 0&& Math.abs(x - this.x) <=8 ||y - this.y == x - this.x || -(y - this.y) == (x - this.x)){ + return true; + } + return false; + } + + @Override + public void setPosition(int x, int y) { + if (Math.abs(y-this.y) <=8&& x - this.x == 0|| y-this.y == 0&& Math.abs(x - this.x) <=8 ||y - this.y == x - this.x || -(y - this.y) == (x - this.x) ){ + this.y = y; + this.x = x; + } + + } + + +} diff --git a/core/src/ru/dvimer/lesson/Figurs/Rook.java b/core/src/ru/dvimer/lesson/Figurs/Rook.java index 0b139c3..ef249ed 100644 --- a/core/src/ru/dvimer/lesson/Figurs/Rook.java +++ b/core/src/ru/dvimer/lesson/Figurs/Rook.java @@ -1,20 +1,29 @@ package ru.dvimer.lesson.Figurs; +import java.util.ArrayList; + /** * Created by Алексей on 23.01.2016. */ public class Rook extends Figure { - public Rook(int x, int y) { super(x, y); } + @Override + public boolean proverka(int x, int y) { + if (Math.abs(y-this.y) <= 8&& x - this.x == 0|| y-this.y == 0&& Math.abs(x - this.x) <=8 ){ + return true; + } + return false; + } + @Override public void setPosition(int x, int y) { - if (y - this.y == x - this.x || -(y - this.y) == (x - this.x)) { + if (Math.abs(y-this.y) <= 8&& x - this.x == 0|| y-this.y == 0&& Math.abs(x - this.x) <=8 ){ this.y = y; this.x = x; } diff --git a/core/src/ru/dvimer/lesson/GameClass.java b/core/src/ru/dvimer/lesson/GameClass.java index 7bed856..c7d01d8 100644 --- a/core/src/ru/dvimer/lesson/GameClass.java +++ b/core/src/ru/dvimer/lesson/GameClass.java @@ -6,18 +6,18 @@ import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.SpriteBatch; -import ru.dvimer.lesson.Figurs.Figure; -import ru.dvimer.lesson.Figurs.Rook; +import ru.dvimer.lesson.Figurs.*; public class GameClass extends ApplicationAdapter { SpriteBatch batch; Texture pole; Texture smile; Texture smileEnd; + Texture lightField; - Figure[] white = new Figure[8]; + Figure[] white = new Figure[6]; int mouseX; @@ -35,10 +35,18 @@ public void create() { pole = new Texture("pole.png"); smile = new Texture("smile.png"); smileEnd = new Texture("smileEnd.png"); - - for (int i = 0; i < 8; i++) { - white[i] = new Rook(i, 0); - } + lightField = new Texture("allocation.png"); +// +// for (int i = 0; i < 8; i++) { +// white[i] = new Queen(i, 0); +// } + + white[0] = new King(1,0); + white[1] = new Queen(2,0); + white[2] = new Rook(3,0); + white[3] = new Knight(4,0); + white[4] = new Bishop(5,0); + white[5] = new Pawn(6,0); } @Override @@ -56,19 +64,21 @@ public void render() { } } } - for (int i = 0; i < 8; i++) { + for (int i = 0; i < white.length; i++) { if (i == selectIndex) continue; batch.draw(smile, white[i].getX() * 60, white[i].getY() * 60); } if (selectIndex > -1) { - //batch.draw(smileEnd, white[selectIndex].getX() * 60, white[selectIndex].getY() * 60); + for (int i = 0; i < white[selectIndex].getKeyX().size() ; i++) { + batch.draw(lightField, white[selectIndex].getKeyX().get(i) * 60, white[selectIndex].getKeyY().get(i)* 60); + } + batch.draw(smileEnd, white[selectIndex].getX() * 60, white[selectIndex].getY() * 60); batch.draw(smile, mouseX - 30, mouseY - 30); } batch.end(); } - public void update() { mouseX = Gdx.input.getX(); mouseY = 480 - Gdx.input.getY(); @@ -78,8 +88,9 @@ public void update() { if (selectIndex == -1) { - for (int i = 0; i < 8; i++) { + for (int i = 0; i < white.length; i++) { if (white[i].getX() == mouseCellX && white[i].getY() == mouseCellY && Gdx.input.isButtonPressed(Input.Buttons.LEFT)) { + white[i].light(); selectIndex = i; break; } @@ -88,6 +99,7 @@ public void update() { if (!Gdx.input.isButtonPressed(Input.Buttons.LEFT) && selectIndex > -1) { white[selectIndex].setPosition(mouseCellX, mouseCellY); + white[selectIndex].resetLight(); selectIndex = -1; } }