如何使用C#实现数字华容道游戏(云服务器、云主机、高防IP、高防服务器、香港服务器、美国服务器,开发技术)

时间:2024-05-03 18:08:38 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

具体内容如下

如何使用C#实现数字华容道游戏

代码如下:

usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespaceWindowsFormsApp6{undefinedpublicpartialclassForm1:Form{undefinedpublicForm1(){undefinedInitializeComponent();}constintN=4;Button[,]buttons=newButton[N,N];privatevoidForm1_Load(objectsender,EventArgse){undefined//产生所有按钮GenerateAllButtons();}privatevoidbutton1_Click(objectsender,EventArgse){undefinedShuffle();}//打乱顺序voidShuffle(){undefined//多次随机交换两个按钮Randomrnd=newRandom();for(inti=0;i<100;i++){undefinedinta=rnd.Next(N);intb=rnd.Next(N);intc=rnd.Next(N);intd=rnd.Next(N);Swap(buttons[a,b],buttons[c,d]);}}//生成所有按钮voidGenerateAllButtons(){undefinedintx0=100,y0=10,w=45,d=50;for(intr=0;r<N;r++)for(intc=0;c<N;c++){undefinedintnum=r*N+c;Buttonbtn=newButton();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;//这个数据用来表示它所在的行列位置//注册事件btn.Click+=newEventHandler(btn_Click);buttons[r,c]=btn;this.Controls.Add(btn);}buttons[N-1,N-1].Visible=false;//最后一个不可见}//交换两个按钮voidSwap(Buttonbtna,Buttonbtnb){undefinedstringt=btna.Text;btna.Text=btnb.Text;btnb.Text=t;boolv=btna.Visible;btna.Visible=btnb.Visible;btnb.Visible=v;}//按钮点击事件处理voidbtn_Click(objectsender,EventArgse){undefinedButtonbtn=senderasButton;//当前点中按钮Buttonblank=FindHiddenButton();//空白按钮//判断与空白按钮是否相邻,如果是,交换if(IsNeighbor(btn,blank)){undefinedSwap(btn,blank);blank.Focus();}//判断是否完成了if(ResultIsOk()){undefinedMessageBox.Show("ok");}}//查找要隐藏的按钮ButtonFindHiddenButton(){undefinedfor(intr=0;r<N;r++)for(intc=0;c<N;c++){undefinedif(!buttons[r,c].Visible){undefinedreturnbuttons[r,c];}}returnnull;}//判断是否相邻boolIsNeighbor(ButtonbtnA,ButtonbtnB){undefinedinta=(int)btnA.Tag;//Tag中记录是行列位置intb=(int)btnB.Tag;intr1=a/N,c1=a%N;intr2=b/N,c2=b%N;if(r1==r2&&(c1==c2-1||c1==c2+1)//左右相邻||c1==c2&&(r1==r2-1||r1==r2+1))returntrue;returnfalse;}//检查是否完成boolResultIsOk(){undefinedfor(intr=0;r<N;r++)for(intc=0;c<N;c++){undefinedif(buttons[r,c].Text!=(r*N+c+1).ToString()){undefinedreturnfalse;}}returntrue;}}}
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:如何使用C#实现数字华容道游戏的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:C++类与对象的示例分析下一篇:

18 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18