예제 #1
0
 private void BtnCancel_Click(object sender, EventArgs e)
 {
     nDecision = VarDecision.None;
     this.Close();
 }
예제 #2
0
 private void btnOvR_Click(object sender, EventArgs e)
 {
     nDecision = VarDecision.OverWrite;
     this.Close();
 }
예제 #3
0
 private void btnNewV_Click(object sender, EventArgs e)
 {
     nDecision = VarDecision.New_Variatiaon;
     this.Close();
 }
예제 #4
0
 private void btnNewM_Click(object sender, EventArgs e)
 {
     nDecision = VarDecision.New_Main_Line;
     this.Close();
 }
예제 #5
0
        public bool addMove(Point p)
        {
            //先寻找本来有没有这步棋
            if (presentMove == null)
            {
                mainvariation.movelist.Clear();
                addToVariation(p);
                return(true);
            }
            int index = presentMove.origin.movelist.IndexOf(presentMove);

            if (index == presentMove.origin.movelist.Count - 1)
            {
                addToVariation(p);
            }
            else
            {
                Move next = presentMove.origin.movelist[index + 1];
                if (next.getP() == p)
                {
                    presentMove = presentMove.origin.movelist[index + 1];
                    return(true);
                }
                else if (next.hasvia)
                {
                    foreach (Variation v in next.varList)
                    {
                        if (v.movelist[0].getP() == p)
                        {
                            presentMove = v.movelist[0];
                            return(true);
                        }
                    }
                }
                VarDecision decision = VarDecision.None;
                VarDecide   dlg      = new VarDecide();
                string      s        = next.movetostring();
                if (next.turnCount % 2 == 1)
                {
                    s = Convert.ToString((next.turnCount + 1) / 2) + "..." + s;
                }
                dlg.listBox1.Items.Add(s);
                if (next.hasvia)
                {
                    foreach (Variation v in next.varList)
                    {
                        dlg.listBox1.Items.Add(v.varToString());
                    }
                }
                dlg.ShowDialog();
                decision = dlg.nDecision;
                switch (decision)
                {
                case VarDecision.OverWrite:
                    overwrite(p);
                    break;

                case VarDecision.New_Variatiaon:
                    newVariation(p);
                    break;

                case VarDecision.New_Main_Line:
                    mainVariation(p);
                    break;

                case VarDecision.None:
                    return(false);
                }
            }
            return(true);
        }//返回是否成功