本篇繼續上篇的未完部分,上篇介紹了軟體的背景,本篇主要介紹軟體的設計,包括設計思路、界面設計、邏輯設計等,
2. 軟體設計
(1)設計思路
本文所述軟體是用于水平等級評估的,既然是評估用的,那么神經網路模型就得是標準化的,如果找不到模型的話,是不能也不允許從空模型開始創建和初始化神經網路的,而且神經網路在使用程序中不能進行自學習和進化,同時,加載不了模型的話,其它的任何操作也是不能允許的,
另外,要想開始評測,先得進行用戶登錄,即對登錄的用戶進行評測,因此,登錄操作將不能如前幾篇文章中所示那樣固定寫在代碼中,需要提供相應的界面來支持運行時登錄,相應的,還要提供新用戶注冊的途徑,
再者,還需要提供評估等級的選擇方式,而且為了降低偶然性因素的影響,一次評估不止對弈一局,因此需要提示總共要對弈幾局、已經對弈幾局以及到目前為止的評估狀況(勝率)等資訊,對應的,也需要提供途徑將評估結果告知用戶,若是還需要頒發證書的話,還得提供途徑將評估結果生成證書并列印進入后續流程,
(2)界面設計
如前幾篇文章中所介紹的一般創建MFC對話框專案,洗掉對話框上的控制元件,然后從工具箱中拖一個Picture Control控制元件到對話框上用于繪制棋盤和棋子,修改其ID為IDC_BOARD;拖一個按鈕到對話框上用于開始評測,修改其ID為IDC_BTN_START,修改其Caption為“開始評測”;再拖一個按鈕到對話框上用于開始新局,修改其ID為IDC_BTN_NEW,修改其Caption為“開始新游戲”;拖6個Static Text控制元件到對話框上,依次修改其ID為IDC_LB_LEVEL、IDC_LB_NUM_TOTAL、IDC_LB_NUM_LEFT、IDC_LB_RATIO、IDC_LB_DEPTH、IDC_LB_CONCERN,依次修改其Caption為“評估等級:”、“評估局數:”、“剩余局數:”、“勝率:”、“思維深度:”、“專注度:”;從工具箱拖一個Combo Box控制元件到對話框上用于選擇評估等級,修改其ID為IDC_LEVEL;最后拖5個Static Text控制元件到對話框上用于顯示評估局數、剩余局數、勝率、思維深度、專注度,依次修改其ID為IDC_NUM_TOTAL、IDC_NUM_LEFT、IDC_RATIO、IDC_DEPTH、IDC_CONCERN,調整各控制元件的位置和大小,如下圖所示:

在資源視圖中找到“test-->test.rc-->Dialog”,右擊之并在右鍵選單中選擇“插入Dialog”,新插入一個對話框,如下圖所示:

修改對話框的Caption為“登錄”,將“確定”按鈕的Caption改為“登錄”,將“取消”按鈕的Caption改為“取消”,從工具箱中拖一個按鈕放于兩按鈕中間,修改其ID為IDC_BTN_REGIST,修改其Caption為“注冊”;從工具箱拖兩個Static Text控制元件到對話框上,修改其ID為IDC_LB_USER、IDC_LB_PASSWORD,修改其Caption為“用戶名:”、“密碼:”;從工具箱拖兩個Edit Control控制元件到對話框上用于輸入用戶名和密碼,修改其ID為IDC_USER、IDC_PASSWORD,調整各控制元件的位置和大小、對話框大小,如下圖所示:

對于該登錄對話框,修改密碼輸入框IDC_PASSWORD的屬性Password為True,表示該對話框用于輸入密碼,不顯示明文,如下圖所示:

最后,右擊對話框,在右鍵選單中選擇“添加類”,填寫類名CLogin,并點擊完成,如下圖所示:

(3)邏輯設計
神經網路初始化:在對話框初始化時加載確定性神經網路模型,加載失敗的話彈出提示資訊并退出軟體,
正常打開軟體之后,“開始評測”按鈕是啟用的,但是“開始新游戲”按鈕是禁用的,只有開始評測之后才能通過“開始新游戲”來放棄當前局而直接新開下一局,注:點擊“開始評測”后已準備好對局,不必點擊“開始新游戲”來啟動第一句,“開始新游戲”更像是“下一局”,
開始評測:點擊“開始評測”按鈕之后,先判斷用戶是否已經登錄,若未登錄,則彈出登錄框進行登錄,在用戶已登錄的情形下點擊該按鈕時,將重新開始評測,這意味著評估局數、剩余局數等資訊將被重置,該按鈕在初始時是啟用狀態,點擊后變為禁用狀態以免誤操作中斷當前評測,在切換評估等級之后會重新變為啟用狀態以便在新的等級上重新開始評測,
開始新游戲:結束當前一局來開啟下一句,不論當前局是否已經結束,初始時為禁用狀態,在點擊“開始評測”后變為啟用狀態,在切換評估等級后又會變為禁用狀態,即“開始評測”啟用時“開始新游戲禁用”,“開始評測”禁用時“開始新游戲”啟用,另外,當評測用的所有局均結束,即評測完成之后,該按鈕將變為禁用狀態,同時啟用“開始評測”,
評估等級:初始化時添加一級至十級供選擇,隨時可切換,但評測程序中切換的話會給出提示,在用于確認修改后將放棄當前等級的評估并準備評估新的等級,初始化時默認選擇的是一級,
評估局數、剩余局數、勝率:目前暫定一次評測10局,該值可根據實際情況和要求由評測機構設定,若已經對弈結束2局,則剩余局數為8,勝率部分顯示“當前勝利局數/總局數”,若已獲勝1局,則勝率為“1/10”,
思維深度、專注度:在一次完整的評測完成之后,計算出思維深度和專注度顯示在此處,評測完成之前該處顯示為空白,該值的計算公式有待學術研究,目前僅給出粗略的資訊供大家參考,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/389280.html
標籤:其他
