劉永勝

@liuyongsheng

Joined on Sep 27, 2021

  • GNU make installation 使用下方指令安裝: % sudo apt install make Make Command Recursive Use of make 可以就由多個makefile組成一個大的執行系統 % $(MAKE) -C subdir targetName # -C option為current directory意思, 後方可以再附註sudir中makefile的target name % cd subdir && $(MAKE) targetName # 與上方效果相同
     Like 3 Bookmark
  • 目的 在搜尋資料後,發現IC Contect的考古題在github上看到其他人的實作。往往缺少詳細說明。因此,此文章的目的是為了讓讀者看懂後,就有辦法自行實作,而非trace code。同時也記錄我實作時的想法。 實作流程 詳細題目說明參見官方公布之文件,建議閱讀順序為: 問題說明(注意資料尺寸) > I/O input > 畫系統方塊圖(注意控制訊號之I/O) 其餘時序細節,在建構完FSM後,再一一實作即可,不需急於了解。 <font size=5> 1. FSM </font></br> 看完說明後,藉由資料尺寸之條件、運行流程,即可建立出FSM,以最少的state為目標繪製。繪製時可能會對一些條件的準確度,如4095/4096之counter選擇有所顧慮,這可以先忽略。待確定FSM能順利停下,完成一次的跑動,再決定即可,實作FSM如下:
     Like  Bookmark
  • RPG 遊戲概述 這是一款單方向旅程的RPG遊戲,在每個不同的地圖中,尋找通往下個世界的通道。過程中會遇到許多怪物或是寶箱,擊敗怪物、賺取道具,直到世界的盡頭。 How to play 此遊戲所有的輸入法都是先在type: 輸入字元,接著按下enter,即完成該指令輸入。字元對應的指令皆會在最上方提示。 玩家選擇遊戲創建模式 有三種模式,分別為 New game 、Load game、Quit game。若是在之前沒有save game的情況下選擇了Load game的選項,會提示不要選擇。黃色光標代表目前選擇,輸入d後,表示確定選項。 玩家輸入角色數量
     Like  Bookmark
  • 作業描述 相較於HW10,這次添加了道具、背包的功能。每個player都會有一個獨立的道具背包,當遇到怪物時,才會觸發使用道具的功能,且只能在遇到怪獸時,啟用道具,戰鬥過程不能更換或使用道具。當該玩家擊敗特定怪獸時,會掉落特定道具到玩家背包。此外,在地圖中發現寶物時,所有玩家會個別給予不同道具。 程式操作 輸入玩家個數: 遊戲開始時,會要求使用者輸入玩家個數,程式會根據玩家個數,製作每場對決的怪獸數量,以下方圖片為例,若玩家為3人,則之後對決都會有隨機3個怪獸產生。 地圖移動: 如同HW10說明,a向右、d向左、w向上、s向下。當遇到字符M時,觸發與怪獸的對決。當遇到字符$發現寶箱,各個給予玩家道具。 若玩家想要快速移動,可以藉由輸入一連串的方向控制鍵,即可快速移動。
     Like  Bookmark
  • 程式流程 初始畫面 座標顯示初始位置,而初始位置設定在地圖數值200的位置。地圖會直接顯示在螢幕上,為了確認顏色設定是否正確。 在地圖上移動顏色說明籃底白字X玩家可移動路徑白底牆壁黑底紅字P玩家當前位置黑底綠字M怪獸當前位置黃底白字$寶箱位置紅底白字D該地圖終點遊戲真正運行時,玩家只能看到特定範圍,並要求使用者輸入移動方向,使用char w、s、a、d表示上下左右,若輸入錯誤char則不會移動、若撞到牆會顯示文字提示。若遇到怪獸、寶箱則觸發事件。 觸發怪獸 當前地圖向下移動(s),則遇到怪獸,開啟下方戰鬥畫面。戰鬥畫面顯示回和數,最高50回合(理論上無法到達)。角色資訊顯示玩家角色HP、EXP、Money,怪獸只顯示HP。 玩家回合可選擇攻擊或特殊能力,分別輸入a、s。在怪獸攻擊時,不同怪獸的攻擊模式皆不同,如下表:怪獸攻擊模式Goblin攻擊上一次攻擊自己的玩家Zombie針對特定玩家持續攻擊,直到該玩家死亡JWMaster尋找血量最高者攻擊
     Like  Bookmark
  • FSM 說明 此個數計數器共有4種模式,分別計算不同區域內的座標點個數。而我們是以逐點座標計算的方式來實作,亦即從座標(1,1)~(8,8)逐點計算與圓心的距離,並同時計算半徑平方。經過距離比對後,決定計數器是否加一,大致流程如下: 從tb取圓心、半徑的資料。 從座標(1,1)~(8,8)逐點計算與圓心距離(不同模式下,計算距離的數量不同,詳見狀態說明)。 距離符合該模式下之區塊,則計數器加一,否則計數器不變。接著回到第2步驟,計算下一座標點。 座標點(8,8)計算完成,輸出計數器結果。 <font size=5>FSM diagram:</font> ![](https://i.imgur.com/OJduT8R.png =500x400)
     Like  Bookmark