私はいくつかの小さなことに取り組んでいます。これは私がこれまで持っていたものです。マインスイーパ(シンプル)in C#
static void izris()
{
Random bombe = new Random();
int[,] polje = new int[7, 7];
string stolpci = " ABCDEFG";
int vrstice=1;
foreach (char c in stolpci)
{
Console.Write(c);
Console.Write(" ");
}
Console.WriteLine();
for (int i = 0; i < 7; i++)
{
for (int j = 0; j < 7; j++)
{
polje[i, j] = bombe.Next(0, 2);
}
}
//izris polja
for(int i=0;i<7;i++)
{
Console.Write(vrstice);
vrstice++;
Console.Write(" ");
for (int j = 0; j < 7; j++)
{
Console.Write(polje[i,j]);
Console.Write(" ");
}
Console.WriteLine();
}
}
だから、これはあるん何か、それは今1が、それは私のものであることを意味する0から1までの乱数が含まれている7×7のフィールドを出力し、0は、それは私のものではありませんを意味します。今見てみると、列に印を付ける文字(ABCDEFG)と、行に印を付ける1-7の数字があります。今私がやりたいことは、たとえばユーザーが文字列を入力し、文字列がB4になるということです。次に、プログラムはそれをチェックして、ユーザーが選択したフィールドが鉱山(0)か爆弾(1)かどうかを確認します。もしそれが爆弾であれば、それはどれくらいの爆弾(1)が近くにあるかを言うでしょう。私はこれをどうやって行うのか分かりません。 私はA-F文字を0,6の数字に変換することを考えていたので、簡単にインデックスを付けることができましたが、わかりません。
入力が正しいかどうかを確認するためにこれを行いました。
static void vnospolja()
{
string lokacija;
string nekaj = "A";
int nekaj2 = nekaj[0] - 'A';
lokacija = Convert.ToString(Console.ReadLine());
while (lokacija.Length < 2)
{
string pravilnalokacija=lokacija.Substring(0,1);
int pravilnalokacijaint = pravilnalokacija[0];
if(pravilnalokacijaint>65 && pravilnalokacijaint<72)
{
Console.Write("input ok");
}
string drugiznak = lokacija.Substring(1, 1);
int drugiznakint = drugiznak[0];
if(drugiznakint>0 && drugiznakint<8)
{
Console.Write("input ok");
}
}
}
今、私はこれを行うだろう方法についていくつかのアイデアを必要とする、例えば、ユーザは、A4に入り、その入力は正しいです。では、実際に私の7,7欄のアロスを移動してA4を確認するにはどうしたらいいですか?私はこれを理解していない、私の友人は私の多次元分野の2番目のインデクサーについて教えてくれたが、私はヒントはない。
ので、あなたは、地雷原を作成する鉱山を移入し、画面上の結果を印刷するためのコードを書きました。次にしたいことは、ユーザーからの入力で読み込まれることです( 'Console.ReadLine')。あなたはおそらく、選択されたセルの隣人を見つけるための関数が必要になります。そして、どのセルが覆われているかを覚えておく必要があります。私たちはあなたのためにそのコードを書いてはいませんが、それを打ち、特定の問題に遭遇したら、ここに戻って何がうまくいかないか教えてください。 –
あなたのインデックスのアイデアはうまくいくでしょう。これはあなたのルックアップを容易にします。近くで爆弾を探索する場合は、隣接するセルの配列をスキャンする必要があります。最良のアプローチは、選択されたセルから開始し、あらゆる方向にスキャンを開始することです。 OOPを使用すると、ノード(グラフのようなソリューション)を作成することでこれを解決できます。各ノードがその隣接ノードを知っている場合、すべての隣接する爆弾を再帰的に見つけることは非常に簡単です。 – Tom