-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfrmTestBoardEval.cs
136 lines (126 loc) · 5.48 KB
/
frmTestBoardEval.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace SrcChess {
/// <summary>Enter parameters for testing the board evaluation functions</summary>
public partial class frmTestBoardEval : Form {
/// <summary>Board evaluation utility</summary>
BoardEvaluationUtil m_boardEvalUtil;
/// <summary>Resulting search mode</summary>
SearchEngine.SearchMode m_searchMode;
//*********************************************************
//
/// <summary>
/// Form constructor
/// </summary>
//
//*********************************************************
public frmTestBoardEval() {
InitializeComponent();
}
//*********************************************************
//
/// <summary>
/// Form constructor
/// </summary>
/// <param name="boardEvalUtil"> Board evaluation utility class</param>
/// <param name="searchModeTemplate"> Search mode template</param>
//
//*********************************************************
public frmTestBoardEval(BoardEvaluationUtil boardEvalUtil, SearchEngine.SearchMode searchModeTemplate) : this() {
m_searchMode = new SearchEngine.SearchMode(boardEvalUtil.BoardEvaluators[0],
boardEvalUtil.BoardEvaluators[0],
SearchEngine.SearchMode.OptionE.UseAlphaBeta,
searchModeTemplate.m_eThreadingMode,
4,
0,
searchModeTemplate.m_eRandomMode);
foreach (IBoardEvaluation boardEval in boardEvalUtil.BoardEvaluators) {
comboBoxWhiteBEval.Items.Add(boardEval.Name);
comboBoxBlackBEval.Items.Add(boardEval.Name);
}
comboBoxWhiteBEval.SelectedIndex = 0;
comboBoxBlackBEval.SelectedIndex = (comboBoxBlackBEval.Items.Count == 0) ? 0 : 1;
m_boardEvalUtil = boardEvalUtil;
SetButtonState();
}
//*********************************************************
//
/// <summary>
/// Get the search mode
/// </summary>
//
//*********************************************************
public SearchEngine.SearchMode SearchMode {
get {
IBoardEvaluation boardEval;
boardEval = m_boardEvalUtil.FindBoardEvaluator(comboBoxWhiteBEval.SelectedItem.ToString());
if (boardEval == null) {
boardEval = m_boardEvalUtil.BoardEvaluators[0];
}
m_searchMode.m_boardEvaluationWhite = boardEval;
boardEval = m_boardEvalUtil.FindBoardEvaluator(comboBoxBlackBEval.SelectedItem.ToString());
if (boardEval == null) {
boardEval = m_boardEvalUtil.BoardEvaluators[0];
}
m_searchMode.m_boardEvaluationBlack = boardEval;
m_searchMode.m_iSearchDepth = (int)plyCount.Value;
return(m_searchMode);
}
}
//*********************************************************
//
/// <summary>
/// Get the number of games to test
/// </summary>
//
//*********************************************************
public int GameCount {
get {
return((int)gameCount.Value);
}
}
//*********************************************************
//
/// <summary>
/// Set the state of the buttons
/// </summary>
//
//*********************************************************
private void SetButtonState() {
SearchEngine.SearchMode searchMode;
if (m_boardEvalUtil != null) {
searchMode = SearchMode;
butOk.Enabled = true ; //(searchMode.m_boardEvaluationWhite != m_searchMode.m_boardEvaluationBlack);
}
}
//*********************************************************
//
/// <summary>
/// Called when the combo box selection is changed
/// </summary>
/// <param name="sender"> Sender object</param>
/// <param name="e"> Event parameter</param>
//
//*********************************************************
private void comboBoxWhiteBEval_SelectedIndexChanged(object sender, EventArgs e) {
SetButtonState();
}
//*********************************************************
//
/// <summary>
/// Called when the combo box selection is changed
/// </summary>
/// <param name="sender"> Sender object</param>
/// <param name="e"> Event parameter</param>
//
//*********************************************************
private void comboBoxBlackBEval_SelectedIndexChanged(object sender, EventArgs e) {
SetButtonState();
}
}
}