mooc C#推方块代码

推方块小游戏  很有意思的小游戏  mooc 有代码 我还是自己打了一遍 熟悉下C#

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Threading.Tasks;
  9 using System.Windows.Forms;
 10
 11 namespace WindowsFormsApplication4
 12 {
 13     public partial class Form1 : Form
 14     {
 15         public Form1()
 16         {
 17             InitializeComponent();
 18         }
 19         const int N = 4;
 20         Button[,] buttons = new Button[N, N];
 21         private void Form1_Load(object sender, EventArgs e)
 22         {
 23             GenerateAllButtons();//产生按钮
 24         }
 25
 26         private void button1_Click(object sender, EventArgs e)
 27         {
 28             Shuffle(); //打乱
 29         }
 30         void GenerateAllButtons()
 31         {
 32             int X = 130, Y = 50, W = 45, D = 50;
 33             for(int r=0;r<N;r++)
 34             {
 35                 for (int c = 0; c < N; c++)
 36                 {
 37                     int num = r * N + c;
 38                     Button btn = new Button();
 39                     btn.Text = (num + 1).ToString();
 40                     btn.Top = Y + r * D;
 41                     btn.Left = X + c * D;
 42                     btn.Width = W;
 43                     btn.Height = W;
 44                     btn.Visible = true;
 45                     btn.Tag = r * N + c;
 46
 47                     btn.Click += new EventHandler(btn_Click);
 48                     buttons[r, c] = btn;
 49                     this.Controls.Add(btn);
 50                 }
 51             }
 52             buttons[N - 1, N - 1].Visible = false;
 53         }
 54
 55         void Shuffle()
 56         {
 57             Random ran = new Random();
 58             for(int i=0;i <100;i++)
 59             {
 60                 int a = ran.Next(N);
 61                 int b = ran.Next(N);
 62                 int c = ran.Next(N);
 63                 int d = ran.Next(N);
 64                 swap(buttons[a, b], buttons[c, d]);
 65             }
 66         }
 67         void swap(Button a,Button b)
 68         {
 69             string t = a.Text;
 70             a.Text = b.Text;
 71             b.Text = t;
 72
 73             bool v = a.Visible;
 74             a.Visible = b.Visible;
 75             b.Visible = v;
 76         }
 77         void btn_Click(object sender, EventArgs e)
 78         {
 79             Button btn = sender as Button;
 80             Button blank = FindBlank();
 81             if (IsNear(btn, blank))
 82             {
 83                 swap(btn, blank);
 84                 blank.Focus();
 85             }
 86             if (resultIsOk())
 87             {
 88                 MessageBox.Show("congratulation!");
 89             }
 90
 91         }
 92         Button FindBlank()
 93         {
 94             for (int r = 0; r < N; r++)
 95                 for (int c = 0; c < N; c++)
 96                 {
 97                     if (!buttons[r, c].Visible)
 98                     {
 99                         return buttons[r, c];
100                     }
101                 }
102             return null;
103         }
104         bool IsNear(Button a, Button b)
105         {
106             int x = (int)a.Tag;
107             int y = (int)b.Tag;
108             if (x / N == y / N && (x % N + 1 == y % N || x % N - 1 == y % N))
109                 return true;
110             if( x % N == y % N && (x/N+1==y/N||x/N-1==y/N))
111                 return true;
112             return false;
113         }
114         bool resultIsOk()
115         {
116             for (int r = 0; r < N; r++)
117                 for (int c = 0; c < N; c++)
118                 {
119                     if (buttons[r, c].Text != (r * N + c + 1).ToString())
120                     {
121                         return false;
122                     }
123                 }
124             return true;
125         }
126     }
127 }

时间: 2024-10-12 07:35:21

mooc C#推方块代码的相关文章

远程推送代码的添加

项目一添加方式: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法 中加入要调用的推送 推送分iOS8来处理 项目二添加方式: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)laun

php 实时推送代码

网站质量不错的网站可以在百度站长平台/数据提交/sitemap栏目下看到实时推送的功能, 目前这个工具是邀请开放, 百度的实时推送的api接口可以实时推送我们新发布的文章, 保证百度在第一时间收录. 百度站长平台 http://zhanzhang.baidu.com/ 打开百度站长平台, 点开实时推送的添加新数据接口获得带token的api推送地址: http://ping.baidu.com/sitemap?site=www.yourdomain.com&resource_name=sitem

百度自动推送代码的作用

在百度的搜索资源平台下的站点支持模块中有一个连接提交,下有一段代码叫做自动推送代码,只要在这个平台下认证了你的网站就可以,将自动推送代码加进去.我在https://www.jianzhumuju.com方圆扣这个站点上做了一下尝试,看看这段代码到底有什么作用,能够起到多大的效果,下面是这段代码的截图.在加入代码的时候,百度收录这个站点页面的索引量是1123,今天我们这段自动推送的代码加上,看看在半个月之后的效果.是不是收录增加,自动推送是不是能够让我们的网址真的能够及时推送给百度,百度的收录速度

多人合作使用git,推送代码、和并分支

多人合作使用git,推送代码.和并分支 原文地址:https://www.cnblogs.com/zxlb/p/12318271.html

git使用(1)----推送代码到远程

git使用(1) 首先要明白git上有三个区域 1.工作区 2.暂存区 3.历史记录区 步骤: 1.git  init 2.配置环境(如果配置一次了以后就不用再继续配置) git  config  --global  user.name  "username" git  config  --global  user.email  "email" 3.在本地版本库设置远程版本库的别名: git  remote  add  版本库别名  <库地址> 比如:g

xcode 版本控制推送代码到远程git仓库的步骤

一 代码推送到远程git仓库 1.在git中建立一个下项目(假设项目名称为->Mygit) 2.在xocde上新建一个测试项目(假设项目名称为GitTest) 3.打开电脑终端: 1)首先利用终端命令进入xcode新建的测试项目(GitTest)的目录中 2) echo "# Mygit" >>README.md  回车 3) git init 回车 4) git add READEM.md 回车 5) git commit -m "commit init&

iOS10 远程推送代码 以及服务器端代码(.net)

// // AppDelegate.m // MyPushDemo // // Created by justapple on 16/12/25. // Copyright ? 2016年 dengqi. All rights reserved. // #import "AppDelegate.h" #import <UserNotifications/UserNotifications.h> #define IOS10_OR_LATER ([[[UIDevice curr

推送代码到GitHub上的两种方式

要想将本地Git上代码提交到GitHub可以使用两种协议进行提交,分别使用HTTPS和SSH两种协议,如下所示. 当使用HTTPS协议时,每次推送的时候都需要输入GitHub平台的用户名密码. 当使用SSH协议时,需要在本地配置一个SSH的私钥文件,并注册到GitHub平台上,这样不必每次提交时都使用用户名密码. 具体的配置可以使用一下这种方式,项目URL可以使用HTTPS协议,但是推送URL使用SSH协议并制定本地的密钥文件. 以下介绍如何生成相关的密钥. 打开PuTTYGen这个程序. 点击

简易推箱子代码

#include<stdio.h> #include<stdlib.h> int main(void) {     //用于用户输入        char sr;     //地图可以更改     char a[11][20]={       "###################",              "###################",              "###     $ $     ###&qu