Я в настоящее время разрабатывает шахматную игру в Java с помощью Eclipse IDE,Закрепление Movement логики в Java
У меня есть все движение частей вниз, кроме пешки, которая является самым трудным, потому что Пешка должен быть в состоянии сделать для различных движений
Пешка должен быть в состоянии двигаться в два раза в начале, а затем только один после этого
в настоящее время я поставил пешку двигаться только два раза, но я застрял на получение остаток логики до wo гк
Я работаю с идеей, если/другое заявление
я мог бы использовать некоторую помощь в написании его
Вот код до сих пор для пешки и я включилкомментария для использования
обновления к задаче это только черная пешка не движется вправо, я был в состоянии установить белую правильный путь, но не черный, я не знаю, почему оно не работа
//Pawn Movement
private boolean isValidPawnMove(int sourceRow, int sourceColumn, int targetRow, int targetColumn) {
boolean isValid = false;
if(isTargetLocationFree()){
if(sourceColumn == targetColumn){
if( sourcePiece.getColor() == Piece.COLOR_WHITE){
// White Pawn
if(sourceRow+1 == targetRow || sourceRow == 1 && targetRow == 3){//Pawns can move to at the start then only 1 after that
isValid = true;
}else{
isValid = false;
}
}
else{
// Black Pawn
if(sourceRow-1 == targetRow || sourceRow == -1 && targetRow == -3){
isValid = true;
}else{
isValid = false;
}
}
}else{
//If you try to move left or right into a different Column
isValid = false;
}
//Take square occupied by an opponent’s piece, which is diagonally in front
}else if(isTargetLocationCaptureable()){
if(sourceColumn+1 == targetColumn || sourceColumn-1 == targetColumn){
//One column to the right or left
if( sourcePiece.getColor() == Piece.COLOR_WHITE){
//White Piece
if(sourceRow+1 == targetRow){
//Move one up
isValid = true;
}else{
//Not moving one up
isValid = false;
}
}else{
//Black Piece
if(sourceRow-1 == targetRow){
//Move one down
isValid = true;
}else{
//Not moving one down
isValid = false;
}
}
}else{
//Not one column to the left or right
isValid = false;
}
}
return isValid;
}
Спасибо за любую помощь вы можете предоставить
Я добавил это, но не было никаких изменений в движении пешки, я что-то упустил? – ClarkPamler93
Началось ли индексирование строк с 0 или 1? Этот код предполагает 1. Вы можете проверить, как мой шахматный движок делает пешку, перемещая генерацию на https://github.com/BarrySW19/CalculonX/tree/master/src/main/java/nl/zoidberg/calculon/engine – BarrySW19
Был в состоянии его исправить, просто нужно было настроить его, чтобы начать с 0, а не 1 спасибо за помощь, только проблема в том, что он не относится к черной пешке? – ClarkPamler93