Minecraft(我的世界)中文论坛

标题: 【CC】电脑mod Lua语言与程序设计 讨论帖(9月7日更新)

作者: zh0996    时间: 2014-2-20 23:25
标题: 【CC】电脑mod Lua语言与程序设计 讨论帖(9月7日更新)
本帖最后由 zh0996 于 2014-9-11 20:42 编辑

ComputerCraft
Lua语言与程序设计
讨论帖
      这里可以讨论一切关于CC中使用Lua语言或者编程过程中你遇到的各种问题。
      这些都可以拿出来讨论,我的一些程序问题也要仰仗各位大神指点,我其实学习Lua时间不是很长,只是C语言有些基础。
      近期会贴出一些API讲解的源码,还有程序和CC++的源码,
欢迎各位程序猿来做客~~

      好的程序可能会被收录到教程里,望大家理解
      教程索引:http://www.mcbbs.net/forum.php?mod=viewthread&tid=242148&page=1&extra=#pid4676148
      欢迎大家与我交流!


目录:
【第二页  关于go(x)函数的一些问题的讨论】
【第三页  自动建造程序 前瞻版 源码】
【第四页  CC++ library文件 源码】



【关于go(x)函数倒车实现问题的讨论】


先上代码:(没有错行,望见谅!)

  1. <P>--前进函数。</P>
  2. <P>--1是往前走;2是往上走;3是往下走;4是“倒车”
  3. function go(k)
  4. if k == 1 then
  5. if (turtle.forward() == false) then
  6. if (turtle.getFuelLevel() == 0) then
  7. turtle.refuel(1)
  8. else
  9. turtle.dig(k)
  10. end
  11. go(k)
  12. end
  13. end
  14. if k == 2 then</P>
  15. <P> if (turtle.up() == false) then
  16. if (turtle.getFuelLevel() == 0) then
  17. turtle.refuel(1)
  18. else
  19. turtle.digUp()
  20. end
  21. go(k)
  22. end
  23. end
  24. if k == 3 then
  25. if (turtle.down() == false) then
  26. if (turtle.getFuelLevel() == 0) then
  27. turtle.refuel(1)
  28. else
  29. turtle.digDown()
  30. end
  31. go(k)
  32. end
  33. end </P>
  34. <P>if k == 4 then
  35. if (turtle.back() == false) then
  36. if (turtle.getFuelLevel() == 0) then
  37. turtle.refuel(1)
  38. else</P>
  39. <P> turtle.turnLeft()</P>
  40. <P>turtle.turnLeft()</P>
  41. <P>turtle.dig()
  42. turtle.turnLeft()
  43. turtle.turnLeft()
  44. end
  45. go(k)
  46. end
  47. end
  48. end</P></P>
复制代码

个人感觉这个4是没有必要这么复杂的,“倒车”完全可以通过掉头然后直走来实现,一次次转圈,效率较低。

我也放出一段编码,大家对比看看:


  1. <P>if k == 4 then
  2.    if (turtle.back() == false) then
  3.       if (turtle.getFuelLevel() == 0) then
  4.          turtle.refuel(1)
  5.       else
  6.          turtle.turnLeft()
  7.          turtle.turnLeft()
  8.          go(1)
  9.       end</P>
  10. <P>   end
  11. end</P>
复制代码
有想法的可以回帖交流一下。



【自动建造程序 前瞻版 源码】

由于我一开始就决定做成开源的,所以将源代码发布如下:(时间仓促,没错行,望见谅!)

1.lua

2.lua

3.lua

【CC++ library文件 源码】

CC++是我个人设计的API,收录了一些常用的功能封成函数,使用时可直接调用(类似C++运行库)。

我的自动建筑程序正式版本将全部基于CC++编写。

编程爱好者也可下载作为自己程序的运行库使用,大家想增加什么功能,都可以向我提;也欢迎自编的函数发上来,我会测试收录,谢谢大家!

经过一段时间的积累,又新增了一些函数,从Bate升为Bate0.2版本

新加了显示器切换,挖矿支持的函数

下面是Bate0.2版的源码:

part1


part2



作者: zh0996    时间: 2014-2-21 15:24
本帖最后由 zh0996 于 2014-9-7 22:15 编辑

这个……技术贴就这么冷吗……
唉……
好吧我先来抛砖引玉
1.检测左右方块函数。

2.显示器输出API

此问题已解决,详细代码请参见CC++源码



作者: wangfumin1992    时间: 2014-2-21 22:07
zh0996 发表于 2014-2-21 15:24
这个……技术贴就这么冷吗……
唉……
好吧我先来抛砖引玉新编的一个函数,不管两放不放方块 ...

程序第13、14、20行if判断中的true误写成turn了 导致判断分支只有返回0的部分被触发

最近没玩游戏 就没法帮你测试了
作者: zh0996    时间: 2014-2-21 22:27
wangfumin1992 发表于 2014-2-21 22:07
程序第13、14、20行if判断中的true误写成turn了 导致判断分支只有返回0的部分被触发

最近没玩游戏 就没 ...

太谢谢你了,最近编晕了,竟然犯这么低级的错误来这丢人,惭愧惭愧!{:10_494:}
谢谢来访!我今晚调试
作者: wangfumin1992    时间: 2014-2-21 22:40
本帖最后由 wangfumin1992 于 2014-2-21 22:44 编辑
zh0996 发表于 2014-2-21 22:27
太谢谢你了,最近编晕了,竟然犯这么低级的错误来这丢人,惭愧惭愧!
谢谢来访!我今晚调试 ...

没什么丢人的啦 即使是我们学计算机的 编程也难免犯低级错误啊

互相共勉啦 哈哈~


作者: wangfumin1992    时间: 2014-2-21 22:45
zh0996 发表于 2014-2-21 22:27
太谢谢你了,最近编晕了,竟然犯这么低级的错误来这丢人,惭愧惭愧!
谢谢来访!我今晚调试 ...

P.S: 貌似修改后的程序里的true拼写还是错的……这是个很常见的错误啊
作者: zh0996    时间: 2014-2-21 22:55
wangfumin1992 发表于 2014-2-21 22:45
P.S: 貌似修改后的程序里的true拼写还是错的……这是个很常见的错误啊

{:10_504:}
我对我自己都无语了,好在问题解决了!
终于解决了……{:10_528:}
作者: zh0996    时间: 2014-2-23 10:49
这论坛里没几个程序猿吗?
还是技术贴必沉??
{:10_503:}
作者: tsubasa56    时间: 2014-2-25 10:56
其实你去编程板块可能会更好些{:10_566:}
作者: zh0996    时间: 2014-7-24 12:14
没人气啊,死气沉沉的……
我准备把我的API讲解的源码发到这个贴里,大家以后就在这里看源码吧
最近还在纠结网盘的事,初步决定随大流用度娘网盘,如果找到好的网盘会考虑
关于源码、程序的源文件也会在不久之后于此贴中贴出,敬请期待~~~


作者: zh0996    时间: 2014-9-7 22:32
CC++ Bate0.2版本发布了!![撒花~~]
因为匆忙间调试完成,自然有不周全的地方,所以还是Bate版本
还望大神来挑错,有奖哦~~
谢谢大家支持!!
作者: QAQ囧囧QAQ    时间: 2015-10-4 11:26
还以为DNCLC呢!!!!!!气屎我了
作者: zh0996    时间: 2015-10-5 00:18
QAQ囧囧QAQ 发表于 2015-10-4 11:26
还以为DNCLC呢!!!!!!气屎我了

DNCLC是神马???