網頁

2016年8月30日 星期二

[Go] 用go語言翻轉Minecraft - go-mcpi-api

(圖片來源:http://pi.minecraft.net


Mcpi是一個創世神的函式庫,可以用來操控Minecraft Pi edition的世界

看到這裡你可能會想問:

  • Minecraft Pi Edition是什麼?
    Minecraft Pi Edition是開發來讓使用者學習程式免費Minecraft版本
    為了讓使用者能更輕易的接觸到程式設計,它被設計運作在價位低廉的樹梅派(Raspberry Pi)上,因而被稱為Pi Edition

    Minecraft Pi Edition 官方網站
  • Mcpi是什麼?
    Mcpi是可以搭配Pi Edition的函式庫,可以從寫程式玩遊戲的途中學習如何使用一門語言,從遊戲中學習,我第一次接觸的時候,雖然已經有點基礎了,但還是跟同學玩的不亦樂乎www

    Mcpi就我所知最原始的版本應該是用python寫成的,網路上也可以找到許多教學,中文的部份可以參考這本書(Minecraft新魔法:打破虛擬沙盒世界的界限),這本書是以python版本的教學為主

    另一個教學是我一開始接觸的,藉由7堂課,將整個api的基本用法教過一遍,我覺得寫的非常簡單易懂
    -> TeachCraft-Challenges


2016年8月5日 星期五

[Go教學] (3) 基礎元件介紹

go語言的宣告方式實在是超多種的,光型態就足以讓初學者搞混了
對第一次接觸的人會有相當大的困擾,當初我在學的時候也是看的眼花撩亂的www

我認為只要選擇一種自己用的最習慣的方式就可以了


基本上最常用的型態就三種 int(整數) / float(浮點數/小數) / string(字串)

2016年8月4日 星期四

[Go教學] 跨平台編譯

Q: 我寫在Linux (windows)上寫的go程式要怎麼給windows (linux)使用???

可能對少部份的人會有這樣的困擾wwww
go很特別,跨平台編譯之類的非常的簡單~

之前我幫同學用go寫一些工具程式,因為我本身使用linux,而使用者多為windows,所以就有了跨平台編譯的需求

但編譯出來的結果,雖說是可以用,但在輸入輸出的地方會稍微有一點問題,所以我不建議跨平台編譯www

[Go教學] (2) 第一個程式

第一個程式不免俗的要來個hello world囉~


首先先來了解一下整個go程式的架構

觀察一下上面的程式,可以發現跟C的架構非常相像
package , import , func 三個部份組成


2016年8月3日 星期三

[Go教學] (1) 學習前準備

在正式開始學習前,先來準備開發環境

Q:我應該用什麼ide來開發呢?

A:目前我沒看到任何適合的IDE(或許visual studio可以用,但我的電腦主要系統是linux,所以沒有特別關注sor),在linux上我是使用vim做開發,也就是用文字編輯器

Q:我是不是要裝編譯器?

A:是的,就像是開發C要裝GCC/G++,以GO開發的話也需要安裝GO的編譯器喔
ps.如果要使用cgo的話也需要裝gcc喔

那麼就讓我們開始吧!!
以下會分成linux系統以及windows來做介紹,因為我沒有Mac,所以使用的Mac朋友就抱歉了QwQ

2016年8月2日 星期二

[Go教學] 序

Go語言(golang)是由google基於C開發的語言


當初會想學這個語言完全是覺得"挖大家都不會學這個也太潮了吧"OwO,後來是拿來做網頁的後端(學習中...),基於C開發的GO在很多語法上跟C很像,有C的基礎的話要上手是非常容易的,要說他有什麼特點的話,以我的了解應該是以下兩點:


  • 可以平行運算(Goroutine)
    我想這也是go很適合當作後端的原因之一,但這部份我還不是很了解,之前有學過一點cuda,平行運算要用另一種思維來看待運算這回事,但go的平行運算卻是相對來說比較簡單且易用的,有機會的話後面會介紹到OuO
  • 可以使用C的library(cgo)
    這是他基於C開發的好處,GO可以直接使用C的函式庫,甚至是將原本以C的語法寫成的自訂函式直接搬過來使用,當初看到這個整個超興奮的www


接下來會慢慢發布教學,所有的連結也會整理在這篇,敬請期待



(ps.教學主要是給有程式基礎的人喔,不用非常進階,只要有基礎就行了~)