前田稔(Maeda Minoru)の超初心者のプログラム入門
![]()
![]()
short m_Ishi = 0; // 出題図の黒&白
private void OnMyMouseDown(object sender, MouseEventArgs e)
{ Point pos = new Point(e.X, e.Y);
DialogResult rc;
ClickPos(ref pos);
if (e.Button == MouseButtons.Right)
{
rc = MessageBox.Show("入力モードを終了しますか", "選択",
MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (rc == DialogResult.Yes) return;
}
Append(pos, m_Ishi);
m_Ishi = (short)(0 - m_Ishi);
}
|
CELL m_PT; // 棋譜 Tree
// m_PT に一手追加
private void Append(Point pos, short teban)
{
CELL wp;
short ishi;
if (m_PT == null) return;
ishi = teban;
if (ishi==0) ishi = 1;
if (pos.X<0 || Check(pos, ishi)>1)
{ MessageBox.Show("不正な石です");
return;
}
wp = new CELL(m_Num++); // 基本セルを生成
m_PT.car = wp;
m_PT.next = wp;
wp.level = m_PT.level;
wp.pos = pos;
wp.teban = ishi;
m_PT = wp;
upd = true;
Play(m_Top); // 出題図から現在までの手順を再現
}
|
![]()