チェスのビショップで有効な移動が行われているかどうかを効率的かつきれいに判断する方法を考えようとしています。チェスのビショップのための規則の実装
片がSRCX、DSTXにsrcY、DSTYこれは私のアイデアの1の一部であるから移動されます
:
if(srcX < dstX && srcY < dstY) {
// Moving towards the top right of the board
// Determine the decrease in X coordinate
int deltaX = dstX-srcX;
// If the move is valid, the Y coordinate will have decreased by the same number as X
int validY = dstY-deltaX;
if(validY == srcY) {
validMove = true;
}
}
ためにそれをやって、少し長い息切れになるだろうこれまでのコーナー..誰もより良い方法を考えることができますか?
'srcx-dstx'と' srcy-dsty'の絶対値を比較してはいけませんか? – Maxpm
すべては座標系に依存しますが、はい:P – Andrew
座標系には全く依存しません。ベクトルのx成分とy成分の大きさを比較しています。 – aaronfarr