vb小游戏——井字棋
欠了一个星期的小游戏。。我得补一补。以下效果图:
特别简单,其实学一段就能做的小东西,愣是给我拖了不知道多久orz
新手初学,错误和不好的习惯请一定要纠正我。Thanks♪(・ω・)ノ
以下实现方法:
1、建一个控件数组(九个命令按钮),四根棍棍模拟一个棋盘
2、从ps随便搞了两图,一白一黑,拿来载入命令按钮。以下初步设计时的不完善代码:
Option Explicit
Dim k, i, j, b(8)Private Sub Command1_Click(Index As Integer)k = k + 1If k Mod 2 <> 0 ThenCommand1(Index).Picture = LoadPicture("D:\Pictures\工程用图\黑子.jpg")b(Index) = 9ElseCommand1(Index).Picture = LoadPicture("D:\Pictures\工程用图\白子.jpg")b(Index) = 10End IfFor i = 3 To 5 '判断三列子中是否有一列满足三子同色If b(i) = b(i - 3) And b(i) = b(i + 3) ThenCall judge(b(i)) '调用判断获胜方的过程End IfNext iFor i = 1 To 7 Step 3 '判断三排子中是否存在某一排满足三子同色If b(i) = b(i - 1) And b(i) = b(i + 1) ThenCall judge(b(i))End IfNext iIf b(0) = b(4) And b(8) = b(4) Then '判断两斜线三子Call judge(b(4))ElseIf b(4) = b(2) And b(4) = b(6) ThenCall judge(b(4))End IfEnd SubPrivate Sub Form_Load()For i = 0 To 8b(i) = iNext i
End SubSub judge(a) '判断获胜方If a = 9 ThenMsgBox "游戏结束,黑子获胜"EndElseIf a = 10 ThenMsgBox "游戏结束,白子获胜"EndEnd If
End Sub
感谢@shigeruoji同学(这什么鬼名字···) 提醒,忘记设置平局的情况了,加入计数君小哦,记录click事件的次数,满9次以后就判断平局。这里之所以能实现是因为程序的运行是从上到下的。把判断平局放在判断黑白一方获胜之后就可以了。新加入的代码:
dim oo = o + 1 '计数君o,判断平局使用If o = 9 Then '判断平局MsgBox "游戏结束,你俩平局"EndEnd If
效果:啊哈哈哈为什么落子更慢了呢。。控制平局还真不容易啊
更改以后的总代码:
Option Explicit
Dim k, i, j, b(8), oPrivate Sub Command1_Click(Index As Integer)k = k + 1If k Mod 2 <> 0 ThenCommand1(Index).Picture = LoadPicture(App.Path + "\黑子.jpg")'增加了app.path(相对路径)的使用b(Index) = 9ElseCommand1(Index).Picture = LoadPicture(App.Path + "\黑子.jpg")b(Index) = 10End IfFor i = 3 To 5 '判断三列子中是否有一列满足三子同色If b(i) = b(i - 3) And b(i) = b(i + 3) ThenCall judge(b(i)) '调用判断获胜方的过程End IfNext iFor i = 1 To 7 Step 3 '判断三排子中是否存在某一排满足三子同色If b(i) = b(i - 1) And b(i) = b(i + 1) ThenCall judge(b(i))End IfNext iIf b(0) = b(4) And b(8) = b(4) Then '判断两斜线三子Call judge(b(4))ElseIf b(4) = b(2) And b(4) = b(6) ThenCall judge(b(4))End Ifo = o + 1 '计数君o,判断平局使用If o = 9 Then '判断平局MsgBox "游戏结束,你俩平局"EndEnd If
End SubPrivate Sub Form_Load()o = 0For i = 0 To 8b(i) = iNext i
End SubSub judge(a) '判断非平局情况下的获胜方Dim o As BooleanIf a = 9 ThenMsgBox "游戏结束,黑子获胜"EndElseIf a = 10 ThenMsgBox "游戏结束,白子获胜"EndEnd IfEnd Sub
其实这个游戏还是很不完善,能正确运行的前提是双方都遵守下棋的时候只下在没有下过的地方。 当一方单击已经落子的地方,就会影响程序正常运行。解决这个的初步设想是用command的visible属性,单击以后按钮不可见,然后显示按钮下方装有黑/白子的图片框。也就是用图片框显示落子效果。但是这样工程量略大,我这么懒的人有时间再说吧啊哈哈哈哈。
你们有什么更好的方法解决上述问题吗?
真正做起东西来才发现学的东西都忘光光QWQ
做完发现其实用到的东西就那些。。。简单的一批。咸鱼.jpg
怪不得老师上课要直接教制作,比按部就班讲各种控件函数有趣多了
vb小游戏——井字棋相关推荐
- 用c语言编写的打字母游戏,用C语言编写小游戏——“井字棋”
原标题:用C语言编写小游戏--"井字棋" 作者:Milo Yip 来源:知乎 原文链接:https://zhuanlan.zhihu.com/p/39581573 在 Milo Y ...
- C++ 小游戏 井字棋
c++井字棋小游戏,里面有人机对战 和 双人对战 先创建一个游戏类 #pragma once #include<iostream> #include<vector> #incl ...
- javafx写一个小游戏-井字棋
学了几天的javafx,感觉非常好用,自己写了一个小游戏,如有不足,希望大佬加以指正,谢谢. 1.先写UI界面 新建一个ui.fxml文件,用于显示ui界面 界面效果如下: 代码如下: <?xm ...
- python小游戏井字棋(人机对战)
游戏简介:在九宫格内进行,如果一方抢先于另一方向(横.竖.斜)连成3子,则获得胜利.游戏中输入方格位置代号的形式如下: 设计前的思路: 游戏中,board棋盘存储玩家.计算机的落子信息,未落子处未EM ...
- C语言小游戏井字棋(三子棋)
1.自定义game.h头文件 #pragma once#include <stdio.h>//符号定义 #define Row 3 #define Col 3//函数声明//棋盘 void ...
- 用IE网页学游戏-井字棋
IE网页学游戏-井字棋 井字棋实现交互的简单小游戏,学习使用表格,理解javascript函数. 1.构造棋盘 用table元素的行列构造三行三列的表格.设置好120像素的井字棋背景,三个小图表示方格 ...
- python写井字棋_python 游戏(井字棋)
1. 游戏思路和流程图 实现功能,现实生活中的井字棋玩法 游戏流程图SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠. 2. 使用模块和游戏提示 impor ...
- 【C语言】(实例游戏)实现童年游戏——井字棋
初学C语言,虽然学到的内容不是很多,但是有一些简单的同年游戏我们是可以实现的,接下来,我们就看一下井字棋的实现,首先创建3个文件,分别为头文件 --定义与声明 函数的实现 以及测试文件 首先我们先说 ...
- C语言小项目——井字棋游戏(升级版)
最新文章
- java 反射set方法赋值_反射 根据属性名获得属性set方法并为set方法赋值
- JavaScript DOM操作 提高篇
- Apache Camel中的断路器模式
- python判断字母数字_Python判断字符串是否为字母或者数字(浮点数)的多种方法
- R语言中判断是否是整数。以及读写excel
- 解决上传窗口弹不出的问题
- Python 学习第一周
- 应用统计学比上比不上计算机,计算机技术在医学统计学教学中应用的思考
- android的自定义字体,Android中使用自定义字体的方法
- 手把手带你入坑H5与小程序直播开发
- xshell无法显示汉字
- 数组索引越界异常和空指针异常
- Excel生成柱状图报表示例
- 梳理审批流程的程序编码流程
- 《机器学习实战》机器学习概述
- 钱诚11.16黄金原油早盘直通车,黄金原油顺势操作建议
- OpenCV图像处理---模糊原理
- iPhone手机数据找回指南2:iPhone手机使用技巧
- 卡蜜使用php,卡蜜尔360°全揭秘,分段越高胜率越高
- requests爬取小说