vb四环棋的实现,平面四子棋

vb四环棋的实现,平面四子棋

vb四环棋的实现,平面四子棋

首先我们百度一下,什么是平面四子棋

在这里插入图片描述
相信很多小伙伴见到这幅图片都不陌生。
那么在代码中怎么实现呢?我们用vb代码为例子。

先看效果图
在这里插入图片描述
我们设计o和x是需要下的棋子,如果没有棋子,那就是空白字符。

首先先设计数组大小为

Dim a(7, 9) As String 

我们可以选择1~8可以下棋子。

            If ComboBox1.Text = "" And a(1, 1) = " " Then
                SureMove(1, "x")
            ElseIf ComboBox1.Text = "2" And a(1, 2) = " " Then
                SureMove(2, "x")
            ElseIf ComboBox1.Text = "3" And a(1, 3) = " " Then
                SureMove(3, "x")

            ElseIf ComboBox1.Text = "4" And a(1, 4) = " " Then
                SureMove(4, "x")

            ElseIf ComboBox1.Text = "5" And a(1, 5) = " " Then
                SureMove(5, "x")

            ElseIf ComboBox1.Text = "6" And a(1, 6) = " " Then
                SureMove(6, "x")

            ElseIf ComboBox1.Text = "7" And a(1, 7) = " " Then
                SureMove(7, "x")

            ElseIf ComboBox1.Text = "8" And a(1, 8) = " " Then
                SureMove(8, "x")
            ElseIf a(1, 1) = " " Then

                SureMove(1, "x")

我从上面开始算下来,找到一个没有下过棋的数组位置。如果这一整列都下完了,那就不可以下这里了。

 '找出第一个没有下过的地方下旗子
    Private Sub SureMove(ByVal choose As Integer, ByVal c As String)
        Dim top = 6
        While a(top, choose) <> " "
            top = top - 1
        End While

        a(top, choose) = c

        Print()

        If a(1, 1) <> " " Then
            ComboBox1.Items.Remove("1")
        ElseIf a(1, 2) <> " " Then
            ComboBox1.Items.Remove("2")
        ElseIf a(1, 3) <> " " Then
            ComboBox1.Items.Remove("3")
        ElseIf a(1, 4) <> " " Then
            ComboBox1.Items.Remove("4")
        ElseIf a(1, 5) <> " " Then
            ComboBox1.Items.Remove("5")
        ElseIf a(1, 6) <> " " Then
            ComboBox1.Items.Remove("6")
        ElseIf a(1, 7) <> " " Then
            ComboBox1.Items.Remove("7")
        ElseIf a(1, 8) <> " " Then
            ComboBox1.Items.Remove("8")
        End If

        If IsFinish(top, choose, c) = True Then

            If c = "o" Then
                MsgBox("劳拉:耶,我赢了")
            Else
                MsgBox("劳拉:好吧,你赢了")
            End If
            ongame = False
            Button1.Text = "开始"
        End If

    End Sub

检查一下是否某一方赢了。
这里我们需要
1’竖线检查
2 ‘横线检查
3 ‘斜对角1检查
4 ‘斜对角2检查

 Private Function IsFinish(ByVal choosex As Integer, ByVal choosey As Integer, ByVal c As String) As Object
        '竖线检查
        Dim j = 0
        For i = 1 To 6
            If a(i, choosey) = c Then
                j = j + 1
                If j >= 4 Then
                    Return True
                End If
            Else
                j = 0
            End If
        Next
        '横线检查
        j = 0
        For i = 1 To 8
            If a(choosex, i) = c Then
                j = j + 1
                If j >= 4 Then
                    Return True
                End If
            Else
                j = 0
            End If
        Next

        '斜对角1检查
        j = 0
        Dim p = choosex
        Dim q = choosey

        While p > 1 And p < 6 And q > 1 And q < 8
            p = p - 1
            q = q - 1
        End While

        While p >= 1 And p <= 6 And q >= 1 And q <= 8

            If a(p, q) = c Then
                j = j + 1
                If j >= 4 Then
                    Return True
                End If
            Else
                j = 0
            End If

            p = p + 1
            q = q + 1
        End While



        '斜对角2检查
        j = 0
        p = choosex
        q = choosey

        While p > 1 And p < 6 And q > 1 And q < 8
            p = p - 1
            q = q + 1
        End While

        While p >= 1 And p <= 6 And q >= 1 And q <= 8

            If a(p, q) = c Then
                j = j + 1
                If j >= 4 Then
                    Return True
                End If
            Else
                j = 0
            End If

            p = p + 1
            q = q - 1
        End While

        '全部情况都遍历了还是错误
        Return False


    End Function

有想要完整代码,或者有想要其他语言实现这个小游戏的,都可以找我。欢迎留言交流。q:2316773638

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/2874.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java标识符有哪些_java标识符有哪些?java标识符有哪些不合法?

    java标识符有哪些_java标识符有哪些?java标识符有哪些不合法?问题:下面哪个标识符是合法的?”1HelloWorld””_HelloWorld””Hello*World””Hello$World”答案:4解析:标识符是以字母开头的字母数字序列:数字是指0~9,字母指大小写英文字母、下划线(_)和美元符号($),也可以是Unicode字符集中的字符,如汉字;字母、数字等字符的任意组合,不能包含+、-*等字符;不能使用关键字;大小写敏感拓展:1、java标识…

    2022年7月26日
    13
  • pycharm许可证服务器_pycharm安装后打不开程序

    pycharm许可证服务器_pycharm安装后打不开程序出现这个问题解决方法:点击File>Settings>Tools>ServerCertificates>Acceptnon-trustedcertificatesautomatically勾上就好啦~补充:pycharm启动出现Server’scertificateisnottrusted提示框的问题解决windows下pycharm启动出…

    2025年5月31日
    2
  • ubuntu通过conda安装tensorflow

    ubuntu通过conda安装tensorflowubuntu版本:16.04,Anaconda3版本:5.3.1 tensorflow没有32位的!tensorflow没有32位的!tensorflow没有32位的! 安装Anaconda 通过conda来创建tensorflow虚拟环境:conda-ntensorflowpython=3.6 激活刚刚创建的虚拟环境:condaactiva…

    2022年6月19日
    33
  • pycharm操作mysql数据库 创建表 向表中插入数据 操作mysql数据库查询 修改 删除数据

    pycharm操作mysql数据库 创建表 向表中插入数据 操作mysql数据库查询 修改 删除数据1 安装 PyMySQL 模块语法为 pipinstallPy 集成环境里面操作 MySQL 数据库创建表 导入 pymysqlimpor 创建连接 con pymysql connect host localhost user root password root database test port 3

    2025年7月22日
    4
  • Hadoop官方文档中文版3.2.1稳定版

    Hadoop官方文档中文版3.2.1稳定版第一节设置单节点集群目的这个文档描述了如何设置和配置单节点的安装 以便您可以使用 HadoopMapRed 和 Hadoop 分布式文件系统 HDFS 进行快速的简单操作 准备平台支持支持 GNU Linux 作为开发的生产平台 Hadoop 已经在具有 2000 个 GNU Linux 集群进行了演示 Windows 平台同样得到了支持 但是以下的步骤只针对于 Linux 如果想在 Windows 平台设置 Hadoop 请参考 wiki 页面 需要的软件对于 Linux 需要的软件包括 必须安装 Java 推荐

    2025年8月14日
    3
  • 华硕笔记本电脑怎么重装系统_华硕笔记本 重装系统

    华硕笔记本电脑怎么重装系统_华硕笔记本 重装系统原标题:超详细华硕笔记本电脑重装系统图文教程重装系统难吗?不难,难的是你不愿意尝试迈出第一步。今天给大家分享的是超详细华硕笔记本电脑重装系统图文教程,通过使用小白一键重装系统工具可以让我们快速的了解并使用在线重装系统方式来完成Windows10系统安装。小白一键重装系统在线重装Windows10系统步骤:1、百度搜索小白系统官网访问官网并下载小白一键重装系统软件打开。2、在选择系统列…

    2022年8月12日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号