Golang 程式設計題目 === ###### tags: `backup` ## Goroutine作業: 根據題目指示,練習golang結構設計與業務分離。 #### 程式要求 ::: info 主要程式設計完後,需要檢測程式,驗證主要程式的功能與是否有bug。 ::: #### 餐廳作業 請根據下述內容,設計出架構與實作 :::info 1. 有座城市裡面有幾間『餐廳』。 2. 『餐廳』裡的工作人員有以下幾種角色:『廚師』、『服務生』、『櫃檯接待人員』。 3. 製作『料理』需要使用『食材』,而『食材』需要經過『廚師』的『製作』,才能變成『料理』。 4. 『客人』會上門點餐,由『櫃檯接待人員』帶入座位後,向『服務生』點餐,『服務生』向『廚師』指定製作的料理。 5. 『廚師』製作完『料理』,會請『服務生』將『料理』送給『客人』。 6. 『客人』吃完『料理』後,會離開『餐廳』。 ::: #### 補充說明 :::success * 每間餐廳都有一定規模,至少2位以上的廚師,2位以上的服務生。 * 每間餐廳座位有限,約8~16個位子,有空位才能請客人入座。 * 製作料理過程需要時間,客人吃飯也需要時間。 * 服務生知道客人點了什麼餐點,但廚師只知道要做什麼餐點。 * 客人點了什麼餐,就應該只做一份料理,不應重複製作。 ::: #### 傳球作業  #### 種族大戰爭作業 請用程式完成以下遊戲劇情 第一部分 創造之神吃飽蛋疼,創造了10種種族之祖先,並且指使他們互相競爭。 這些第一代的由創造之神的物種,被稱為種族的先祖,每種總族只有一位先祖,所以總共只有10位先祖,分別代表各自的種族。 自從先祖開始,在誕生之後的一段時間後(100ms),就會進行繁衍,一次會產生5到10個後代個體,每個後代個體在誕生之後一段時間(100ms),也會進行繁衍,一樣也是會一次繁衍出1到3個更後代的個體。 注意,每個個體,只能繁衍一次,所以換句話說,繁衍過後代的個體,就不會再繁衍了。 第二部分 劇本開始1s之後,開始進入戰爭。 戰爭階段,先祖有專屬於先祖的戰鬥,後代有專屬於後代的戰鬥。 每經過500ms,先祖們就會互相PK,然後有一位先祖就會陣亡,屬於該先祖的種族後代就會全部滅亡,一個不留。 簡單來說呢,先祖代表一切,先祖打輸了,所有後輩也別想活。 後代有後代們的戰爭,後代不管血緣先後(不管誰比較早出生),不論總族,在每個個體出生的當下,都被會登記造冊記錄起來。 每200ms就會發生一次全種族大亂鬥,每次的大亂鬥會隨機死亡150個個體,但奇妙的是,如果是先代個體陣亡了,下面的子孫後代會自動死光光。 後代子孫死亡了,不會影響到前代個體,只會造成自己的後代死亡。 但如果除了先祖之外,種族不幸遇到所有後代都死光光,那麼這個種族也會被判斷落敗,先祖立即自動死亡。 剩下的唯一種族,獲得勝利。 重點要求 每個個體(不論先祖或後代個體)都是獨立一個goroutine。 每次先祖戰爭後,請印出消失的種族,和剩下存活的種族。 每次後代大亂鬥之後,請印出每個種族剩餘後代數量。 前代死亡而導致後代死亡的狀況,利用context來關閉開出的goroutine。 示意圖 :   ## 資訊安全: 學習程式的常見攻擊手法及防範方式,並製作成簡報(40頁) - Cross-Site Scripting - Injection Flaw - CSRF - 防禦性程式設計、系統資訊安全設計報告 - TDD探討
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up