欠了一个星期的小游戏。。我得补一补。以下效果图:

特别简单,其实学一段就能做的小东西,愣是给我拖了不知道多久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小游戏——井字棋相关推荐

  1. 用c语言编写的打字母游戏,用C语言编写小游戏——“井字棋”

    原标题:用C语言编写小游戏--"井字棋" 作者:Milo Yip 来源:知乎 原文链接:https://zhuanlan.zhihu.com/p/39581573 在 Milo Y ...

  2. C++ 小游戏 井字棋

    c++井字棋小游戏,里面有人机对战 和 双人对战 先创建一个游戏类 #pragma once #include<iostream> #include<vector> #incl ...

  3. javafx写一个小游戏-井字棋

    学了几天的javafx,感觉非常好用,自己写了一个小游戏,如有不足,希望大佬加以指正,谢谢. 1.先写UI界面 新建一个ui.fxml文件,用于显示ui界面 界面效果如下: 代码如下: <?xm ...

  4. python小游戏井字棋(人机对战)

    游戏简介:在九宫格内进行,如果一方抢先于另一方向(横.竖.斜)连成3子,则获得胜利.游戏中输入方格位置代号的形式如下: 设计前的思路: 游戏中,board棋盘存储玩家.计算机的落子信息,未落子处未EM ...

  5. C语言小游戏井字棋(三子棋)

    1.自定义game.h头文件 #pragma once#include <stdio.h>//符号定义 #define Row 3 #define Col 3//函数声明//棋盘 void ...

  6. 用IE网页学游戏-井字棋

    IE网页学游戏-井字棋 井字棋实现交互的简单小游戏,学习使用表格,理解javascript函数. 1.构造棋盘 用table元素的行列构造三行三列的表格.设置好120像素的井字棋背景,三个小图表示方格 ...

  7. python写井字棋_python 游戏(井字棋)

    1. 游戏思路和流程图 实现功能,现实生活中的井字棋玩法 游戏流程图SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠. 2. 使用模块和游戏提示 impor ...

  8. 【C语言】(实例游戏)实现童年游戏——井字棋

    初学C语言,虽然学到的内容不是很多,但是有一些简单的同年游戏我们是可以实现的,接下来,我们就看一下井字棋的实现,首先创建3个文件,分别为头文件 --定义与声明 函数的实现  以及测试文件 首先我们先说 ...

  9. C语言小项目——井字棋游戏(升级版)

最新文章

  1. java 反射set方法赋值_反射 根据属性名获得属性set方法并为set方法赋值
  2. JavaScript DOM操作 提高篇
  3. Apache Camel中的断路器模式
  4. python判断字母数字_Python判断字符串是否为字母或者数字(浮点数)的多种方法
  5. R语言中判断是否是整数。以及读写excel
  6. 解决上传窗口弹不出的问题
  7. Python 学习第一周
  8. 应用统计学比上比不上计算机,计算机技术在医学统计学教学中应用的思考
  9. android的自定义字体,Android中使用自定义字体的方法
  10. 手把手带你入坑H5与小程序直播开发
  11. xshell无法显示汉字
  12. 数组索引越界异常和空指针异常
  13. Excel生成柱状图报表示例
  14. 梳理审批流程的程序编码流程
  15. 《机器学习实战》机器学习概述
  16. 钱诚11.16黄金原油早盘直通车,黄金原油顺势操作建议
  17. OpenCV图像处理---模糊原理
  18. iPhone手机数据找回指南2:iPhone手机使用技巧
  19. 卡蜜使用php,卡蜜尔360°全揭秘,分段越高胜率越高
  20. requests爬取小说

热门文章

  1. mescroll-uni上拉加载失效
  2. selenium 浏览器导航
  3. 5分钟理解贝叶斯公式
  4. android 10.0版本合入GMS包
  5. 内存是手游的硬伤——Unity游戏Mono内存管理与泄漏
  6. matlab内存映射文件操作
  7. axios的基本使用(简单用法)
  8. 全链接神经网络——BP算法推导过程
  9. Java 占位符 例子 - 消息模板
  10. 如何搭建UDP流量转发服务器