急求 怎样用WindowsForm 编写 别踩白块??

问题描述

急求 怎样用WindowsForm 编写 别踩白块??

点击下落最简单的功能就可以 ,带点注释,谢谢。。。。。。。。。

解决方案

不会贴图...
界面就是一个form里一个大的mainPanel,然后这个Panel里有4*4的16个子Panel,初始化时随机4个数分别设置每一行中随机一个panel的背景色为灰色,然后最后一行添加了点击事件,点击白块时提示失败并初始化,点击灰色块时上面三行的灰色块下移,第一行再次随机一个Panel的背景色设置成灰色,以此反复。
功能是这样的,其他的地方按照你自己的想法去改吧。

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 biecaibaikuai
{
public partial class Form1 : Form
{
#region 变量
private int firstRow;
private int secRow;
private int thrRow;
private int fourRow;
private Random rd = new Random();
#endregion

    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        init();
    }

    #region 初始化
    private void init()
    {
        // 设置所有panel背景色为白色
        foreach (Control ctl in mainPanel.Controls)
        {
            ctl.BackColor = Color.White;
        }

        firstRow = rd.Next(1, 4);// 第一行随机数
        secRow = rd.Next(1, 4);// 第二行随机数
        thrRow = rd.Next(1, 4);// 第三行随机数
        fourRow = rd.Next(1, 4);// 第四行随机数
        this.Controls.Find("fPanel" + firstRow, true)[0].BackColor = Color.Gray;// 设置第一行随机一个panel背景色为灰色
        this.Controls.Find("sPanel" + secRow, true)[0].BackColor = Color.Gray;// 设置第二行随机一个panel背景色为灰色
        this.Controls.Find("tPanel" + thrRow, true)[0].BackColor = Color.Gray;// 设置第三行随机一个panel背景色为灰色
        this.Controls.Find("foPanel" + fourRow, true)[0].BackColor = Color.Gray;// 设置第四行随机一个panel背景色为灰色
    }
    #endregion

    #region 最后一行panel点击事件处理
    private void foPanel1_Click(object sender, EventArgs e)
    {
        playGame((Panel)sender);
    }

    private void foPanel2_Click(object sender, EventArgs e)
    {
        playGame((Panel)sender);
    }

    private void foPanel3_Click(object sender, EventArgs e)
    {
        playGame((Panel)sender);
    }

    private void foPanel4_Click(object sender, EventArgs e)
    {
        playGame((Panel)sender);
    }
    #endregion

    #region 游戏逻辑处理
    /// <summary>
    /// 游戏逻辑处理
    /// </summary>
    /// <param name="pl">被点击的panel</param>
    private void playGame(Panel pl)
    {
        if (pl.BackColor != Color.Gray)// 点到白块
        {
            MessageBox.Show("失败!");
            init();// 重新初始化
        }
        else
        {
            // 清空初始化设置的panel背景色
            this.Controls.Find("fPanel" + firstRow, true)[0].BackColor = Color.White;
            this.Controls.Find("sPanel" + secRow, true)[0].BackColor = Color.White;
            this.Controls.Find("tPanel" + thrRow, true)[0].BackColor = Color.White;
            pl.BackColor = Color.White;

            // 之前的随机数按行下移
            fourRow = thrRow;
            thrRow = secRow;
            secRow = firstRow;
            // 第一行再次随机生成一个数
            firstRow = rd.Next(1, 4);
            // 再次设置panel的背景色
            this.Controls.Find("fPanel" + firstRow, true)[0].BackColor = Color.Gray;
            this.Controls.Find("sPanel" + secRow, true)[0].BackColor = Color.Gray;
            this.Controls.Find("tPanel" + thrRow, true)[0].BackColor = Color.Gray;
            this.Controls.Find("foPanel" + fourRow, true)[0].BackColor = Color.Gray;
        }
    }
    #endregion
}

}

时间: 2024-10-21 18:52:41

急求 怎样用WindowsForm 编写 别踩白块??的相关文章

急求个人用struct编写的个人网上银行系统代码

问题描述 急求个人用struct编写的个人网上银行系统代码 解决方案 解决方案二:你想干什么想做钓鱼?解决方案三:说的不明白,是整个网站的功能?

第一个libgdx程序--仿别踩白块

学libgdx有一段时间了,有一个星期了吧,边做边学,选的是别踩白块. libgdx总体思想可以用下面这张图来表示 总体可分为两层吧,入口不算,Screen+Actor. 这个很好理解啊,你去看话剧表演,得有屏幕吧,屏幕上面有英雄,有坏蛋,还有道具吧, 所以,简单来说暂且就看作两层. 下面看看具体项目: 首先跑起来是这样的: 代码是这样的: 1. 入口类 FirstGame 既然是入口,主要做一些初始化操作 public class FirstGame extends Game { privat

安卓 游戏 开发-安卓开发像别踩白块,像素鸟,2048这样的游戏需不需要用游戏引擎啊?

问题描述 安卓开发像别踩白块,像素鸟,2048这样的游戏需不需要用游戏引擎啊? 安卓初学者,只是想确定一下方向,见谅!!!开发像别踩白块,像素鸟,2048这样的2d游戏需不需要用游戏引擎? 解决方案 最好用啊,适配性强,你如果团队强大,可以自开发,像一个物理碰撞.重力系统.粒子系统等,三五个人很难一下写完善的

继承-《别踩白块》关于头文件问题

问题描述 <别踩白块>关于头文件问题 为什么Cocos2d-x3.0网上的源码都没有说明 要继承什么头文件啊 解决方案 直接下源代码看看cocos2d-x游戏源码<别踩白块儿>实现完整源码下载分享 解决方案二: 关于 别踩白块 这游戏,没有什么特殊的头文件的. 主要靠的 就是一个 自建的 块 类,

急求解决-用语言编写一个项目在vc2012下

问题描述 用语言编写一个项目在vc2012下 当创建一个项目后,打开cpp文件,会发现里面有很多已经自动有得代码,现在怎样看那些代码,以及怎样用它编一个贪吃蛇的游戏 解决方案 你要用C++写贪吃蛇的话,得先学C++.再看你是写控制台下的程序还是图形界面的程序.控制台的话纯C++就可以实现了:图形界面的话得用MFC或者Qt之类的第三方控件 解决方案二: c#的winform就可以写了,,主要是算法的问题,, 解决方案三: 我用C语言编写,创建后这是我看的视频教程中的代码,他是自动生成的,这些代码要

如何用WPF做不要踩白块游戏

问题描述 求大神指导谢谢,急急急急急急············ 解决方案 解决方案二:WPF暂时没有,你可以先参考人家C++的,了解下游戏逻辑,然后制作WPF的,希望对你有一定的参考解决方案三:https://github.com/yuye-liu/Don-t-Tap-The-White-Tile这有一个开源的实现

iis服务-对c#编写的web.config配置文件进行修改,需不需要重启IIS服务,急求答案

问题描述 对c#编写的web.config配置文件进行修改,需不需要重启IIS服务,急求答案 对c#编写的web.config配置文件进行修改,需不需要重启IIS服务,急求答案 解决方案 不需要,iis会自动检测到有修改 解决方案二: 不需要,iis会自动检测到有修改 解决方案三: 不需要重启IIS服务. 但是会话时有缓存的,测试需要把浏览器整体关闭再打开,新开会话时才会读取新的配置. 解决方案四: 不需要,如果每次修改都要重启,那岂不是很麻烦.

javascript实现别踩白块儿小游戏程序_javascript技巧

最近有朋友找我用JS帮忙仿做一个别踩白块的小游戏程序,但他给的源代码较麻烦,而且没有注释,理解起来很无力,我就以自己的想法自己做了这个小游戏,主要是应用JS对DOM和数组的操作. 程序思路:如图:将游戏区域的CSS设置为相对定位.溢出隐藏;两块"游戏板"上分别排布着24块方格,黑色每行随机产生一个,"游戏板"向下滚动并交替显示,将每个操作板的黑块位置存入数组,每次点击时将数组pop出来进行比对(我觉得亮点在这--). 这里是游戏的GitHub地址,大家可以到里点击中

pb 串行通讯-急求,大家好,我是PB软件的新手,在使用MSCOMM控件编写的时候遇到问题

问题描述 急求,大家好,我是PB软件的新手,在使用MSCOMM控件编写的时候遇到问题 在使用MSCOMM控件编写oncomm程序的时候,显示错误:coo31:syntax error string Is_input,Out_input choose case Ole_MSC.object.commevent case 2 //CommEvent属性为CommEvReceive Ole_MSC.object.InputLen=10000 //读入缓冲区中的数据长度 Is_input=Ole_MSC