2
私はYouTubeのビデオに従っており、私は理解できないコードの一部があります。あなたが私を助けてくれることを願っています。スネークゲームの描画配列機能
配列はヘビの体の配列です。
Public void Draw()
{
for (int i = Body.length - 1; i > 0; i- -)
Body[i] = Body[i - 1];
}
このコードは何をしますか?
これは逆です。 「Body [i] = Body [i-1]」は、Body [99]をBody [100]に割り当て、次のステップでBody [98]をBody [99]などに割り当てることを意味します。あなたの答えでは、** for forループ**のポイントも見落としてしまいました。この例ではあなたの例はあまり適用されず、最終的な結論は無効になります(「配列全体がBody [0]の初期値で上書きされるまで)コードはすべての点を1つのインデックスで正しくシフトしていますが、すべて同じ値を上書きしているわけではありません) – Flater
@Flater「Body [1]をBody [0]に割り当てる」「Body [1] 0]」となる。また、「配列全体がBody [0]の初期値でオーバーライドされるまでの結論」は、順序が逆転した場合に起こることになります。以前の修正を念頭に置いてお読みください。明確にするために編集されました。誤解をおかけして申し訳ありません。 – Neil
** forループが元に戻されなかった場合、何が起こるかについて答えるのはなぜですか?問題はOPのコードスニペットが達成するものであり、わずかに異なるコードスニペットが達成するものではありません。この特定の場合、操作の順序は、通常のforループが無意味な点にとって重要です。 – Flater