最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實現(xiàn)數(shù)字華容道游戲

 更新時間:2022年02月17日 16:14:15   作者:____-7  
這篇文章主要為大家詳細介紹了C#實現(xiàn)數(shù)字華容道游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C#實現(xiàn)數(shù)字華容道游戲的具體代碼,供大家參考,具體內容如下

代碼如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace WindowsFormsApp6
{undefined
? ? public partial class Form1 : Form
? ? {undefined
? ? ? ? public Form1()
? ? ? ? {undefined
? ? ? ? ? ? InitializeComponent();
? ? ? ? }


? ? ? ? const int N = 4;
? ? ? ? Button[,] buttons = new Button[N, N];


? ? ? ? private void Form1_Load(object sender, EventArgs e)
? ? ? ? {undefined
? ? ? ? ? ? //產生所有按鈕
? ? ? ? ? ? GenerateAllButtons();
? ? ? ? }


? ? ? ? private void button1_Click(object sender, EventArgs e)
? ? ? ? {undefined
? ? ? ? ? ? Shuffle();
? ? ? ? }


? ? ? ? //打亂順序
? ? ? ? void Shuffle()
? ? ? ? {undefined
? ? ? ? ? ? //多次隨機交換兩個按鈕
? ? ? ? ? ? Random rnd = new Random();
? ? ? ? ? ? for (int i=0;i<100;i++)
? ? ? ? ? ? {undefined
? ? ? ? ? ? ? ? int a = rnd.Next(N);
? ? ? ? ? ? ? ? int b = rnd.Next(N);
? ? ? ? ? ? ? ? int c = rnd.Next(N);
? ? ? ? ? ? ? ? int d = rnd.Next(N);
? ? ? ? ? ? ? ? Swap(buttons[a, b], buttons[c, d]);
? ? ? ? ? ? }
? ? ? ? }


? ? ? ? //生成所有按鈕
? ? ? ? void GenerateAllButtons()
? ? ? ? {undefined
? ? ? ? ? ? int x0 = 100, y0 = 10, w = 45, d = 50;
? ? ? ? ? ? for(int r=0;r<N;r++)
? ? ? ? ? ? ? ? for(int c = 0; c < N; c++)
? ? ? ? ? ? ? ? {undefined
? ? ? ? ? ? ? ? ? ? int num = r * N + c;
? ? ? ? ? ? ? ? ? ? Button btn = new Button();
? ? ? ? ? ? ? ? ? ? btn.Text = (num + 1).ToString();
? ? ? ? ? ? ? ? ? ? btn.Top = y0 + r * d;
? ? ? ? ? ? ? ? ? ? btn.Left = x0 + c * d;
? ? ? ? ? ? ? ? ? ? btn.Width = w;
? ? ? ? ? ? ? ? ? ? btn.Height = w;
? ? ? ? ? ? ? ? ? ? btn.Visible = true;
? ? ? ? ? ? ? ? ? ? btn.Tag = r * N + c;//這個數(shù)據用來表示它所在的行列位置
? ? ? ? ? ? ? ? ? ? //注冊事件
? ? ? ? ? ? ? ? ? ? btn.Click += new EventHandler(btn_Click);
? ? ? ? ? ? ? ? ? ? buttons[r, c] = btn;
? ? ? ? ? ? ? ? ? ? this.Controls.Add(btn);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? buttons[N - 1, N - 1].Visible = false;//最后一個不可見
? ? ? ? }


? ? ? ? //交換兩個按鈕
? ? ? ? void Swap(Button btna,Button btnb)
? ? ? ? {undefined
? ? ? ? ? ? string t = btna.Text;
? ? ? ? ? ? btna.Text = btnb.Text;
? ? ? ? ? ? btnb.Text = t;


? ? ? ? ? ? bool v = btna.Visible;
? ? ? ? ? ? btna.Visible = btnb.Visible;
? ? ? ? ? ? btnb.Visible = v;
? ? ? ? }


? ? ? ? //按鈕點擊事件處理
? ? ? ? void btn_Click(object sender, EventArgs e)
? ? ? ? {undefined
? ? ? ? ? ? Button btn = sender as Button;//當前點中按鈕
? ? ? ? ? ? Button blank= FindHiddenButton();//空白按鈕
? ? ? ? ? ? //判斷與空白按鈕是否相鄰,如果是,交換
? ? ? ? ? ? if (IsNeighbor(btn, blank))
? ? ? ? ? ? {undefined
? ? ? ? ? ? ? ? Swap(btn, blank);
? ? ? ? ? ? ? ? blank.Focus();
? ? ? ? ? ? }


? ? ? ? ? ? //判斷是否完成了
? ? ? ? ? ? if (ResultIsOk())
? ? ? ? ? ? {undefined
? ? ? ? ? ? ? ? MessageBox.Show("ok");
? ? ? ? ? ? }
? ? ? ? }


? ? ? ? //查找要隱藏的按鈕
? ? ? ? Button FindHiddenButton()
? ? ? ? {undefined
? ? ? ? ? ? for (int r = 0; r < N; r++)
? ? ? ? ? ? ? ? for (int c = 0; c < N; c++)
? ? ? ? ? ? ? ? {undefined
? ? ? ? ? ? ? ? ? ? if (!buttons[r, c].Visible)
? ? ? ? ? ? ? ? ? ? {undefined
? ? ? ? ? ? ? ? ? ? ? ? return buttons[r, c];
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? return null;
? ? ? ? }


? ? ? ? //判斷是否相鄰
? ? ? ? bool IsNeighbor(Button btnA, Button btnB)
? ? ? ? {undefined
? ? ? ? ? ? int a = (int)btnA.Tag; //Tag中記錄是行列位置
? ? ? ? ? ? int b = (int)btnB.Tag;
? ? ? ? ? ? int r1 = a / N, c1 = a % N;
? ? ? ? ? ? int r2 = b / N, c2 = b % N;


? ? ? ? ? ? if (r1 == r2 && (c1 == c2 - 1 || c1 == c2 + 1) //左右相鄰
? ? ? ? ? ? ? ? || c1 == c2 && (r1 == r2 - 1 || r1 == r2 + 1))
? ? ? ? ? ? ? ? return true;
? ? ? ? ? ? return false;
? ? ? ? }


? ? ? ? //檢查是否完成
? ? ? ? bool ResultIsOk()
? ? ? ? {undefined
? ? ? ? ? ? for (int r = 0; r < N; r++)
? ? ? ? ? ? ? ? for (int c = 0; c < N; c++)
? ? ? ? ? ? ? ? {undefined
? ? ? ? ? ? ? ? ? ? if (buttons[r, c].Text != (r * N + c + 1).ToString())
? ? ? ? ? ? ? ? ? ? {undefined
? ? ? ? ? ? ? ? ? ? ? ? return false;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? return true;
? ? ? ? }
? ? }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • C#中Span相關的性能優(yōu)化建議

    C#中Span相關的性能優(yōu)化建議

    Span 是C#7.2引入的一種新類型,在.NET Core 2.1運行時中受支持,Span 提供對內存連續(xù)區(qū)域的類型安全訪問,這篇文章主要給大家介紹了關于C#中Span相關的一些性能優(yōu)化建議,需要的朋友可以參考下
    2021-08-08
  • 淺析C#封裝GRPC類庫及調用簡單實例

    淺析C#封裝GRPC類庫及調用簡單實例

    這篇文章主要為大家詳細介紹了C#中封裝GRPC類庫及調用簡單實例的相關知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-04-04
  • C#寫入對象或集合類型數(shù)據到xml文件的方法

    C#寫入對象或集合類型數(shù)據到xml文件的方法

    這篇文章主要介紹了C#寫入對象或集合類型數(shù)據到xml文件的方法,涉及C#針對XML文件的相關操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • C#在驗證文件共享模式下實現(xiàn)多線程文件寫入

    C#在驗證文件共享模式下實現(xiàn)多線程文件寫入

    這篇文章主要為大家詳細介紹了C#在驗證文件共享模式下實現(xiàn)多線程文件寫入的相關知識,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下
    2024-01-01
  • C# 繪制實時折線圖,波形圖

    C# 繪制實時折線圖,波形圖

    這篇文章主要介紹了C# 繪制實時折線圖,波形圖的方法,文中示例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • C#實現(xiàn)QQ截圖功能及相關問題

    C#實現(xiàn)QQ截圖功能及相關問題

    這篇文章主要為大家詳細介紹了C#實現(xiàn)QQ截圖功能及相關問題,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • C#數(shù)據類型實現(xiàn)背包、隊列和棧

    C#數(shù)據類型實現(xiàn)背包、隊列和棧

    本文詳細講解了C#數(shù)據結構類型,并實現(xiàn)背包、隊列和棧的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#中在WebClient中使用post發(fā)送數(shù)據實現(xiàn)方法

    C#中在WebClient中使用post發(fā)送數(shù)據實現(xiàn)方法

    這篇文章主要介紹了C#中在WebClient中使用post發(fā)送數(shù)據實現(xiàn)方法,需要的朋友可以參考下
    2014-08-08
  • C#各種異常處理方式總結

    C#各種異常處理方式總結

    這篇文章介紹了C#各種異常的處理方式,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • Winform讓DataGridView左側顯示圖片

    Winform讓DataGridView左側顯示圖片

    本文主要介紹在如何讓DataGridView左側顯示圖片,這里主要講解重寫DataGridView的OnRowPostPaint方法,需要的朋友可以參考下。
    2016-05-05

最新評論

普兰店市| 金沙县| 绥化市| 日土县| 舞阳县| 湟源县| 桓仁| 萝北县| 阳东县| 安塞县| 舟山市| 太湖县| 三明市| 方山县| 宾川县| 乾安县| 沙河市| 蓝田县| 新建县| 盐池县| 南漳县| 阳泉市| 惠安县| 双牌县| 东光县| 浦东新区| 沭阳县| 唐山市| 土默特左旗| 惠安县| 大冶市| 大渡口区| 东海县| 高密市| 浙江省| 莆田市| 西充县| 吉首市| 瑞金市| 永清县| 泾源县|