Imこれを解決しようとすると膨大な時間がかかります。例に従って2d配列をソートする
どのように動作すると思われますか?基本的に、ユーザーは配列の長さと幅を入力します。そして配列上のXをどこで選ぶかを選びます。基本的には、掃海艇のゲームが好きです。ここに例があります!
Example #1
Input
1. 3 //length
2. 5 //width
3. {1}
4. {1}
Return
{{X, 1, 2},
{1, 2, 3},
{2, 3, 4},
{3, 4, 5},
{4, 5, 6}}
Example #2
1. 5
2. 7
3. {2, 4}
4. {3, 7}
Return
{{3, 2, 3, 4, 5}
{2, 1, 2, 3, 4}
{1, X, 1, 2, 3}
{2, 1, 2, 3 ,4}
{3, 2, 3, 2, 3}
{4, 3, 2, 1, 2}
{3, 2, 1, X ,1}}
EDIT: More easy example
input 3 length
input 3 width
cordinnates {1,1}
Return
{{X , 1 , 2}
{1 , 2 , 3}
{2 , 3 , 4}}
EDIT:2つのブロック間の距離は(対角方向に動く2の距離従って考えられる) それらの水平及び垂直距離の和です。
これは私のコードです!私は各数字のXまでの距離を計算する方法を理解できません!ヘルプ/ヒント?
public static int[][] getMapGrid(int cityLength, int cityWidth, int XCoordinates, int YCoordinates)
{
int contador = 0;
bool vira = false;
int[,] city = new int[cityLength,cityWidth];
Console.WriteLine(city.Length);
contador = cityWidth;
city[XCoordinates, YCoordinates] = X;
for (int a = 0; a < cityLength; a++)
{
for (int b = 0; b < cityWidth; b++)
{
if (XCoordinates != b && YCoordinates != a)
{
if (vira != true)
{
city[a, b] = contador;
contador--;
}
else
{
contador++;
city[a, b] = contador;
}
}
else
{
vira = true;
}
Console.Write(city[a, b]);
}
Console.WriteLine();
}
Console.ReadLine();
return null;
}
どのように距離を定義していますか? – itsme86
私は本当にそれを定義する場所を知っていません...本当にどのように知っている! –
さて、あなたはXまでの距離を求めています。それは、仮想的な距離か、Xに到達するためにジャンプする必要があるセルの数ですか?そしてそれが細胞の数であれば、斜めジャンプが許されますか?誰かがあなたを助ける前にこれを理解する必要があります。 – itsme86