本文整理汇总了C#中Move.gettoX方法的典型用法代码示例。如果您正苦于以下问题:C# Move.gettoX方法的具体用法?C# Move.gettoX怎么用?C# Move.gettoX使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Move
的用法示例。
在下文中一共展示了Move.gettoX方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: isValidMove
//Kollar om ett drag är tillåtet för en springare
public override Boolean isValidMove(Move move)
{
if(Math.Abs(move.gettoX() - move.getfromX()) == Math.Abs(move.gettoY() - move.getfromY()))
{
return true;
}else if (move.gettoX() - move.getfromX() == move.getfromY() - move.gettoY())
{
return true;
}
return false;
}
示例2: isValidMove
//Kollar om draget är godkänt för en häst
public override Boolean isValidMove(Move move)
{
if(move.getfromY() - move.gettoY() == 2 || move.getfromY() - move.gettoY() == -2)
{
if(move.getfromX() - move.gettoX() == 1 || move.getfromX() - move.gettoX() == -1)
{
return true;
}
}
if (move.getfromX() - move.gettoX() == 2 || move.getfromX() - move.gettoX() == -2)
{
if (move.getfromY() - move.gettoY() == 1 || move.getfromY() - move.gettoY() == -1)
{
return true;
}
}
return false;
}
示例3: isValidMove
//Kollar om ett drag är godkänt för en kung
public override Boolean isValidMove(Move move)
{
if (move.gettoY() - move.getfromY() == 1 && (move.gettoX() - move.getfromX() == 1 ||
move.gettoX() - move.getfromX() == -1 || move.gettoX() == move.getfromX()))
{
return true;
}
else if (move.gettoY() - move.getfromY() == -1 && (move.gettoX() - move.getfromX() == 1 ||
move.gettoX() - move.getfromX() == -1 || move.gettoX() == move.getfromX()))
{
return true;
}
else if ((move.gettoX() - move.getfromX() == 1 || move.gettoX() - move.getfromX() == -1) &&
(move.gettoY() - move.getfromY() == 0 ))
{
return true;
}
else
{
return false;
}
}
示例4: checkDiagonal
//Kollar om ett diagonalt drag är godkänt
public bool checkDiagonal(Move move, ChessPiece[,] currentBoard)
{
if (move.getfromX() < move.gettoX() && move.getfromY() < move.gettoY()) //x och y ökar
{
int y = move.getfromY() + 1;
for (int x = move.getfromX() + 1; x <= move.gettoX(); x++)
{
if (y < 8)
{
if (currentBoard[x, y] != null) //om någon pjäs står i vägen
{
if (x == move.gettoX() && y == move.gettoY()) //pjäsen har nått sitt mål
{
if (board.squareStatus(move, currentBoard) == 2)//Pjäsen har eliminerat en motståndare
{
return true;
}
}
return false;
}
}
y++;
}
return true;
}
if (move.getfromX() > move.gettoX() && move.getfromY() > move.gettoY()) //x och y minskar
{
int y = move.getfromY() - 1;
for (int x = move.getfromX() - 1; x >= move.gettoX(); x--)
{
if (y < 8)
{
if (currentBoard[x, y] != null)//om någon pjäs står i vägen
{
if (x == move.gettoX() && y == move.gettoY()) //pjäsen har nått sitt mål
{
if (board.squareStatus(move, currentBoard) == 2)//Pjäsen har eliminerat en motståndare
{
return true;
}
}
return false;
}
}
y--;
}
return true;
}
if (move.getfromX() < move.gettoX() && move.getfromY() > move.gettoY()) //x ökar, y minskar
{
int y = move.getfromY() - 1;
for (int x = move.getfromX() + 1; x <= move.gettoX(); x++)
{
if (y < 8)
{
if (currentBoard[x, y] != null)//om någon pjäs står i vägen
{
if (x == move.gettoX() && y == move.gettoY()) //pjäsen har nått sitt mål
{
if (board.squareStatus(move, currentBoard) == 2)//Pjäsen har eliminerat en motståndare
{
return true;
}
}
return false;
}
}
y--;
}
return true;
}
if (move.getfromX() > move.gettoX() && move.getfromY() < move.gettoY()) //x minskar, y ökar, alltid här
{
int y = move.getfromY() + 1;
for (int x = move.getfromX() - 1; x >= move.gettoX(); x--)
{
if (y < 8)
{
if (currentBoard[x, y] != null)//om någon pjäs står i vägen
{
if (x == move.gettoX() && y == move.gettoY()) //pjäsen har nått sitt mål
{
if (board.squareStatus(move, currentBoard) == 2)//Pjäsen har eliminerat en motståndare
{
return true;
}
}
return false;
}
}
y++;
}
return true;
//.........这里部分代码省略.........
示例5: isLeagalMove
//Kollar om draget är tillåtet enligt reglerna
public bool isLeagalMove(Move move, ChessPiece[,] currentBoard)
{
ChessPiece current = currentBoard[move.getfromX(), move.getfromY()];
if (current is Horse)
{
if (board.squareStatus(move, currentBoard) == 1)//En av spelarens egna pjäser står i vägen
{
return false;
}
return true;
}
else if (current is Farmer)
{
if ((move.getfromX() != move.gettoX() && board.squareStatus(move, currentBoard) == 2) ||
(move.gettoX() == move.getfromX() && board.squareStatus(move, currentBoard) == 3))
//bonden har tagit en enemy på sidan eller gått rak fram och inte träffat på ngn pjäs
{
return true;
}
return false;
}
else
{
if (move.isHorizontal() == true)
{
return checkHorizontal(move, currentBoard);
}
if (move.isVertical() == true)
{
return checkVertical(move, currentBoard);
}
if (move.isDiagonal() == true)
{
return checkDiagonal(move, currentBoard);
}
return false;
}
}
示例6: isCheck
//kollar om kungen står i check
public bool isCheck(Move move, String gamestatus)
{
ChessPiece[,] temp = board.getCopy();//kopierar bordet
//Uppdatera temporärt bord, som det kommer se ut om movet skulle gå igenom:
temp[move.gettoX(), move.gettoY()] = temp[move.getfromX(), move.getfromY()];
temp[move.getfromX(), move.getfromY()] = null;
//Hämta kungens position
ChessPiece king = board.getKingFromBoard(temp, gamestatus);
//loopa över nya brädet:
for (int x = 0; x <= 7; x++)
{
for (int y = 0; y <= 7; y++)
{
//om vi hittar en pjäs:
if (temp[x, y] != null)
{
ChessPiece temp2 = temp[x, y];
//Om det är motståndarens pjäs
if (temp2.Color != gamestatus)
{
Move checkMove = new Move(x, y, king.posX, king.posY);//move tar motståndarens position mot spelarens egen kung
if (temp2.isValidMove(checkMove) && isLeagalMove(checkMove, temp))//om det går igenom har man satt sin egen kung i shack
{
return true;
}
}
}
}
}
return false;
}
示例7: checkHorizontal
//Kollar om ett horisontellt drag är tillåtet
public bool checkHorizontal(Move move, ChessPiece[,] currentBoard)
{
if (move.getfromX() < move.gettoX())
{
for (int x = move.getfromX() + 1; x <= move.gettoX(); x++)
{
if (currentBoard[x, move.getfromY()] != null)
{
if (x == move.gettoX() && board.squareStatus(move, currentBoard) != 1)
{
return true;
}
return false;
}
}
return true;
}
if (move.getfromX() > move.gettoX())
{
for (int x = move.getfromX() - 1; x >= move.gettoX(); x--)
{
if (currentBoard[x, move.getfromY()] != null)
{
if (x == move.gettoX() && board.squareStatus(move, currentBoard) != 1)
{
return true;
}
return false;
}
}
return true;
}
return false;
}
示例8: updateTable
//Updaterar brädet (arrayen) efter att ett drag genomförts
public void updateTable(Move move)
{
board[move.gettoX(), move.gettoY()] = board[move.getfromX(), move.getfromY()];
board[move.getfromX(), move.getfromY()] = null;
board[move.gettoX(), move.gettoY()].posX = move.gettoX();
board[move.gettoX(), move.gettoY()].posY = move.gettoY();
}
示例9: squareStatus
//1. Egen pjäs
//2. Motståndares pjäs
//3. Tom ruta
public int squareStatus(Move move, ChessPiece[,] currentBoard)
{
if (currentBoard[move.gettoX(), move.gettoY()] != null)
{
ChessPiece p1 = currentBoard[move.getfromX(), move.getfromY()];
ChessPiece p2 = currentBoard[move.gettoX(), move.gettoY()];
if (p1.Color == p2.Color)
{
return 1;
}
else
{
return 2;
}
}
return 3;
}