界面方面实际没有什么了,只要美观、人性化就行。因为所有的逻辑都在Game类中,只要将Game作为成员变量放入窗体类中就行了。这里就将个技巧,扫雷有3个级别,根据不同的级别设置游戏的砖块和行数、列数以及地雷数,并且我们要求选中项要打勾,而其他项没勾,用傻方法也能实现。那么如果10个级别或者100个级别,那冗余的代码就更多了。
所以,先遍历级别菜单,将选中项打勾,其余都去除勾,然后根据菜单项的Tag值设置对应的级别。
- usingSystem;
- usingSystem.Collections.Generic;
- usingSystem.ComponentModel;
- usingSystem.Data;
- usingSystem.Drawing;
- usingSystem.Text;
- usingSystem.Windows.Forms;
- namespaceMineSweeper{
- publicpartialclassMainForm:Form{
- Gamegame=newGame();
- publicMainForm(){
- InitializeComponent();
- }
- privatevoidtsmiStart_Click(objectsender,EventArgse){
- }
- privatevoidMainForm_Load(objectsender,EventArgse){
- game.Init(pnlBoard,1);
- }
- privatevoidChangeLevel(objectsender,EventArgse){
- for(inti=1;i<=3;i++){
- ToolStripItem[]items=msMenu.Items.Find("tsmiLevel"+i,true);
- if(items!=null&&items.Length>0){
- ((ToolStripMenuItem)items[0]).Checked=false;
- }
- }
- ToolStripMenuItemmItem=(ToolStripMenuItem)sender;
- mItem.Checked=true;
- game.Init(pnlBoard,Convert.ToInt32(mItem.Tag));
- }
- }
- }