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;}}
}
完整工程
度盘下载
转载于:https://www.cnblogs.com/wsine/p/4298032.html
C#的winform拼数字游戏相关推荐
- 经典拼数字游戏NumPuzzle C# By Red_angelX
NumPuzzle 设计说明书 背景 开发环境:Microsoft Visual Studio .Net 2003 开发语言:C# 开发者:Red_angelX 1 总体设计 设计思路:根据玩家设置的 ...
- 使用A* (AStar)算法自动求解拼数字游戏
原文链接: 使用A* (AStar)算法自动求解拼数字游戏 上一篇: js Heap 的简单使用 下一篇: vue router 技巧 效果 主要思想 设置两个数组 close 保存已经走过的状态 o ...
- vue 拼数字小游戏(设置表白彩蛋)
原文链接: vue 拼数字小游戏(设置表白彩蛋) 上一篇: vue 网格 过渡 动画 下一篇: mpvue 开发小程序 流程 效果 通过点击交换空白格子与周围的格子,将整个格子还原,如果在还原过程中, ...
- pyplot 画多个图时搅合到了一起_这些认数字游戏,宝宝最喜欢,家长可以和宝宝一起玩...
爸爸妈妈们都希望自己的宝宝能够聪明健康的长大,但是随着现在社会压力的增大,竞争也变得十分激烈,很多孩子周末的课程都安排的满满的,作为家长,怎能让自己的宝宝功课也落下. 在宝宝长大的过程中,家长可以多提 ...
- s2020gc53拼数游戏
3. 拼数游戏 (c.cpp) [题目描述] 幼儿园的N名小朋友,每位小朋友手中都有一个非0数字,他们在玩自由组合的拼数游戏,可以拼数出很多很多种情况.为了考一考大家,现在老师提出要拼出一个最大的K位 ...
- 改朝换代游戏(基于数字游戏2048逻辑代码)
什么2048数字游戏? <2048>,是一款益智小游戏,这款游戏是由年仅19岁的意大利程序员加布里勒希鲁尼(Gabriele Cirulli)开发出来的,官方版本只能在网页上或通过其移动网 ...
- 用法 stl_51Nod 2160 数字游戏 STL基本用法
目录 目录 1. 题目描述 1.1. Limit 1.2. Problem Description 1.3. Input 1.4. Output 1.5. Sample Input 1.6. Samp ...
- [蓝桥杯]PREV-23.历届试题_数字游戏
问题描述栋栋正在和同学们玩一个数字游戏.游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈.栋栋首先说出数字1.接下来,坐在栋栋左手边的同学要说下一个数字2.再下面的一个同学要从上一个同学说的数字往 ...
- C语言经典小游戏---猜数字游戏 (包含C语言中如何实现随机数的生成)
题目描述:输入1-100之间的数字,进行猜数字游戏,猜大猜小有提示,直至才对为止,游戏可以重复游玩. 算法思路: 1.用void函数分别写出菜单程序与游戏进程程序. 2.用switch-case-de ...
最新文章
- centos7.2安装mysql 1
- C语言结构联合位字段知识体系总结大学霸IT达人
- Java动态调用方法
- c语言调用系统当前时间的函数,c语言获取系统当前时间的函数,求讲解?
- EditView设置边框
- rest spring_Spring REST:异常处理卷。 2
- 如何创建php文件,PHP如何生成.php程序文件
- 将普通的数组转换为父子结构(vue,element-ui)
- 客户关系管理之会员管理(转)
- 调用函数的ALV、面向对象的ALV设置带选择列
- 美国当地时间4月17日中国概念股收盘行情
- Maven实战读书笔记
- linux flex安装包,安装flex builder for Linux在Ubuntu
- matlab simulink节点,ROS与Matlab语言入门教程-从Simulink中创建单独的ROS节点
- 如何使用 Microsoft easy fix 解决方案
- 挑战练习13.6 删除crime 记录
- dingo php,Laravel Dingo API
- 1997. WZK打雪仗(war)
- Warshall算法JAVA实现
- 自动控制理论基本概念
热门文章
- OpenCV3编程入门(毛星云)之视频读取与播放
- Windows API之WriteFile函数详细解答
- 重庆理工大学计算机考研就业,重庆理工大学专业硕士含金量高吗?好就业吗?
- 吴军信息论40讲_吴军信息论40讲笔记
- mysql delete删除列,在MySQL中删除我的Key列 (Delete my Key column in MySQL)
- mysql查询各科前3_MySQL 查询各科前三的数据
- 数据链路层协议_数据链路层 基本数据链路协议
- Git常用命令和Git团队使用规范指南
- Android序列化与反序列化
- catia 桥接曲面圆角_4.3.7.1-Catia曲面之多桥接曲面_简单构面