重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

C#でオセロを作っているのですが、if(n==0)のところで未割り当てのローカル変数nが使用されましたとエラー表示が出てきます。どのように修正すればいいか教えてください



private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
Graphics gh = pictureBox1.CreateGraphics();
int bx, by,n;
bx = e.X / blockS;
by = e.Y / blockS;
if (boardC[bx, by] != 0)
{
MessageBox.Show("この位置に既に石が打たれています。" +
"\n重ねて、石を打つことはできません。",
"警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (e.Button == MouseButtons.Left)
{
Stone(Color.White, bx, by);
n = StoneChange(Color.White,bx,by);
}
if (n == 0) //←ここ
{
MessageBox.Show("この位置に石を打つことはできません。",
"警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
Stone(pictureBox1.BackColor, bx, by);
boardC[bx, by] = 0;
}
else
{
Stone(Color.Black, bx, by);
n = StoneChange(Color.Black, bx, by);
}
gh.Dispose();
}

}
}

A 回答 (1件)

例えば、右クリックのイベントで呼び出されると、nが宣言されたまま値が設定されないまま



if (n == 0) //←ここ

の判定されるって事があり得るとか。


> どのように修正すればいいか

宣言した際に、n=0とかって初期化しとくとか。

int bx, by,n;

int bx, by,n=0;
    • good
    • 0
この回答へのお礼

ありがとうございます
上手くいきました

お礼日時:2020/11/16 15:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!