发布:双人联机岛屿争夺游戏 Enemies in the dark

更新历史
20200302:

  1. 首次发布

20200303:

  1. 增加了"游戏理念"部分

这几天用Python写了一个双人联机岛屿争夺游戏 “Enemies in the dark”。编写游戏代码花了2天,调试bug、测试游戏的流畅度、测试游戏的均衡性陆续花了3天。感觉没什么太大的问题了,因此正式对其进行发布,以分享给更多喜欢Python或喜欢游戏的人。

游戏截图:

游戏介绍:

  • 双人游戏,每个玩家一台电脑,两台电脑在局域网内才可以联网玩。玩家1是服务端,玩家2是客户端(因此玩家2需要知道玩家1的IP地址和端口号)。
  • 岛屿数量和大小固定,岛屿位置随机生成。
  • 玩家1的岛屿上的数字为绿色玩家2的岛屿上的数字为红色无人岛上的数字为黑色
  • 玩家所占领的岛屿越大,该岛屿上的数字增速越快,同时岛屿的数字在自由增加的情况下的上限越高。
  • 玩家用鼠标单击选中一个属于自己的岛屿后(岛屿A),再点击一个其他岛屿(岛屿B),就能向岛屿B输出岛屿A一半的数字(即:兵力输送)。岛屿之间距离越大,兵力输送所需的时间越长。兵力输送的过程不可见(正如该游戏的名字:Enemies in the dark,因为你不知道对方正在向你的岛屿输送多少兵力)。
  • 有一个特殊的岛屿(岛屿边框为紫色),虽然岛屿不大,但是增速特别快。不过该岛屿被占领后,岛屿的数字在自由增加的情况下的上限只有20。
  • 有一个黑色、随机游走的球,其上的文字为"杀",称为"抹杀球"。玩家岛屿被抹杀球触碰后,该岛会变成无人岛,同时岛上的数字会加上岛的半径值。
  • 胜负判定依据:当玩家失去所有的岛屿,且该玩家发动的兵力输送都已结束时,该玩家就会被判为失败,而另一个玩家则会被判为胜利。

游戏理念:

  • 这是一个随机生成的岛屿世界,等待你的不仅有随时到来的绝对抹杀,还有防不胜防的人为攻击,这,是比黑暗森林更加黑暗的世界真相,是比弱肉强食更加复杂的生存法则——而你的目标只有一个,那就是比你的竞争对手活得更久。你会选择野蛮扩张还是疯狂避险?你会选择稳步发展还是大肆进攻?亦或你有什么其他的策略来增加胜算?

其他说明:

  • 该游戏使用Python编写,基于graphics库实现,并且没有使用多线程。
  • 可以用3个文本文件分别将选择的玩家服务端的IP地址端口记录下来,以免每次都需要重新输入。文本文件的名字可以在程序运行后通过控制台的提示来获知。
  • 缺陷:
    • 程序开始运行后会弹出游戏窗口,玩家可以将窗口移动到合适的位置。一旦玩家点击了窗口内的某一位置,就不允许再移动窗口了——一旦移动,就会造成鼠标点击位置的偏移。
    • 游戏结束后,服务端和客户端各自点击窗口左上方带有文字"关闭"的按钮即可。这里要注意的是:不要尝试通过窗口右上角(Windows系统的窗口是这样的)的"X"按钮来关闭窗口,因为窗口虽然关了,但程序仍然在运行——这可能会导致程序的不完全退出。

参考:
游戏原型参考:

  • 安卓手机游戏 Archipelago,如下图所示:

游戏理念参考:

  • 刘慈欣,《三体》
  • 【文曰小强】84分钟速读《三体》大合集

游戏制作过程中,在代码实现上主要参考了:

  • CSDN:Python graphics库详解
  • 菜鸟教程:Python 网络编程
  • 博客园:记-python中socket服务器设置中的setsockopt

发布:双人联机岛屿争夺游戏 Enemies in the dark相关推荐

  1. 全套源码丨超实用的双人联机对战游戏开发分享,拒绝踩坑!

    在手游市场高度同质化的趋势下,随着各家手机厂商纷纷布局智慧大屏.平板.PC 等不同形态的设备,强调系统与生态侧的场景协同就成为了发展刚需,多终端协同游戏针对游戏体验本身,带来玩法上的更多可能性. Co ...

  2. JAVA练习小游戏——本地双人联机乒乓球小游戏

    目录 前言 代码实现 GameOverPanel类 PingPong类 实机演示 前言 该游戏可支持本地两人游戏 Player1采用W和S键控制球拍移动 Player2采用UP和DOWN键控制球拍移动 ...

  3. 前端实现双人联机版俄罗斯方块小游戏2(实现双人联机)

    基于websocket实现双人联机俄罗斯方块游戏,逻辑思路整理如下 思路整理 1.游戏开始,双方都收到start消息,同时调用start方法 2.start方法中,调用game.init方法,同时发送 ...

  4. 大一下Java大作业——双人联机小游戏森林冰火人

    本作业参考博客java课程设计-多人聊天工具(socket+多线程)的聊天室,以此作为模板实现双人游戏的联机效果 项目框架: ----------以下为大作业报告----------- 1.题目描述 ...

  5. 多人联机的俄罗斯方块游戏(C++),游戏规则模仿任天堂Tetris99,基于qt,kcp,protobuf,qslog。

    目录 Tetris 游戏截图 游戏菜单 1v1对战 9人对局 游戏特性细节介绍 攻击机制 Tetris标准特性 Super Rotation System(超级旋转系统) 7 bag system ( ...

  6. netty+kotlin实现双人联机坦克大战

    最近因为我在学校报了一个实训项目,这个项目要实现pc安卓双平台所以学习了自己觉得还不错的一个函数语言kotlin,学习过程中有了开发一个联机游戏练手的想法 这里我们实现的方法是将坦克1开启的窗体看作是 ...

  7. 5V5联机对战游戏源码

    一.专业技术的竞争力比较 1. 大学毕业设计:购物系统.博客系统.论坛系统.聊天室等数据管理系统 2. 期末实训:贪吃蛇,俄罗斯方块,飞机大战 3. 普通期刊论文: 坦克大战 4. 培训机构项目:基本 ...

  8. 学习RPG Maker MZ开发创建并发布PC和移动端游戏

    Complete RPG Maker MZ: Create and Publish for PC and Mobile 完整的RPG制造商MZ:为个人电脑和移动设备创建和发布 MP4 |视频:h264 ...

  9. 京东发布公告禁售87款游戏

    北京时间9月2日,京东发布了<关于禁售游戏公告>,公告中含87款游戏,名单包含<集合啦!动物森友会><最后生还者:第二部><超级马力欧制造2>等.京东表 ...

最新文章

  1. pythonrequest方法_解决Python requests 报错方法集锦
  2. C# 代码注释规范文档
  3. hadoop2.6.0实践:002 检查伪分布式环境搭建
  4. Scala单例对象(伴生对象)
  5. 简单易学的机器学习算法——神经网络之BP神经网络
  6. Visual Studio 2010安装教程
  7. php截取字符串函数 左右,php截取中文字符串函数的技巧
  8. 写一个Android输入法01——最简步骤
  9. 中webgl解析json_WebGL蒙皮(下)
  10. Go语言,在Ubuntu9.10和Windows安装
  11. VS2015上配置opencv2.4.11
  12. 学 Win32 汇编[27] - 乘除指令: MUL、IMUL、DIV、IDIV
  13. 机械设计:机械加工中获得工件尺寸精度的常用方法!
  14. 用python和OpenCV进行动态物体检测
  15. VSCode远程控制服务器
  16. Python崛金系列--4.python量化股票
  17. 【verbs】ibv_modify_qp()|RDMA
  18. 校园网站毕业设计,学校网站毕业设计论文模板案例,校园网毕业设计
  19. java start with_Java中startWith方法的使用!
  20. 国产麒麟系统忘记密码重置办法(5步解决)

热门文章

  1. “量化之神”西蒙斯退位,解密金融模型和量化投资帝国
  2. [flink1.14.4]net.sf.ezmorph.Morpher
  3. loo-cv验证matlab,高光谱成像系统的基本原理,高光谱成像技术在红肉食用品质中的应用进展...
  4. 数说故事车企数字化转型案例——科学分配预算评估社媒营销效果
  5. 常见的软件性能测试方法
  6. Linux 环境下载百度Linux 环境下载百度云资源,Firefox插件(百度网盘助手)
  7. Java 猜字小游戏
  8. 销售ERP软件系统主要包括哪些功能?
  9. 金属材料领域模型与通用语言之钢铁加工——面向软件领域的简介
  10. 24v转5v电源芯片模块,220v转5v隔离芯片模块,220v转5v电源芯片模块,制作220v转5v电源芯片,模块原理图220v转5v变压器芯片,20w220v转5v电源芯片