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拼数字游戏相关推荐

  1. 经典拼数字游戏NumPuzzle C# By Red_angelX

    NumPuzzle 设计说明书 背景 开发环境:Microsoft Visual Studio .Net 2003 开发语言:C# 开发者:Red_angelX 1 总体设计 设计思路:根据玩家设置的 ...

  2. 使用A* (AStar)算法自动求解拼数字游戏

    原文链接: 使用A* (AStar)算法自动求解拼数字游戏 上一篇: js Heap 的简单使用 下一篇: vue router 技巧 效果 主要思想 设置两个数组 close 保存已经走过的状态 o ...

  3. vue 拼数字小游戏(设置表白彩蛋)

    原文链接: vue 拼数字小游戏(设置表白彩蛋) 上一篇: vue 网格 过渡 动画 下一篇: mpvue 开发小程序 流程 效果 通过点击交换空白格子与周围的格子,将整个格子还原,如果在还原过程中, ...

  4. pyplot 画多个图时搅合到了一起_这些认数字游戏,宝宝最喜欢,家长可以和宝宝一起玩...

    爸爸妈妈们都希望自己的宝宝能够聪明健康的长大,但是随着现在社会压力的增大,竞争也变得十分激烈,很多孩子周末的课程都安排的满满的,作为家长,怎能让自己的宝宝功课也落下. 在宝宝长大的过程中,家长可以多提 ...

  5. s2020gc53拼数游戏

    3. 拼数游戏 (c.cpp) [题目描述] 幼儿园的N名小朋友,每位小朋友手中都有一个非0数字,他们在玩自由组合的拼数游戏,可以拼数出很多很多种情况.为了考一考大家,现在老师提出要拼出一个最大的K位 ...

  6. 改朝换代游戏(基于数字游戏2048逻辑代码)

    什么2048数字游戏? <2048>,是一款益智小游戏,这款游戏是由年仅19岁的意大利程序员加布里勒希鲁尼(Gabriele Cirulli)开发出来的,官方版本只能在网页上或通过其移动网 ...

  7. 用法 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 ...

  8. [蓝桥杯]PREV-23.历届试题_数字游戏

    问题描述栋栋正在和同学们玩一个数字游戏.游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈.栋栋首先说出数字1.接下来,坐在栋栋左手边的同学要说下一个数字2.再下面的一个同学要从上一个同学说的数字往 ...

  9. C语言经典小游戏---猜数字游戏 (包含C语言中如何实现随机数的生成)

    题目描述:输入1-100之间的数字,进行猜数字游戏,猜大猜小有提示,直至才对为止,游戏可以重复游玩. 算法思路: 1.用void函数分别写出菜单程序与游戏进程程序. 2.用switch-case-de ...

最新文章

  1. centos7.2安装mysql 1
  2. C语言结构联合位字段知识体系总结大学霸IT达人
  3. Java动态调用方法
  4. c语言调用系统当前时间的函数,c语言获取系统当前时间的函数,求讲解?
  5. EditView设置边框
  6. rest spring_Spring REST:异常处理卷。 2
  7. 如何创建php文件,PHP如何生成.php程序文件
  8. 将普通的数组转换为父子结构(vue,element-ui)
  9. 客户关系管理之会员管理(转)
  10. 调用函数的ALV、面向对象的ALV设置带选择列
  11. 美国当地时间4月17日中国概念股收盘行情
  12. Maven实战读书笔记
  13. linux flex安装包,安装flex builder for Linux在Ubuntu
  14. matlab simulink节点,ROS与Matlab语言入门教程-从Simulink中创建单独的ROS节点
  15. 如何使用 Microsoft easy fix 解决方案
  16. 挑战练习13.6 删除crime 记录
  17. dingo php,Laravel Dingo API
  18. 1997. WZK打雪仗(war)
  19. Warshall算法JAVA实现
  20. 自动控制理论基本概念

热门文章

  1. OpenCV3编程入门(毛星云)之视频读取与播放
  2. Windows API之WriteFile函数详细解答
  3. 重庆理工大学计算机考研就业,重庆理工大学专业硕士含金量高吗?好就业吗?
  4. 吴军信息论40讲_吴军信息论40讲笔记
  5. mysql delete删除列,在MySQL中删除我的Key列 (Delete my Key column in MySQL)
  6. mysql查询各科前3_MySQL 查询各科前三的数据
  7. 数据链路层协议_数据链路层 基本数据链路协议
  8. Git常用命令和Git团队使用规范指南
  9. Android序列化与反序列化
  10. catia 桥接曲面圆角_4.3.7.1-Catia曲面之多桥接曲面_简单构面