我自己用 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

關於作者

R0uter

如非聲明,本人所著文章均為原創手打,轉載請註明本頁面鏈接和我的名字。

註釋

發表評論

您的電子郵件地址不會被公開. 必填字段標 *