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版的猜数字游戏,只是当时 ...
随机推荐
- poj 3621 0/1分数规划求最优比率生成环
思路:以val[u]-ans*edge[i].len最为边权,判断是否有正环存在,若有,那么就是ans小了.否则就是大了. 在spfa判环时,先将所有点进队列. #include<iostrea ...
- 轻松绕过极域电子教室、和教师控制 Say GoodBye
注意:以下博文(包括但不限于汉字.英文.阿拉伯数字 .图片.影像,以及前述之各种任意组合等等)均为随意敲击键盘所出,用于检验本人电脑键盘录入.屏幕显示的机械.光电性能,并不代表本人观点.如需要详查请直 ...
- web服务器内置对象,或者说是ServletAPI的实例
final javax.servlet.jsp.PageContext pageContext; javax.servlet.http.HttpSession session = null; // ...
- 第一个过滤器Filter
过滤器实现Filter接口javax.servlet.Filter package com.henau.example; import java.io.IOException; import java ...
- fiddler 记录一些以前不熟悉的东西
fidddler已经用了3年了,一般就是抓包,看基本的信息,然后就是本地文件替换网络文件. 然后有一些很有用的东西的却没有深入的学习过. -_-!. 抓https的包 fiddler的过滤器的使用 ...
- 【CSS3】---颜色RGBA及渐变色
颜色之RGBA RGB是一种色彩标准,是由红(R).绿(G).蓝(B)的变化以及相互叠加来得到各式各样的颜色.RGBA是在RGB的基础上增加了控制alpha透明度的参数. 语法: color:rgba ...
- 关于asp.net MVC 中的TryUpdateModel方法
有比较才会有收货,有需求才会发现更多. 在传统的WebFormk开发工作中,我们常常会存在如下的代码块 //保存 protected void btnSubmit_Click(object sende ...
- VxWorks 6.9 内核编程指导之读书笔记 -- C++开发
5.1 介绍 针对C++的VxWorks配置 C++头文件 使用C++启动任务 C和C++之前调用代码 C++编译器说明 在信号处理和ISR中使用C++ 下载C++编写的内核模块 C++编译器的不同 ...
- 数组的join()函数操作
join()函数的功能为:把数组的所有元素放入一个字符串,元素通过指定的分隔符分隔. 设置这样的数组操作 var a = []; a.push(1);a.push(3.1415926);a.push( ...
- JS函数式编程【译】2.3 函数式程序员的工具集