本文是利用c#實現連連看的小例子,以供學習分享使用。
思路:初始化布局(橫豎十行十列,共100個單元格,每乙個格乙個按鈕,背景圖為水果,隨機生成) 。
初始化對應棋盤(用二維陣列表示【0表示空白,非0表示介面物件】)和頁面相對應,同步操作。
判斷點選的是否可以消掉**化為二維陣列【以水平方向,垂直方向,乙個拐角,兩個拐角的步驟進行判斷】)。
如可以消掉,隱藏,增加分數。
時間限制,採用倒計時方式。
涉及知識點:
執行緒:thread,後台執行時間控制【倒計時方式】。
介面閃爍:當介面中的控制項較多,且有背景圖時,介面就會出現閃爍【解決方式:1,雙緩衝方式 2. 設定控制項建立樣式,統一重新整理】。
tablelayoutpanel:表示乙個面板,它可以在乙個由行和列組成的網格中對其內容進行動態布局【新增元素,設定行列,以及樣式】。
資源檔案:resources 用於存放及其他資源。
button:flatappearance獲取用於指示選中狀態和滑鼠狀態的邊框外觀和顏色。
效果圖圖下(一)【開始,初始化後,倒計時功能,停止功能】:
效果圖(二)【時間結束】
核心**如下:
///
/// 連連看幫助類
///
public class linkhelper
///
/// 連線成功事件
///
public event eventhandler succlick;
///
/// 連線失敗事件
///
public event eventhandler failclick;
private int col = 10;
public int col
set}
private int row = 10;
public int row
set}
///
/// 嘗試連線
///
public void linkline(point first, point second)
}else }}
///
/// 是否賦值
///
///
///
public bool ischecked(point p)
return flag;
}#region 核心演算法
///
/// 判斷是否連線成功
///
/// 第乙個點選物件
/// 第二個點選物件
///
private bool checklink(point a, point b)
if (a.y == b.y && vertical(a, b))
if (onecorner(a, b))
else
}else
}else
}///
/// 水平連線
///
///
///
///
private bool horizon(point a, point b)
}return true;
}///
/// 垂直連線
///
///
///
///
private bool vertical(point a, point b)
}return true;
}///
/// 乙個拐角
///
///
///
///
private bool onecorner(point a, point b)
//判斷d點是否有元素
if (this.linkboard[d.x, d.y] == 0)
else
}///
/// 兩個拐角
///
///
///
///
private bool twocorner(point a, point b)
for (int i = 0; i < ll.count; i++)
}else if (tmpline.direct == 0)}}
return false;
}///
/// 掃瞄a與b之間的連線點組成的線
///
///
///
///
private list scan(point a, point b)
}//檢測a點,b點的右側是否能夠垂直直連
for (int i = a.y; i < col; i++)
}//檢測a點,b點的上側是否能夠水www.cppcns.com平直連
for (int j = a.x; j >= 0; j--)
}//檢測a點,b點的下側是否能夠水平直連
for (int j = a.x; j < row; j++)
}return linklist;
}#endregion
}本文位址: /ruanjian/csharp/195154.html
python連連看 Python 連連看連線演算法
功能 為連連看遊戲提供連線演算法 說明 模組中包含乙個point類,該類是遊戲的基本單元 點 該類包含屬性 x,y,value。其中x,y代表了該點的座標,value代表該點的特徵 0代表沒有被填充,1 8代表被填充為遊戲圖案,9代表被填充為牆壁 模組中還包含乙個名為points的point列表,其...
python連連看 Python 連連看連線演算法
coding utf 8 連連看連線演算法 為連連看遊戲提供連線演算法 模組中包含乙個point類,該類是遊戲的基本單元 點 該類包含屬性 x,y,value。其中x,y代表了該點的座標,value代表該點的特徵 0代表沒有被填充,1 8代表被填充為遊戲圖案,9代表被填充為牆壁 模組中還包含乙個名為...
C語言連連看
1 定義乙個矩陣,隨機產生字元布置地圖,例如下面這個4x4 的地圖。1 2 3 4 b c h c 1 c f b e 2 a e d f 3 c h a d 4 2 遊戲者通過座標 1,2 3,4 判定第一行第二列的字元與第三行第四列的字元是相同的 判定爭取則相應位置的字元消失,如判斷錯誤給出相應...