C 實現連連看功能 推薦

2022-09-26 04:12:06 字數 2618 閱讀 8377

本文是利用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 判定第一行第二列的字元與第三行第四列的字元是相同的 判定爭取則相應位置的字元消失,如判斷錯誤給出相應...