我自己用 Swift 2 写了个简陋的 Karel Robot

屏幕快照 2015-08-22 下午10.36.04

更新啦!

本次更新添加了一个分支,目的在于创建“下一步”功能,另外修复了block白边的难看界面!

目前更能没有任何修改,run.swift文件更加清爽,再也不用双线程啦!

用数组静态化储存Karel的状态,感谢香蕉君!

调节速度的伟大梦想指日可待!?


 

写这个软件总共花了我11个小时,中间坑住无数次。而且到现在我也不知道为什么这样实现多队列它就可以停顿,也不知道为什么这货不能调整速度……

停止的按钮是无效的,我觉得一个是用不着它,另一个是我做不来?

最困难的是要如何移动Karel,这个问题的解决点在于

不能完全依赖storyboard,关键时刻还得用代码绘制View!

这个问题解决之后如何在规定的坐标放下Beeper又成了难题!最后我索性一不做二不休,用代码把地图画满了Beeper!然后隐藏掉,作了个数组,用哪个就显示哪个………………

这种蛋疼的算法恐怕也就只有我自己了!


好了,下面来介绍下这个东西的用法吧!

Karel用来学习Java的,我会抽空单独写一篇文章来讲讲它的历史,这里我就先直接说用法:

Karel是个机器人,只会最简单的指令:

  • move 往前走
  • turnLeft 左转
  • putBeeper 放一个标记
  • pickBeeper 拾起一个标记

由于我水平有限,所以我无法做到让你在单独的一个文件里写这些指令,你只能在我预留的位置来写啦?

另外,由于队列的问题,实际上你写出的代码基本上会是这个样子:

使用窗口底部的滑动条,默认在左端是快速模式,方便你直接看结果;右边则会一秒一动作,方便你看过程。

地图的初始化我在代码中注明了,你应该能在 Karel.swift 中找到如下的部分:

好了,在我弄好了git之后我会在这里贴上链接

我终于成功的创建了git的目录,你可以到这里查看

 

本文由 落格博客 原创撰写:落格博客 » 我自己用 Swift 2 写了个简陋的 Karel Robot

转载请保留出处和原文链接:https://www.logcg.com/archives/1088.html

About the Author

R0uter

如非声明,本人所著文章均为原创手打,转载请注明本页面链接和我的名字。

Comments

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注