机缘:突然觉得我应该学习一项新编程语言了

前段时间将自己以前的以前用VB和ASP编写的几个小程序,申请了软著,收到证书后,突然有种想学习新编程语言的冲动。
于是买了Python编程从入门到实践(第2版)开始学习:

  1. 每天坚持利用空余时间看书。
  2. 在学习强国上搜到了一个免费基础课(中国大学MOOC)。
  3. 安装好学习测试环境(我用的是pycharm破解版+sublime text)。
  4. 学习时要勤动手,将书上的例子都自己敲 一边。实践出真理。

收获:学习Pygame后,决定我自己将儿时常玩的游戏,开发成一款小程序,成功了。

记的儿时常与朋友面对面玩这款游戏的乐趣。少儿时,生活条件艰苦,往往是直接在地面上画一个棋盘,然后两个玩伴找来不同颜色或材质的物品当棋子,就可以开始进行对弈了,其乐趣一直深深印在作者的脑海中。
游戏其实很简单,每个人各有5个棋子,棋盘由五纵五横线段绘制而成,共有25个相交有效坐标点。相邻的坐标点之间的距离绝对值是相同的,为有效行棋距离。
游戏的赢棋方法为,当前活动棋子有效行棋后,出现当且仅当在一条棋盘线上,形成当前活动棋子与同色中唯一个棋子之间为一个有效距离,且它们的同一个方向上存在唯一个对方棋子,这时将吃掉对方该棋子。
游戏通过socket套接字实现了网络互连互通;利用Thread线程技术实现的数据不间断传输的保护;为了能实现公网测试,我还特意在腾讯云租了一年(2022年6月8日开始)的轻量级服务器。


日常

当然,作为Python程序语言的初学者,作者在程序开发与设计过程遇到了很多的困难,作者通过查阅书籍,网络搜索等途径,都逐一进行了解决,最终完成了比较满意的游戏设计。程序开发与设过程中,考虑到了如:
棋子位置的智能化校正,
棋子非规则移动的复位,
棋子之间相互重叠导致的逻辑错误复位,
棋子根据鼠标坐标的动化效果以及对手之间的同步动化效果等人性化设计与细节设计,完成了第一阶段预期目标。

憧憬

作者后期将进一步学习Python+Kivy关于手机App的开发,将这款游戏搬到手机上,方便娱乐,进一步推广这款有趣的益智棋子游戏。

如果希望测试或体验这款游戏,或者探讨一些技术方面的问题,可以联系我(15963272336)。

Tips

  1. 您发布的文章将会展示至 里程碑专区 ,您也可以在 专区 内查看其他创作者的纪念日文章
  2. 优质的纪念文章将会获得神秘打赏哦

初学Python:使用Pygame开发一款线上对弈益智游戏(服务器+线程)相关推荐

  1. 学习 Python 之 Pygame 开发魂斗罗(九)

    学习 Python 之 Pygame 开发魂斗罗(九) 继续编写魂斗罗 1. 在子弹类中修改敌人发射子弹的位置 2. 创建显示敌人子弹的函数 3. 解决敌人不会向下掉落的问题 4. 给敌人碰撞体组增加 ...

  2. 学习 Python 之 Pygame 开发魂斗罗(十四)

    学习 Python 之 Pygame 开发魂斗罗(十四) 继续编写魂斗罗 1. 创建桥类 2. 在主类中加入一些类变量 3. 显示桥 4. 解决玩家与桥的碰撞体问题 5. 解决敌人与桥的碰撞体问题 继 ...

  3. 学习 Python 之 Pygame 开发魂斗罗(十一)

    学习 Python 之 Pygame 开发魂斗罗(十一) 继续编写魂斗罗 1. 改写主类函数中的代码顺序 2. 修改玩家初始化 3. 显示玩家生命值 4. 设置玩家碰到敌人死亡 5. 设置敌人子弹击中 ...

  4. 学习 Python 之 Pygame 开发魂斗罗(二)

    学习 Python 之 Pygame 开发魂斗罗(二) 魂斗罗的需求 开始编写魂斗罗 1. 搭建主类框架 2. 设置游戏运行遍历和创建窗口 3. 获取窗口中的事件 4. 创建角色 5. 完成角色更新函 ...

  5. 学习 Python 之 Pygame 开发魂斗罗(四)

    学习 Python 之 Pygame 开发魂斗罗(四) 继续编写魂斗罗 1. 创建子弹类 2. 根据玩家方向和状态设置子弹发射的位置 (1). 站立向右发射子弹 (2). 站立向左发射子弹 (3). ...

  6. 学习 Python 之 Pygame 开发魂斗罗(八)

    学习 Python 之 Pygame 开发魂斗罗(八) 继续编写魂斗罗 1. 创建敌人类 2. 增加敌人移动和显示函数 3. 敌人开火 4. 修改主函数 5. 产生敌人 6. 使敌人移动 继续编写魂斗 ...

  7. 学习 Python 之 Pygame 开发魂斗罗(一)

    学习 Python 之 Pygame 开发魂斗罗(一) Pygame 回忆Pygame 1. 使用pygame创建窗口 2. 设置窗口背景颜色 3. 获取窗口中的事件 4. 在窗口中展示图片 (1). ...

  8. 学习 Python 之 Pygame 开发坦克大战(四)

    学习 Python 之 Pygame 开发坦克大战(四) 坦克大战添加音效 1. 初始化音效 2. 加入游戏开始音效和坦克移动音效 3. 添加坦克开火音效 4. 添加装甲削减音效 5. 添加坦克爆炸音 ...

  9. 学习 Python 之 Pygame 开发坦克大战(五)

    学习 Python 之 Pygame 开发坦克大战(五) 坦克大战完善地图 1. 创建砖墙 2. 给砖墙增加子弹击中的碰撞效果 3. 给砖墙添加坦克不能通过的碰撞效果 4. 添加石墙 5. 添加玩家基 ...

最新文章

  1. 关于HTML5的十条霸气侧漏预测
  2. TF31003:您的用户帐户没有连接到 Team Foundation Server 的权限
  3. 【正一专栏】西班牙国家德比不再激情四射可更让人不舍
  4. 集成学习(ensemble learning)(二)
  5. 程序员面试金典 - 面试题 05.06. 整数转换(位运算)
  6. bzoj1005 [HNOI2008]明明的烦恼 prufer+组合数学
  7. 使用case语句的3个诀窍
  8. Odoo10教程---模块化一:新建一个模块及基本视图
  9. Android java和C的Socket通信demo(可用)
  10. 视频教程-R语言数据挖掘-模型评估篇-大数据
  11. js function
  12. 国内交通银行OSA账户被注销后,企业该如何面对这种局面?
  13. Oracle函数——字符函数
  14. tecplot改变x轴y轴
  15. 计算机制作节日贺卡教案,幼儿园节日教案:做贺卡
  16. java%3c%3e符号,有趣的 JavaScript 格式转换
  17. DJ2-2 进程管理
  18. 松柏先生:血亏500万、倾家荡产的天猫女老板犯了这9个大忌!
  19. axios 获取本地json文件
  20. 系列三:最全微商城营销36计!

热门文章

  1. Word中如何制作某条线带颜色的表格
  2. Python excel 合并居中值相同的单元格
  3. 对话王学宗:畅谈区块链如何赋能实体?
  4. jquery实现小游戏
  5. ubuntu16.04/18.04安装卸载cuda10.0/10.1和cudnn图文说明
  6. Redhat配置163源
  7. Ethercat基本数据类型(Ethercat Base Data Types)
  8. 【蓝桥杯嵌入式】蓝桥杯第十三届省赛程序真题,真题分析与代码讲解
  9. 织梦php和sql嵌套,织梦模板runphp=yes标签里面嵌套sql语句的教程
  10. 一种混合流水车间调度问题的建模思路