推 asadman1523:好用心xD 06/17 01:16
※ 引述《jesschen (憨憨SmallMi)》之銘言:
hint 都表示了可將結果暫存最後一起印出, 就姑且稱它為 Canvas 吧!
對一個畫布我們可以作以下的操作
create: 創建一個空白畫布(都是空白字元)
draw: 畫一個字元在畫布上特定位置
read: 讀取畫布上特定位置的字元
destroy: 摧毀一個不會再用到的畫布
要畫一個高度為 h 的三角形, 畫布的高度至少要 h * 4 / 3 才能裝得
下六芒星, 寬度也至少要是 2 * h - 1. 因為此題明確給你 h 的上限是
100, 所以畫布的最大高度=133, 最大寬度為=199, 現階段定義成陣列即
可, 程式碼如下:
http://codepad.org/SWC2L2bU
再來就是要分別在此畫布上畫出正/反兩個三角形.
如果將畫三角形的工作交給專責函式, 我們應該給它哪些繪圖資訊呢?
當然 h 是一定要給的, 而三角形的座標就有以下兩種選擇:
(a) 給左端點的座標
(b) 給中間頂點的座標
位置示意圖如下
*
*******
*****
*******
*
看來對於函式的 client 而言, 傳入 (b) 是最簡單的, 也免去了冗餘
的座標計算, 完整程式碼如下:
http://ideone.com/my6Qh
--
≡≡≡≡╔═══╗╔═══╗ ◎ ╔═╗═╗╔═══╗╔═══╗╔╦═╦╗≡≡≡≡
≡金栽經║ ╔╗ ║║ ╔╗ ║╔╗║ ║ ║║ ═ ║║ ╔╗ ║║║ ║║RAINNOUS
≡≡≡≡║ ╚╝ ║║ ╚╝ ║║║║ ║║ ╞╣║ ║║ ║║ ║≡≡≡≡
≡≡≡≡║ ═╣║ ╥ ║║║║ ║ ║║ ═ ║║ ╚╝ ║║ ║ ║≡≡≡≡
≡高佑麗╚═╩═╝╚═╩═╝╚╝╚═╚═╝╚═══╝╚═══╝╚═╩═╝鄭允慧≡
≡≡≡≡≡趙賢榮≡≡≡金智淑≡≡≡RAINBOW≡≡≡盧 乙≡≡≡吳勝雅≡ψmocki
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.121.221.213
※ 編輯: loveme00835 來自: 140.121.221.213 (06/17 01:13)