zoukankan      html  css  js  c++  java
  • python棋类游戏编写入门

    刚接触棋类游戏程序编写的朋友,往往比较迷惑,不知从何下手。

    本文总结了棋类游戏的主程序流程、计算机走子策略、打分方式(以井字棋、黑白棋、五子棋为例),未使用minimax算法,比较简单,适合刚接触的朋友。特记录如下:

    作者:hhh5460

    本文地址:https://www.cnblogs.com/hhh5460/p/10114236.html

    一、主程序流程

    所有双人对战棋类游戏在人机模式下的主程序流程几乎雷同。

    流程:
    1.初始化棋盘
    2.确定玩家,执黑先走
    3.进入循环
        4.打印棋盘、提示走子、(显示得分?)
        5.思考走法、放弃终止
        6.落子、(吃子?、翻棋?)
        7.判断局面、是否终止、(是否轮换?)
        8.切换棋手
    9.游戏结束,返回信息

    二、计算机走子策略

    1.对所有合法的走子位置“打分”
    2.取分值最高的走子位置
    3.再取行最小的,若行相等,再取列最小的

    三、“打分”方式

    注意:同一个点位,双方的棋型分都要加上!!

    1.井字棋

        棋型分值:
        三连  100
        活二  10
        活一  1

    2.黑白棋

        翻了对方棋子的数目、或者翻了对方棋子的权重之和

    3.五子棋

        棋型分值:
        0.活五     +100000
        1.死五  +100000
        2.活四     +10000
        3.死四     +1000
        4.活三     +1000
        5.死三     +100
        6.活二     +100
        7.死二     +10
        8.活一     +10
        9.死一  +2


        特别说明:
       10.跳连   两边棋型分相加 + 上一级分值的20% ?商榷

     四、确定棋型

    方法是,从当前落子位置向周围八个方向搜索。

    注意,黑白棋八个方向是独立考虑的,而井字棋与五子棋八个方向的相反方向要放在一起考虑。

    五、棋力分析

    这种按照最高得分走棋的策略,就是我们下棋时常说的:贪吃,即贪婪模式。棋力不会太高,属于入门水平

    六、代码

    (未公布)

  • 相关阅读:
    浅谈分布式 ID 的实践与应用
    Mobile DevOps 之 Proxmox 实现节流提效
    AI驱动的超分辨技术落地实践
    element ui 的 element-tree文字显示不全的问题
    Skype for business Server 2019 私有化部署
    VSCode+XAMAPP的PHP断点调试环境搭建XDebug
    Office的密码破和原理说明Excel,ppt,word
    Exchange2016 归档功能设置保留策略就地存档Archive
    基于windows server216自带的备份服务windows server backup
    C# 操作xml基础整理【转】
  • 原文地址:https://www.cnblogs.com/hhh5460/p/10114236.html
Copyright © 2011-2022 走看看