0

これを乗り越えるには誰かの助けが必要です。

野球のピッチを評価するプロジェクトに取り組んでいます。プログラムには、ストライク ゾーンの領域を示す 1 ~ 25 の数字で表されるグリッドがあります。次のように:

/*------------------------*
 |  1 |  2 |  3 |  4 |  5 |
 |  6 | *7 | *8 | *9 | 10 |
 | 11 |*12 |*13 |*14 | 15 |
 | 16 |*17 |*18 |*19 | 20 |
 | 21 | 22 | 23 | 24 | 25 |
 *------------------------*/

私が持っているように、7,8,9,12,13,14,17,18,18 はストライクで、1,2,3,4,5,6,10,11,15,16,20,21,22, 23、24、25はボールです。等

意図したセルと実際のセルの 2 つの数値を評価し、意図が実行から離れたセルの数を返す必要があります。

IE: セル 12 に意図されたピッチは、実際にはセル 15 にフロートし、グリッド上で 15 は 12 から 3 セル離れているため、3 を返します。さらに例を挙げれば、7 意図と 6 実際は 1 を返します。6 は 7 から 1 セルだけであるためです。 4 セル離れているため、25 actual は 4 を返します。

Java の知識を広げるための自己演習としてこれを行っていますが、自分で管理することはできません。cellIntended と cellActual の 2 つのパラメーターを評価し、このマトリックスを参照して離れたセルの数を返すメソッドが必要です。

これが質問する場所など間違っていたら申し訳ありませんが、私はそこにそれを捨てると思いました. 解決策を試みたり、相談したりしてくれた人に感謝します。ここまで読んでくださった皆さん、すごいです。ありがとうございました。

4

2 に答える 2

3

脱構築的に考えることをお勧めします。

1) 距離を決定するために使用できる上のグリッド上のポイントの表現を見つけます。(たとえば、通常、距離はどのように計算しますか? 幾何学を考えてください)

2) 数値参照 (1-25) を 1) で使用している表現に変換します。

于 2012-09-20T18:56:25.813 に答える
2

次のようなことを試してください:

int rowAim = (cellAim-1) / 5;
int colAim = (cellAim-1) % 5;
int rowHit = (cellHit-1) / 5;
int colHit = (cellHit-1) % 5;
float distance = Math.sqrt((rowAim - rowHit) * (rowAim - rowHit) + (colAim - colHit) * (colAim - colHit));

それがユークリッド距離であり、別のもの (マンハッタン距離など) を使用できます。

于 2012-09-20T18:58:23.663 に答える