Loading...

因為疫情的關係,我在今年9月底才畢業並離開了學校,踏上了找工作之旅。但是要找甚麼樣種類的工作呢?我內心大概整理出了兩種職務:

  • 剛開始我的目標是雲端系統工程師,就是協助客戶做數位轉型、雲端架構部屬規劃,足客戶當前和未來的需求,主要就是需要知道各家雲端平台有哪些服務、怎麼去做運用以及規劃,而且要一定的網路基礎。但企業大多都會是招募有3至5年平台使用經驗,很少在招募新鮮人,而且這個職務類似於業務的感覺,初始的薪資相較低,除非做到類似顧問等級的大大薪資才比較高。
  • 所以後來就覺得後端工程師這個職務,似乎對我比較有利,但是又不是純寫程式即可,主要是將應用軟體開發進行容器化、自動化的部屬,會接觸到一些雲端平台的部分。這個職務比較傾向於我想要的,寫程式薪水相對較高,但目前像是容器化、自動化、無伺服器這類的這些技能,目前我也都沒經驗。

所以基於以上的論述,這個傳案就誕生了!這個專題,主要會接觸到容器化 (Docker)後端常用語言 (Node.js)非關聯式資料庫 (NoSQL),以及最後會運用到雲端平台 (AWS或GCP)來部屬。所以我的目標,就是建立一個無伺服器服務的"數字華容道"遊玩頁面!

數字華容道(Digital Klotski)

甚麼是"數字華容道"?就是小時候可以將數字推來推去的玩具,據說是由"華容道"這項遊戲所衍生而成的,有興趣的可以上網查一下 (圖片來源:Amazon.com)

8 Klotski (3x3) 15 Klotski (4x4) 24 Klotski (5x5)

那第一步驟,就是些寫成Python程式碼來呈現Digital Klotski

[Part 1] Python

程式如何寫在這邊就不多做說明了,這邊主要是來敘述一下程式的流程:


(選1是3x3、選2是-4x4以此類推,共有5個難度)

================================
==  Welcome to play Klotski!  ==
================================
  Use 'w/a/s/d' to moving block
  Press 'q' to leave this game.
================================
Which Klotski's level would you want to play?(1~5):


(如果輸入有誤,預設會選擇最簡單難度)

Level 1 Level 2 Level 3 Level 4 Level 5
Easy (3x3) Normal (4x4) Difficult (5x5) Hard (6x6) Expert (7x7)
OK! Klotski's level will set 'Easy'.
================================
== GAME START ==
-------------
| 1 | 5 | 2 |
-------------
| 4 | 6 | 8 |
-------------
| 7 |   | 3 |
-------------
Press key (char):


(在遊玩的過程中,可以隨時按下"q"離開遊戲)

Press key (char):s
Moves: 1
-------------
| 1 | 5 | 2 |
-------------
| 4 |   | 8 |
-------------
| 7 | 6 | 3 |
-------------
Press key (char):s
Moves: 2
-------------
| 1 |   | 2 |
-------------
| 4 | 5 | 8 |
-------------
| 7 | 6 | 3 |
-------------
...


Press key (char):w
Moves: 21
-------------
| 1 | 2 | 3 |
-------------
| 4 | 5 | 6 |
-------------
| 7 | 8 |   |
-------------
Congratulation! you move 21 times to finish this game.
Spend Time (sec): 17.760ms

上述的程式我有上傳至Github上,有興趣的可以下載來玩看看。

下一階段,就是使用Docker,讓程式可以用容器進行


Tags

Klotski Python

comments powered by Disqus