C#的winform拼数字游戏
C#的winform拼数字游戏
声明:阅读了别人的代码学习修改而来,增加了美观度和游戏乐趣。(作者出处忘了不好意思)
程序截图

关键代码
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 PingNumberGame {
public partial class MainForm : Form {
public MainForm() {
InitializeComponent();
btnGiveup.Visible = false;
}
Label[,] arrLbl = new Label[3, 3];
int unRow = 0, unCol = 0;
bool playing = false;
const int maxWarning = 5;
string[] warning ={"你简直弱爆了",
"小学没毕业吧你",
"天呐,什么人呐",
"真为你的智商感到捉急",
"你走开我有傻逼恐惧症"};
public void move(object sender) {
if(!playing) {
return;
}
int row = ((Label)sender).Top / 120;
int col = ((Label)sender).Left / 120;
if(Math.Abs(row - unRow) + Math.Abs(col - unCol) == 1) {
string temp = arrLbl[unRow, unCol].Text;
arrLbl[unRow, unCol].Text = arrLbl[row, col].Text;
arrLbl[row, col].Text = temp;
arrLbl[unRow, unCol].Visible = true;
arrLbl[row, col].Visible = false;
unRow = row;
unCol = col;
}
for(int i = 0; i < 9; i++) {
if(arrLbl[i / 3, i % 3].Text != Convert.ToString(i + 1))
break;
if(i == 8) {
arrLbl[unRow, unCol].Visible = true;
playing = false;
MessageBox.Show("恭喜你通过了游戏!", "祝贺", MessageBoxButtons.OK, MessageBoxIcon.Information);
btnGiveup.Visible = false;
btnPlay.Visible = true;
}
}
}
private void label1_Click(object sender, EventArgs e) {
move(sender);
}
private void label2_Click(object sender, EventArgs e) {
move(sender);
}
private void label3_Click(object sender, EventArgs e) {
move(sender);
}
private void label4_Click(object sender, EventArgs e) {
move(sender);
}
private void label5_Click(object sender, EventArgs e) {
move(sender);
}
private void label6_Click(object sender, EventArgs e) {
move(sender);
}
private void label7_Click(object sender, EventArgs e) {
move(sender);
}
private void label8_Click(object sender, EventArgs e) {
move(sender);
}
private void label9_Click(object sender, EventArgs e) {
move(sender);
}
private void btnPlay_Click(object sender, EventArgs e) {
arrLbl[0, 0] = label1;
arrLbl[0, 1] = label2;
arrLbl[0, 2] = label3;
arrLbl[1, 0] = label4;
arrLbl[1, 1] = label5;
arrLbl[1, 2] = label6;
arrLbl[2, 0] = label7;
arrLbl[2, 1] = label8;
arrLbl[2, 2] = label9;
arrLbl[unRow, unCol].Visible = true;
int[] arrNum = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Random rm = new Random();
for(int i = 0; i < 8; i++) {
int rmNum = rm.Next(i, 9);
int temp = arrNum[i];
arrNum[i] = arrNum[rmNum];
arrNum[rmNum] = temp;
}
for(int i = 0; i < 9; i++) {
arrLbl[i / 3, i % 3].Text = arrNum[i].ToString();
}
int cover = rm.Next(0, 9);
unRow = cover / 3;
unCol = cover % 3;
arrLbl[unRow, unCol].Visible = false;
playing = true;
btnGiveup.Visible = true;
btnPlay.Visible = false;
}
private void btnGiveup_Click(object sender, EventArgs e) {
Random rm=new Random();
int num = rm.Next(0, maxWarning);
MessageBox.Show(warning[num], "鄙视", MessageBoxButtons.OK, MessageBoxIcon.Warning);
btnPlay.Visible = true;
btnGiveup.Visible = false;
}
}
}
完整工程
C#的winform拼数字游戏的更多相关文章
- Codevs 1229 数字游戏
1229 数字游戏 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题目描述 Description Lele 最近上课的时候都很无聊,所以他发明了 ...
- codevs 1229 数字游戏(可重集的全排列)
传送门 Description Lele 最近上课的时候都很无聊,所以他发明了一个数字游戏来打发时间. 这个游戏是这样的,首先,他拿出几张纸片,分别写上0到9之间的任意数字(可重复写某个数字),然后 ...
- 【wikioi】1229 数字游戏(dfs+水题)
http://wikioi.com/problem/1229/ 赤裸裸的水题啊. 一开始我认为不用用完全部的牌,以为爆搜会tle.. 可是我想多了. 将所有状态全部求出,排序后暴力判断即可. (水题有 ...
- T1229 数字游戏 codevs
http://codevs.cn/problem/1229/ 题目描述 Description Lele 最近上课的时候都很无聊,所以他发明了一个数字游戏来打发时间. 这个游戏是这样的,首先,他拿出 ...
- C#之winform 猜拳小游戏
C#之winform 猜拳小游戏 1.建立项目文件 2.进行界面布局 2.1 玩家显示(控件:label) 2.2 显示玩家进行选择的控件(控件:label) 2.3 电脑显示(控件:label) ...
- C语言猜数字游戏
猜数字游戏,各式各样的实现方式,我这边提供一个实现方式,希望可以帮到新手. 老程序猿就不要看了,黑呵呵 源代码1 include stdio.h include stdlib.h include ti ...
- 不一样的猜数字游戏 — leetcode 375. Guess Number Higher or Lower II
好久没切 leetcode 的题了,静下心来切了道,这道题比较有意思,和大家分享下. 我把它叫做 "不一样的猜数字游戏",我们先来看看传统的猜数字游戏,Guess Number H ...
- java 猜数字游戏
作用:猜数字游戏.随机产生1个数字(1~10),大了.小了或者成功后给出提示. 语言:java 工具:eclipse 作者:潇洒鸿图 时间:2016.11.10 >>>>> ...
- 【原创Android游戏】--猜数字游戏Version 0.1
想当年高中时经常和小伙伴在纸上或者黑板上或者学习机上玩猜数字的游戏,在当年那个手机等娱乐设备在我们那还不是很普遍的时候是很好的一个消遣的游戏,去年的时候便写了一个Android版的猜数字游戏,只是当时 ...
随机推荐
- 剑指Offer05 用栈模拟队列
添加了模板类应用 /************************************************************************* > File Name: ...
- 转:视频压缩的基本概念(x264解压包)
第1页:前言——视频压缩无处不在H.264 或者说 MPEG-4 AVC 是目前使用最广泛的高清视频编码标准,和上一代 MPEG-2.h.263/MPEG-4 Part4 相比,它的压缩率大为提高,例 ...
- 主机、虚拟机、开发板(u-boot)之间的连接 - ping测试
1.设置主机的IP地址(这里注意,设置一定要设置网线宽带IP,不要选成无线网络的) 查看重点是否本地以太网卡(Realtek PCIe……) 2.修改本地连接3个IP地址,一定主机.虚拟机.开发板 三 ...
- 201509020-js
JS 关于(function( window, undefined ) {})(window)写法的理解 JS 关于(function( window, undefined ) {})(windo ...
- 我与Bootstrap
接触bootstrap是因为一个项目.实在是不了解前端.但是公司又不招前端工程师,没有办法,我这个后端工程师被赶鸭子上架了. 做这个项目之前,只是简单的在网上看了一些bootstrap教学视频.然后拿 ...
- 【PHP基础】位运算与原码,反码,补码
对于有符号的而言: ①二进制的最高位是符号位: 0表示正数,1表示负数 ②正数的原码,反码,补码都一样 ③负数的反码=它的原码符号位不变,其它位取反(0->1,1->0) ...
- 【CSS3】---层模型position之fixed固定定位、absolute绝对定位和relative相对定位
什么是层模型? 什么是层布局模型?层布局模型就像是图像软件PhotoShop中非常流行的图层编辑功能一样,每个图层能够精确定位操作,但在网页设计领域,由于网页大小的活动性,层布局没能受到热捧.但是在网 ...
- Ubuntu 15.04 安装 Nvidia Quadro系列显卡驱动
在这之前,我用的Ubuntu都是系统自带的驱动, 由于分辨率没有任何问题, 所以一直没有安装Nvidia官方的驱动; 近期更新到 15.04 之后, 在播放avi 格式的常规视频时却出现闪烁的现象, ...
- 最新32位和64位xp,win7,win8,win10系统大全(电脑装机版)
一.系统主要特点 1.安装维护方便快速 - 全自动无人值守安装,采用万能GHOST技术,安装系统过程只需3-5分钟,适 合新旧各种机型. - 集成常见硬件驱动,智能识别+预解压技术,绝大多数硬件可以快 ...
- js点击button按钮跳转到页面代码
点击按钮怎么跳转到另外一个页面呢?我们在网站制作中可能是需要的,因为有时我们需要做这样的效果,尤其是将按钮做成一个图片,而点击图片要跳转到新的页面时,怎么做到呢? 这样的效果可以:onclick=&q ...