三体网站:www.threebody.com.cn,三体社区

 找回密码
 注册
搜索
查看: 7568|回复: 75

黑暗森林模拟器^_^

[复制链接]
水是剧毒的 发表于 2022-7-23 21:26:47 | 显示全部楼层 |阅读模式
我正在做一个模拟宇宙黑暗森林的程序,灵感就是三体1后记中大刘提到的宇宙文明模拟器(doge
很尴尬……附件不能传.cpp文件
不过如果要看源代码的话私信邮箱号,我可以发
 楼主| 水是剧毒的 发表于 2023-1-15 15:24:56 | 显示全部楼层
本帖最后由 水是剧毒的 于 2023-1-15 15:58 编辑

4.1版本搞完了哈~
不要问我为什么没有4.0,因为是同一天搞完了,也没必要分开了……
表面看和3.0差不多,主要是改了一些基层的参数

一些设定和之前发的已经不太一样了,再发一遍:
sci<=15 原始时代
15<sci<=25 科学时代
25<sci<=30 核能时代
30<sci<=35 电磁时代
35<sci<=45 星舰时代
45<sci<=50 引力波时代
50<sci<=60 微观时代
60<sci<=80 曲率时代
80<sci<=100 光粒/奇点炸弹时代
sci>100 归零时代

4.1版本包含:
1.黑暗森林打击(光粒,二向箔,奇点炸弹,制造光墓)
2.宇宙安全声明:黑域
3.交流&广播
4.星舰文明战争
5.文明名称

这次附带了数据制造器,不过文明名称是按“X号文明”的老格式编排的,如果要搞事情()请手动改名
输入输出文件名把原来的IN和OUT文件统一改为了TXT,方便打开
正常使用者只需要点EXE运行即可,学编程(C++)的可以再看看源代码,欢迎提出建议~

关于一些bug:
一、运行后好几分钟程序还没结束
直接终止运行。实际上正常比较小的数据(文明个数10以内)如果15秒还出不来就可以终止运行了,毕竟程序里包含大量随机数一不小心运气不好就会导致最后的几个文明打都打不起来……
二、搞了1000个文明结果卡bug了
在程序中设置的文明数量上限是100,你搞1000个当然不行了……而且我仍未试过100个文明的数据,不确定会花多久,发生什么情况……毕竟一般测试10个数据也差不多了……

threebody 黑暗森林模拟器4.1.zip

801.18 KB, 下载次数: 82

 楼主| 水是剧毒的 发表于 2022-8-9 14:10:27 | 显示全部楼层
有人问我要代码,我再发一下吧
3.0版本(不要问我为什么没有2.0,因为没另存……)
这次用zip打包了,应该能解压了吧?
附带了输入输出文件,各位可以自行尝试(输入输出文件可以把后缀改为.txt打开,点exe运行时改回去)

3.0版本包含:
1.黑暗森林打击(光粒,二向箔,奇点炸弹,制造光墓)
2.宇宙安全声明:黑域
3.交流&广播
4.星舰文明战争
如在试验时出现异常现象,欢迎指出
输入内容在源代码文件中写了,具体格式参考test.in
由于大量随机数,可能会有运行好几分钟没结果的现象,这时建议终止运行,不然电脑可能真的会炸


点评

哪呢?  发表于 2022-9-4 21:10
 楼主| 水是剧毒的 发表于 2022-10-25 18:23:42 | 显示全部楼层
水是剧毒的 发表于 2022-8-9 14:10
有人问我要代码,我再发一下吧
3.0版本(不要问我为什么没有2.0,因为没另存……)
这次用zip打包了,应该 ...


刚发现之前的附件没了【尬】
重新传一遍


黑暗森林模拟器.zip

392.2 KB, 下载次数: 62

点评

话说为什么只有三个人在线却下载次数五次  发表于 2022-10-25 18:36
你甚至用重定向给同志们准备好了测试数据 大家说:谢谢水!(doge  发表于 2022-10-25 18:33
牛啊  发表于 2022-10-25 18:31
 楼主| 水是剧毒的 发表于 2022-7-23 21:30:20 | 显示全部楼层
每个文明的设定参数:诞生时间(start),技术值(sci),技术爆炸指数(b,bb),危险指数(dan),需要用二向箔清理否(kill)

目前设定的一些规则:
sci<=5 原始时代
5<sci<=15 科学时代
15<sci<=30 核能时代
30<sci<=45 星舰时代
45<sci<=60 微观时代
60<sci<=80 曲率时代
80<sci<=100 光粒时代
sci>100 归零时代

各位如果有觉得不合适的地方欢迎提出建议
 楼主| 水是剧毒的 发表于 2022-7-23 21:33:20 | 显示全部楼层
现在已经在调试了,有些小Bug正在处理
不过现在的几个测试结果已经快把我笑死了(大雾)
这164行的代码似乎是做了几周
 楼主| 水是剧毒的 发表于 2022-7-23 21:39:28 | 显示全部楼层
先公布一组调试数据吧
输入格式:
第一行一个整数n,为文明数量
后面n行分别表示一个文明,参数分别为start, b, bb, dan, kill
输出内容应该是一目了然的

输入:
  1. 4
  2. 0 1 0.1 5 0
  3. 1 1.01 0.105 6 0
  4. 3 0.99 0.11 3 0
  5. 4 0.8 0.13 4 1
复制代码

输出:
  1. 第1世纪

  2. 第2世纪

  3. 第3世纪

  4. 第4世纪

  5. 第5世纪

  6. 第6世纪

  7. 第7世纪

  8. 第8世纪

  9. 第9世纪

  10. 第10世纪

  11. 第11世纪

  12. 第12世纪
  13. 4号文明发现3号文明

  14. 第13世纪

  15. 第14世纪

  16. 第15世纪
  17. 3号文明发现4号文明
  18. 3号文明与4号文明交流,4号文明得知3号文明的存在

  19. 第16世纪

  20. 第17世纪

  21. 第18世纪

  22. 第19世纪

  23. 第20世纪

  24. 第21世纪
  25. 2号文明为自己建造了黑域,从此与世隔绝
  26. 4号文明广播3号文明的坐标

  27. 第22世纪
  28. 1号文明发现3号文明
  29. 1号文明为自己建造了黑域,从此与世隔绝

  30. 第23世纪

  31. 第24世纪
  32. 1号文明广播3号文明的坐标

  33. 第25世纪
  34. 4号文明用光粒毁灭3号文明
  35. 4号文明为自己建造了黑域,从此与世隔绝
复制代码




 楼主| 水是剧毒的 发表于 2022-7-23 21:53:55 | 显示全部楼层
再来一组
输入:
  1. 5
  2. 0 1 0.1 5 0
  3. 1 1.01 0.105 6 0
  4. 3 0.99 0.11 3 0
  5. 4 0.8 0.13 4 1
  6. 10 1.2 0.09 9 0
复制代码

输出:
  1. 第1世纪

  2. 第2世纪

  3. 第3世纪

  4. 第4世纪

  5. 第5世纪

  6. 第6世纪

  7. 第7世纪

  8. 第8世纪
  9. 1号文明发现2号文明

  10. 第9世纪

  11. 第10世纪

  12. 第11世纪

  13. 第12世纪
  14. 1号文明发现4号文明

  15. 第13世纪

  16. 第14世纪
  17. 4号文明发现1号文明
  18. 4号文明与1号文明交流,1号文明得知4号文明的存在

  19. 第15世纪

  20. 第16世纪

  21. 第17世纪

  22. 第18世纪

  23. 第19世纪
  24. 2号文明发现4号文明

  25. 第20世纪

  26. 第21世纪
  27. 1号文明广播2号文明的坐标
  28. 1号文明广播4号文明的坐标

  29. 第22世纪
  30. 1号文明为自己建造了黑域,从此与世隔绝
  31. 2号文明广播4号文明的坐标
  32. 2号文明为自己建造了黑域,从此与世隔绝

  33. 第23世纪

  34. 第24世纪

  35. 第25世纪

  36. 第26世纪
  37. 3号文明用二向箔毁灭4号文明

  38. 第27世纪

  39. 第28世纪

  40. 第29世纪
  41. 5号文明为自己建造了黑域,从此与世隔绝
复制代码




点评

咋输入(痴呆)  发表于 2022-8-7 12:29
陆九渊 发表于 2022-7-23 22:40:34 | 显示全部楼层
文件大小是否超过1MB?如果没有可以把后缀改成可以上传的格式类型,下载了我们再改回来(这操作可不错了)
Gylus张良 发表于 2022-7-23 23:00:14 | 显示全部楼层
所以为什么要用“x号文明”来命名呢?
再说了,“模拟器”也不用完全忠于原文的啊……

点评

已经不是完全忠于原文了。把每个文明看作一个点,但忽略掉了其中社会的复杂性,不过万一哪个文明也搞出个执剑人可不就……额  发表于 2022-7-24 12:41
不然怎么命名?取个名字?(我可没那么空,不过要用名字也可以的)  发表于 2022-7-24 12:39
 楼主| 水是剧毒的 发表于 2022-7-24 12:44:55 | 显示全部楼层
本帖最后由 水是剧毒的 于 2022-8-9 13:30 编辑

陆九渊 发表于 2022-7-23 22:40
文件大小是否超过1MB?如果没有可以把后缀改成可以上传的格式类型,下载了我们再改回来(这操作可不错了) ...

鉴于此位同志的建议,我尝试了一下打包rar
似乎是可以的,下载完直接解压就行,不用改后缀
(注:这是1.0版本)

(至于你能不能看懂那就不是我的事了)


threebody 黑暗森林模拟器.rar

1.43 KB, 下载次数: 58

点评

好诶,解压不了,看来需要下个解压应用  发表于 2022-7-24 13:09
罗辑Hydrus 发表于 2022-7-24 12:57:48 | 显示全部楼层
所以你能不能让灿烂的阳光照进黑暗森林?(doge

点评

我已经设置了沉默交流两种对待方式了……  发表于 2022-7-24 13:02
 楼主| 水是剧毒的 发表于 2022-7-24 13:26:11 | 显示全部楼层
修改版的结果(7楼的数据):
  1. 第1世纪

  2. 第2世纪

  3. 第3世纪

  4. 第4世纪

  5. 第5世纪

  6. 第6世纪

  7. 第7世纪

  8. 第8世纪

  9. 第9世纪

  10. 第10世纪

  11. 第11世纪

  12. 第12世纪

  13. 第13世纪

  14. 第14世纪

  15. 第15世纪

  16. 第16世纪

  17. 第17世纪

  18. 第18世纪

  19. 第19世纪

  20. 第20世纪
  21. 5号文明发现4号文明

  22. 第21世纪

  23. 第22世纪

  24. 第23世纪

  25. 第24世纪

  26. 第25世纪

  27. 第26世纪
  28. 5号文明广播4号文明的坐标

  29. 第27世纪

  30. 第28世纪
  31. 2号文明用二向箔毁灭4号文明

  32. 第29世纪
  33. 1号文明发现5号文明
  34. 1号文明对5号文明保持了沉默

  35. 第30世纪
  36. 5号文明为自己建造了黑域,从此与世隔绝

  37. 第31世纪

  38. 第32世纪

  39. 第33世纪

  40. 第34世纪

  41. 第35世纪

  42. 第36世纪

  43. 第37世纪

  44. 第38世纪

  45. 第39世纪

  46. 第40世纪

  47. 第41世纪

  48. 第42世纪

  49. 第43世纪

  50. 第44世纪

  51. 第45世纪

  52. 第46世纪

  53. 第47世纪

  54. 第48世纪

  55. 第49世纪

  56. 第50世纪
  57. 2号文明发现3号文明
  58. 2号文明对3号文明保持了沉默

  59. 第51世纪

  60. 第52世纪
  61. 1号文明发现3号文明
  62. 1号文明对3号文明保持了沉默
  63. 2号文明用光粒毁灭3号文明

  64. 第53世纪

  65. 第54世纪

  66. 第55世纪

  67. 第56世纪

  68. 第57世纪

  69. 第58世纪

  70. 第59世纪

  71. 第60世纪

  72. 第61世纪

  73. 第62世纪

  74. 第63世纪

  75. 第64世纪

  76. 第65世纪

  77. 第66世纪

  78. 第67世纪

  79. 第68世纪
  80. 1号文明为自己建造了黑域,从此与世隔绝
复制代码

主要修改内容:减少建造黑域的数量,补充“沉默”状态的输出


您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|三体网站:www.threebody.com.cn,三体社区

GMT+8, 2024-5-15 18:28 , Processed in 0.071514 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表