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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 一款MVC5+EF+Bootstrap搭建的后台通用管理系统模板[通俗易懂]

    一款MVC5+EF+Bootstrap搭建的后台通用管理系统模板[通俗易懂]最近闲来无事,就用MVC5+EF+Bootstrap搭建了一个通用的后台管理系统的模板,里面使用到的技术包括:MVC,EF,T4模板批量生成Jquery,jqGridBootstrapDDDAutoMapper等开发工具:VS2015+SQL2012项目框架如下图:项目的效果图如下:JuCheapV2.0源代码http://……

    2025年10月27日
    5
  • pycharm激活码最新2022.01(JetBrains全家桶)「建议收藏」

    (pycharm激活码最新2022.01)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年4月1日
    207
  • 怎么将pdf转换成image_php从入门到精通 pdf

    怎么将pdf转换成image_php从入门到精通 pdf上次找到fpdf发现文档支持不足。而且含有php5.4不能用了的过期函数,图片进去也显示不了等问题。特意找到这个tcpdf。下载的地址搞一个试试中文字体包下载%20Sans%20Fallback%20-%20PHP.zip/download下载后,将它解压放在droidsansfallback.php、droidsansfallback.z以及droidsansfallback.ctg.z这三个文…

    2025年9月23日
    3
  • intellij idea 2021 激活码【中文破解版】「建议收藏」

    (intellij idea 2021 激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~ML…

    2022年3月21日
    84
  • Python人工智能之图片识别,Python3一行代码实现图片文字识别[通俗易懂]

    Python人工智能之图片识别,Python3一行代码实现图片文字识别[通俗易懂]自学Python3第5天,今天突发奇想,想用Python识别图片里的文字。没想到Python实现图片文字识别这么简单,只需要一行代码就能搞定#作者微信:2501902696fromPILimportImageimportpytesseract#上面都是导包,只需要下面这一行就能实现图片文字识别text=pytesseract.image_to_string(Image.open(‘d

    2022年4月28日
    61
  • pycharm中更新pip版本的问题「建议收藏」

    pycharm中更新pip版本的问题「建议收藏」经常使用Python的都知道pip,但有时候,下载某个模块不成功,提示信息如下pytharm查看自带的pip版本解决方式一:pytharm的terminal里卸载pip再安装pip如果还不行,解决方式二去你当前的项目路径下找到lib文件夹下的site-packages,删除相关的pip版本再去file——>settings查看自带pip版本的地方,…

    2022年8月29日
    7

发表回复

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

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