不是你想的那樣:一個攻擊網站的程式

這節課我們來試試開發一個簡單的命令行小遊戲,來完整的體驗一次所謂的“開發過程”。

遊戲設定是這樣的:

這是一種棋盤類游戲,我們來猜測敵人戰艦的位置,只要命中數發就可以擊沉它們。

我們給這些戰艦貼點標籤……比如各種網站吧?所以,這就成了一個攻擊網站的程序……捂臉。

遊戲目標

我們要玩家以最少的次數攻擊網站,把它擊垮。然後我們根據玩家的猜測次數來進行評分。

大致設計

我們畫一個7*7[……]

點擊跳轉以繼續閱讀

計算屬性與封裝

我們在上課之前,一起來回顧一下以前曾提過的“SoC”的概念,我們說這個叫做“Separation of Concerns”,我把它翻譯為責任分離——即不同的部分專注於自己的那一部分。或者說一個對象完成一個目標。

這樣做的目標既讓代碼更加模塊化易於維護,也讓系統運行效率更高。所以說,我們要讓對象之間的通信變得更加規範才行。

數據隱藏

你去看看你在寫代碼時候用到的那些框架,哪個給你直接展示了[……]

點擊跳轉以繼續閱讀

儲存器的值與引用

聲明一個變量

我們使用 var 來聲明一個變量,就好像從櫃子裡拿出了一個試管放在了實驗台上;

我們給變量規定了一個類型,就好像在試管上貼上了標籤;

那麼放入的試劑就必須是標籤上標記了的——否則可能導致中毒或者爆炸。

同樣的,如果我們試圖給一個儲存器放入一個錯誤的數據類型,那麼編譯器就會報錯——沒錯總有辦法能夠騙過編譯器——反正我不會教你這個方法,那樣就會導致程序崩潰啦。[……]

點擊跳轉以繼續閱讀

猜數字遊戲:類的對象的區別

上一節課我們第一次領略了 OOP 的風采,於模棱兩可的類和對象究竟是什麼東西呢?這節課我們用一個簡單的小栗子來向你介紹。

嘗試解釋

我們說類和對象的關係是設計圖和產品的關係,就拿我們的房子來說,一棟樓肯定會有對應的設計圖,但設計圖絕不會只能對應一棟樓,至少一個小區肯定會用一套設計圖不是嗎?我們的“類”就是這個“設計圖”。我們用這個設計圖設計了對象的屬性、功能等等的一系列內容,然後通過實例化來產[……]

點擊跳轉以繼續閱讀

我們的實驗環境以及初見 OOP

考慮到有的同學沒有 iPhone,但學習 Swift 語言大家至少都會有 OS X 操作系統,我們的代碼演示都會在 OS X 下完成,使用 CLI 界面。這樣雖然又顯得古老了,但相信我去掉 GUI 會讓你省心不少——因為那又是另一回事了。

那麼現在,讓我們來和 OOP 問個好

我們來看看,用 OOP 進行開發到底會是個什麼樣子?

考慮到我們現在並沒有很高的開發水平,那麼我們把所有的功能實[……]

點擊跳轉以繼續閱讀

如何在 Swift 2.0 中聲明一個 抽象類別 ?

我們都知道在 Java 中聲明一個抽象的類或者方法要使用 abstract 關鍵字,可是很遺憾熟悉的東西總會逝去,在 Swift 中已經沒有了這個標籤。

那麼,我們究竟要如何來聲明一個抽象的類呢?

私有構造器(初始化器)法

這一點倒是讓人很熟悉對吧?吧構造器私有了那這個類肯定就不能被初始化了,自然就不能創建對象實例……不過……哪有那麼多但是,反正能用就行了!
[crayon-67b78[……]

點擊跳轉以繼續閱讀

編程方法學課程大綱

哈哈!又要和大家見面了,這次十奶給大家帶來了全新的編程方法學課程

這是之前編程方法學的課程大綱,很慶幸當時做了這麼個決定把大綱扔在了這裡:)雖然課程結束了,但單獨閱讀這個大綱也是一個不錯的選擇,回頭我會再此基礎上更新它,以適應新的直播版編程方法學~

前言

這次的課程我們Karel 這個著名的小機器人為切入點,通過教 Karel 解決問題這個過程來熟悉編程開發中的思維方法,讓你快速[……]

點擊跳轉以繼續閱讀

介紹一下 Karel 這個機器人

早在20世紀70年代,斯坦福大學畢業生 Rich Pattis 覺得如果能讓程式設計初學者在一個相對複雜的程式設計語言來說,比較簡單的環境下學習,將有助於程式設計語言的教學。這個簡單的環境由各種程式設計語言的特徵抽象化而來。所以他就設計了這麼一個程式環境,讓學生教一個機器人來解決簡單的問題。這個機器人就是Karel,它是以一個捷克作家 Karel Capek 命名, 他在其1921年的科幻劇R.U.R.(羅斯[……]

點擊跳轉以繼續閱讀

我自己用 Swift 2 寫了個簡陋的 Karel Robot

更新啦!

本次更新添加了一個分支,目的在於創建“下一步”功能,另外修復了block白邊的難看界面!

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

用數組靜態化儲存Karel的狀態,感謝香蕉君!

調節速度的偉大夢想指日可待!?

 

寫這個軟件總共花了我11個小時,中間坑住無數次。而且到現在我也不知道為什麼這樣實[……]

點擊跳轉以繼續閱讀