07.06.2015 Views

報告下載 - 資訊科

報告下載 - 資訊科

報告下載 - 資訊科

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

台 北 市 大 安 高 級 工 業 職 業 學 校<br />

資 訊 科 100 學 年 度<br />

專 題 製 作 報 告<br />

網 路 多 人 連 線 遊 戲 大 廳<br />

Multi person Segment game lobby<br />

(MSGL)<br />

班 級 : 資 訊 三 甲<br />

組 別 :101a09<br />

組 員 : 徐 碩 駿 (9806115)<br />

錢 國 武 (9806138)<br />

周 詩 凱 (9806110)<br />

傅 文 新 (9806127)<br />

指 導 老 師 : 楊 敏 男 老 師<br />

完 成 日 期 :101 年 一 月<br />

I


中 文 摘 要<br />

我 們 所 製 作 的 專 題 稱 為 網 路 多 人 連 線 遊 戲 大 廳 (Multi person Segment game<br />

lobby) 主 要 目 的 是 在 這 個 以 網 路 世 界 為 主 現 實 為 輔 的 時 代 中 , 可 以 讓 各 地 的 網 友<br />

在 這 新 的 平 台 上 多 一 個 聊 天 和 遊 戲 的 選 擇 , 這 個 平 台 不 像 一 般 即 時 通 或 是 MSN,<br />

比 較 像 是 一 般 網 路 上 的 聊 天 室 , 可 以 讓 多 個 人 在 同 一 個 聊 天 室 中 進 行 交 談 , 除 了<br />

交 談 之 外 還 有 許 多 遊 戲 供 使 用 者 選 擇 , 遊 戲 中 包 含 黑 白 棋 、21 點 以 及 塗 鴉 牆 ,<br />

這 些 小 程 式 除 了 可 以 增 添 朋 友 之 間 的 友 誼 , 也 可 以 在 這 平 台 中 認 識 新 的 朋 友 。 本<br />

專 題 以 連 線 功 能 為 主 軸 , 將 其 套 用 在 遊 戲 及 聊 天 室 上 , 利 用 c# 撰 寫 程 式 , 撰 寫<br />

時 探 討 遊 戲 中 的 邏 輯 思 考 , 再 加 上 Sever 端 及 Client 端 之 間 的 資 料 傳 遞 , 製 作<br />

出 可 連 線 的 遊 戲 大 廳 , 無 論 你 身 在 何 處 , 只 要 有 一 台 電 腦 和 網 路 , 到 處 都 可 以 是<br />

你 的 聊 天 室 。<br />

I


目 錄<br />

中 文 摘 要 ………………………………………………………………………… Ⅰ<br />

目 錄 ……………………………………………………………………………… Ⅱ<br />

表 目 錄 …………………………………………………………………………… Ⅲ<br />

圖 目 錄 …………………………………………………………………………… Ⅳ<br />

第 1 章 緒 論 ……………………………………………………………………… 1<br />

1-1 專 題 製 作 背 景 及 目 的 ……………………………………………… 1<br />

1-2 專 題 製 作 方 法 與 步 驟 ……………………………………………… 1<br />

1-3 預 期 成 果 …………………………………………………………… 2<br />

1-4 工 作 分 配 …………………………………………………………… 4<br />

第 2 章 理 論 探 討 ………………………………………………………………… 5<br />

2-1 System.Net.Sockets.Socket……………………………………… 5<br />

2-2 主 從 式 架 構 模 型 (Client/Server model) ……………………… 6<br />

第 3 章 專 題 設 計 ( 一 )…………………………………………………………… 7<br />

3-1 Server 介 紹 ………………………………………………… …… 7<br />

3-2 理 論 說 明 ………………………………………………………………8<br />

3-3 遊 戲 大 廳 介 紹 …………………………………………………………10<br />

3-4 理 論 說 明 …………………………………………………………… 12<br />

第 4 章 專 題 設 計 ( 二 )…………………………………………………………… 15<br />

4-1 21 點 介 紹 ……………………………………………………… …… 15<br />

4-2 理 論 說 明 ………………………………………………………… …16<br />

第 5 章 專 題 設 計 ( 三 )…………………………………………………… ……17<br />

5-1 塗 鴉 牆 …………………………………………………………… …17<br />

5-2 理 論 說 明 ……………………………………………………………18<br />

5-3 實 驗 結 果 及 介 紹 ……………………………………………………19<br />

第 6 章 專 題 設 計 ( 四 )……………………………………………………………20<br />

6-1 黑 白 棋 介 紹 …………………………………………………………20<br />

6-2 理 論 說 明 ……………………………………………………………20<br />

6-3 實 驗 結 果 及 介 紹 ……………………………………………………22<br />

第 7 章 專 題 結 論 ………………………………………………………………23<br />

II


7-1 貢 獻 與 價 值 ………………………………………………………23<br />

7-2 心 得 ………………………………………………………………23<br />

參 考 文 獻 ………………………………………………………………………… 25<br />

表 目 錄<br />

表 1-1 工 作 分 配 …………………………………………………………………4<br />

圖 目 錄<br />

圖 1-1 製 作 的 過 程 ………………………………………………………………2<br />

圖 1-2 塗 鴉 牆 ……………………………………………………………………2<br />

圖 1-3 21 點 …………………………………………………………………………3<br />

圖 1-4 黑 白 棋 ……………………………………………………………………3<br />

圖 1-5 團 體 照 ……………………………………………………………………4<br />

圖 2-1 Socket 流 程 圖 …………………………………………………………5<br />

圖 2-1 主 從 式 架 構 ………………………………………………………………6<br />

圖 3-1 sever 圖 ……………………………………………………………………7<br />

圖 3-2 sever 啟 動 圖 ………………………………………………………………8<br />

圖 3-3 server 端 流 程 圖 …………………………………………………………9<br />

圖 3-4 登 入 ……………………………………………………………………… 10<br />

圖 3-5 邀 請 ………………………………………………………………………10<br />

圖 3-6 遊 戲 大 廳 …………………………………………………………………11<br />

圖 4-1 黑 白 棋 介 面 ………………………………………………………………15<br />

圖 5-1 21 點 介 面 ………………………………………………………………19<br />

圖 6-1 小 畫 家 介 面 ………………………………………………………………22<br />

III


1-1 專 題 製 作 背 景 及 目 的 :<br />

第 1 章 緒 論<br />

在 假 日 中 除 了 努 力 讀 書 之 外 當 然 也 少 不 了 娛 樂 以 及 休 息 , 在 網 路 上 聊 天 、 遊<br />

戲 、 購 物 是 絕 對 少 不 了 的 , 提 到 遊 戲 , 想 必 大 家 一 定 有 玩 過 單 機 的 遊 戲 吧 ! 棋 藝<br />

類 、 射 擊 類 、RPG 遊 戲 、 闖 關 遊 戲 …… 在 遊 戲 中 總 會 有 打 不 贏 的 敵 人 和 過 不 了 的<br />

關 卡 , 是 我 太 爛 了 嗎 ? 還 是 說 電 腦 太 強 ? 無 聊 想 說 話 時 要 跟 誰 說 話 呢 ? 在 單 機 遊<br />

戲 中 電 腦 總 是 用 同 樣 的 話 重 複 輸 出 。<br />

如 果 把 單 機 遊 戲 改 成 可 以 跟 朋 友 互 動 的 網 路 多 人 遊 戲 , 相 信 這 樣 可 以 增 加 朋<br />

友 跟 朋 友 之 間 的 互 動 , 想 聊 天 時 也 不 會 覺 得 無 聊 單 調 , 像 這 樣 可 以 一 邊 聊 天 一 邊<br />

遊 戲 另 一 方 面 又 可 以 增 加 信 心 , 那 我 們 就 可 以 享 受 到 真 正 玩 遊 戲 的 快 感 。<br />

在 大 家 一 番 討 論 後 決 定 要 做 「 網 路 多 人 連 線 遊 戲 大 廳 」 在 這 程 式 中 有 四 個 主<br />

要 的 程 式 有 黑 白 棋 、21 點 、 塗 鴉 牆 以 及 最 主 要 的 遊 戲 大 廳 , 在 後 面 還 會 依 序 介<br />

紹 。<br />

1-2 專 題 製 作 方 法 與 步 驟<br />

我 們 這 組 討 論 分 析 之 後 , 決 定 把 專 題 分 成 3 個 部 分 , 主 要 以 Socket C# 語 言<br />

和 Client-Server 架 構 為 主 , 美 工 的 部 分 以 PhotoImpact 為 主 , 影 片 以 及 後 製 的<br />

部 分 以 威 力 導 演 和 Camtasia Studio, 在 遊 戲 大 廳 中 我 們 利 用 Client-Server 架<br />

構 , 美 工 部 分 我 們 利 用 PhotoImpact, 我 們 主 要 撰 寫 遊 戲 程 式 是 利 用 C# 語 言 , 影<br />

片 用 威 力 導 演 下 面 是 我 們 製 作 的 過 程 。<br />

1


( 圖 1-1)<br />

1-3 預 期 成 果<br />

我 們 的 預 期 成 果 希 望 能 和 目 前 市 面 上 的 遊 戲 平 台 一 樣 有 一 個 華 麗 的 介 面 , 可<br />

以 邀 請 朋 友 遊 戲 和 跟 朋 友 聊 天 , 以 及 像 奇 摩 即 時 通 的 塗 鴉 牆 功 能 ( 如 圖 一 ), 能 在<br />

圖 畫 板 上 畫 出 想 要 的 訊 息 傳 遞 給 朋 友 。<br />

( 圖 1-2)<br />

2


至 於 遊 戲 的 部 分 , 由 於 現 在 大 多 數 的 線 上 遊 戲 都 需 要 花 太 多 的 時 間 來 進 行 , 所 以<br />

為 了 避 免 這 種 情 況 我 們 打 算 製 作 幾 樣 小 品 遊 戲 , 可 以 用 來 與 朋 友 互 動 , 但 是 卻 不<br />

會 沉 迷 於 遊 戲 中 。 首 先 , 我 們 打 算 製 作 富 有 博 弈 性 質 的 二 十 一 點 ( 如 圖 二 )<br />

( 圖 1-3)<br />

賭 博 畢 竟 不 是 好 事 小 賭 怡 情 , 大 賭 傷 感 情 。 所 以 我 們 還 打 算 製 做 棋 藝 類 的 遊 戲 -<br />

黑 白 棋 ( 如 圖 三 ), 在 休 閒 的 時 候 可 以 與 朋 友 動 動 頭 腦 切 磋 一 下 棋 藝 。<br />

( 圖 1-4)<br />

3


1-4 工 作 分 配<br />

項 目<br />

專 題 構 思<br />

程 式 撰 寫<br />

美 工 後 製<br />

報 告 撰 寫<br />

影 片 製 作<br />

參 與 組 員<br />

徐 碩 駿 、 錢 國 武 、 周 詩 凱 、 傅 文 新<br />

徐 碩 駿 、 錢 國 武 、 周 詩 凱<br />

傅 文 新<br />

徐 碩 駿 、 錢 國 武 、 周 詩 凱 、 傅 文 新<br />

錢 國 武<br />

( 表 1-1)<br />

( 圖 1-5)<br />

4


第 2 章 理 論 探 討<br />

2-1 System.Net.Sockets.Socket<br />

Socket 類 別 針 對 網 路 通 訊 提 供 了 一 系 列 豐 富 的 方 法 和 屬 性 。 Socket 類 別 可 以 讓 您 使<br />

用 ProtocolType 列 舉 型 別 中 列 出 的 任 何 通 訊 協 定 來 執 行 同 步 的 和 非 同 步 的 (Asynchronous)<br />

資 料 傳 送 。<br />

( 參 考 來 源 :MSDN 論 壇 http://msdn.microsoft.com)<br />

( 圖 2-1)<br />

5


2-2 主 從 式 架 構 模 型 (Client/Server model)<br />

主 從 式 架 構 (Client–server model) 或 客 戶 端 - 伺 服 器 (Client/Server) 結<br />

構 簡 稱 C/S 結 構 , 是 一 種 網 路 架 構 , 它 把 客 戶 端 (Client) ( 通 常 是 一 個 採 用 圖 形<br />

用 戶 界 面 的 程 序 ) 與 伺 服 器 (Server) 區 分 開 來 。 每 一 個 客 戶 端 軟 體 的 實 例 都 可 以<br />

向 一 個 伺 服 器 或 應 用 程 序 伺 服 器 發 出 請 求 。 有 很 多 不 同 類 型 的 伺 服 器 , 例 如 文 件 伺<br />

服 器 、 終 端 伺 服 器 和 郵 件 伺 服 器 等 。 雖 然 它 們 的 存 在 的 目 的 不 一 樣 , 但 基 本 構 架 是<br />

一 樣 的 。<br />

主 從 式 架 構 通 過 不 同 的 途 徑 應 用 於 很 多 不 同 類 型 的 應 用 程 序 , 最 常 見 就 是 目 前 在 網<br />

際 網 路 上 用 的 網 頁 。 例 如 , 當 你 在 維 基 百 科 閱 讀 文 章 時 , 你 的 電 腦 和 網 頁 瀏 覽 器 就<br />

被 當 做 一 個 客 戶 端 , 同 時 , 組 成 維 基 百 科 的 電 腦 、 資 料 庫 和 應 用 程 序 就 被 當 做 伺 服<br />

器 。 當 你 的 網 頁 瀏 覽 器 向 維 基 百 科 請 求 一 個 指 定 的 文 章 時 , 維 基 百 科 伺 服 器 從 維 基<br />

百 科 的 資 料 庫 中 找 出 所 有 該 文 章 需 要 的 信 息 , 結 合 成 一 個 網 頁 , 再 發 送 回 你 的 瀏 覽<br />

器 。<br />

主 從 式 架 構 由 美 國 Borland 公 司 最 早 研 發 , 目 前 最 流 行 的 兩 大 主 流 軟 體 體 系 結 構 之<br />

一 , 另 一 個 是 美 國 微 軟 公 司 研 發 的 瀏 覽 器 - 伺 服 器 (Browser/Server,B/S) 結 構 。<br />

伺 服 器 端 一 般 使 用 高 性 能 的 計 算 機 , 並 配 合 Oracle、Sybase 等 大 型 資 料 庫 ; 客 戶 端<br />

需 要 安 裝 專 門 的 軟 體 。 在 這 種 結 構 下 , 可 以 在 伺 服 器 和 客 戶 端 平 衡 服 務 處 理 量 , 但<br />

因 為 客 戶 端 安 裝 了 專 門 的 軟 體 , 對 平 台 有 一 定 限 制 要 求 , 安 裝 和 維 護 的 工 作 量 大 。<br />

( 參 考 來 源 : 維 基 百 科 )<br />

( 圖 片 來 源 : http://knol.google.com)<br />

( 圖 2-2)<br />

6


第 3 章 專 題 設 計 ( 一 )<br />

3-1 Server 介 紹<br />

1<br />

2 3<br />

4<br />

5<br />

( 圖 3-1)<br />

1. 輸 入 伺 服 器 的 IP<br />

2. 輸 入 要 使 用 的 Port<br />

3. 啟 動 Server<br />

4. 使 用 者 資 訊<br />

5. 在 現 上 的 使 用 者 名 單<br />

7


( 圖 3-2)<br />

3-2 理 論 說 明<br />

8


Server 端 流 程 圖<br />

( 圖 3-3)<br />

9


3-3 遊 戲 大 廳 介 紹<br />

遊 戲 大 廳 分 成 3 部 分<br />

登 入 、 邀 請 、 大 廳<br />

登 入 :<br />

1<br />

1. 輸 入 你 想 要 的 名 字<br />

2. 輸 入 severIP<br />

3. 輸 入 sever 端 指 定 的<br />

port ( 圖 3-4)<br />

2<br />

3<br />

4<br />

4. 輸 入 完 畢 後 就 可 以 按 下 連 線 連 進 遊 戲 大 廳<br />

邀 請 :<br />

1<br />

2<br />

3<br />

( 圖 3-5)<br />

1. 清 單 中 有 三 的 遊 戲 分 別 是 黑 白 棋 、 塗 鴉 牆 、 二 十 一 點 可 以 選 其 中 一 個 。<br />

2. 選 好 遊 戲 後 可 以 按 下 確 認 進 入 遊 戲<br />

3. 取 消 可 以 跳 回 遊 戲 大 廳<br />

10


遊 戲 大 廳<br />

1<br />

5<br />

4<br />

2 3<br />

( 圖 3-6)<br />

1. 連 線 視 窗 告 訴 你 現 在 有 誰 在 線 上<br />

2. 找 但 你 想 要 對 戰 的 朋 友 , 按 下 邀 請 鈕<br />

3. 打 字 區 把 你 想 要 說 的 話 打 在 這<br />

4. 按 下 送 出 會 傳 出 去<br />

5. 對 話 方 塊 會 知 道 對 方 說 什 麼<br />

11


3-4 理 論 說 明<br />

以 上 為 Client 端 全 部 的 類 別 和 表 單 , 其 中 Global 類 別 為 用 來 儲 存 整 個 專 案 都 要<br />

用 到 的 全 域 變 數 的 類 別 。<br />

一 開 始 和 Server 連 線 是 靠 LogIn 裡 面 的 程 式 碼<br />

12


登 入 後 都 是 由 GameLobby 表 單 來 和 Server 進 行 傳 送 , 傳 送 的 資 料 前 兩 碼 為 指 令<br />

碼 , 這 樣 Server 收 到 訊 息 後 就 能 依 據 指 令 碼 作 相 對 應 的 動 作 , 以 下 為 指 令 碼 的<br />

對 應 動 作 及 傳 送 格 式 。<br />

13


在 Client 端 遇 到 的 最 大 問 題 是 如 何 在 監 聽 Server 訊 息 的 執 行 緒 上 調 度 UI 執 行 緒<br />

去 開 啟 表 單 , 最 後 我 們 使 用 SynchronizationContext 類 別 解 決 這 個 問 題 。<br />

14


4-1 黑 白 棋 介 紹<br />

第 4 章 專 題 設 計<br />

兩 個 人 在 64 個 格 子 內 , 相 互 圍 堵 對 方 的 棋 子 將 其 叛 變 成 自 己 的 顏 色 , 當 下<br />

滿 64 個 棋 子 時 棋 子 最 多 者 為 勝 。<br />

玩 家 要 利 用 滑 鼠 來 選 擇 位 置 下 棋 子 棋 盤 8x8 方 格 , 共 64 格<br />

一 開 始 棋 盤 中 央 放 置 4 顆 棋 , 黑 白 各 半 交 叉 排 列 下 子 位 置 必 須 能 夠 夾 擊 對 方 的 棋<br />

子 , 雙 方 輪 流 下 棋 當 己 方 的 一 子 與 最 後 下 的 一 子 成 一 直 線 ( 橫 、 直 、 斜 ,8 個 方 向 ),<br />

且 中 間 包 夾 到 對 方 的 棋 子 則 中 間 被 包 夾 的 棋 子 將 變 為 己 方 顏 色 , 若 一 方 無 處 可 下<br />

棋 子 則 換 對 方 下 , 雙 方 皆 無 棋 子 可 下 時 此 棋 局 結 束 。<br />

2<br />

3<br />

4<br />

5<br />

1<br />

圖 (4-1)<br />

15


1. 這 是 我 們 下 棋 的 棋 盤<br />

2. 當 你 沒 有 沒 地 方 下 時 可 以 按 下 PASS 鍵<br />

3. 這 是 計 算 黑 棋 與 白 棋 的 數 量 , 讓 你 確 的 掌 握 對 面 棋 子 的 數 量<br />

4. 讓 你 知 道 現 在 是 輪 到 黑 棋 還 是 白 棋<br />

5. 這 是 一 開 始 黑 白 棋 的 擺 法<br />

4-2 理 論 說 明<br />

這 個 遊 戲 我 們 是 使 用 一 個 二 維 陣 列 來 儲 存 棋 盤 上 的 棋 子 , 判 斷 都 結 束 後 在 繪<br />

製 到 PixtureBox 上 , 以 下 為 這 個 遊 戲 幾 個 較 為 重 要 的 函 式 。<br />

check_dir1 是 用 來 檢 查 上 下 左 右 的 變 色 條 件 是 否 成 立 , 而 check_dir2 是 左 上 、<br />

左 下 、 右 上 、 右 下 。<br />

以 下 為 連 線 部 分 , 分 別 為 自 己 下 完 傳 給 對 方 和 對 方 傳 給 自 己 。<br />

其 中 target_play 會 在 GameLobby 裡 被 呼 叫 。<br />

16


第 5 章 專 題 設 計<br />

5-1 21 點 介 紹<br />

21 點 分 成 加 錢 程 式 以 及 遊 戲 過 程<br />

遊 戲 目 的 就 是 要 取 得 最 接 近 二 十 一 點 的 點 數 , 而 又 不 能 超 過 二 十 一 點 ( 爆 掉 )。<br />

遊 戲 玩 法 :<br />

莊 家 一 開 始 選 擇 發 牌 並 且 下 注 , 接 著 雙 方 選 擇 拿 牌 或 著 pass,pass 的 一 方 將 不<br />

能 進 行 拿 牌 的 動 作 , 接 著 換 閒 家 下 注 , 最 後 將 統 計 兩 邊 點 數 並 將 獎 金 給 獲 勝 的 一<br />

方 。<br />

牌 的 面 值 :<br />

老 K、 皇 后 (Q)、 傑 克 (J) 及 10 點 牌 各 算 作 十 點 ;<br />

Ace(A) 牌 可 算 作 1 或 11 點 , 電 腦 會 自 動 幫 你 判 斷 最 有 利 的 選 擇 ;<br />

其 它 的 牌 ( 即 2 至 9) 則 以 其 面 值 計 算 。<br />

遊 戲 方 式 :<br />

莊 家 先 各 發 2 張 牌 , 之 後 玩 家 先 決 定 是 否 取 牌 , 再 來 換 莊 家 選 則 , 直 到 2 邊 都 按<br />

PASS 或 是 都 取 滿 5 張 牌 , 遊 戲 將 結 束 計 算 結 果<br />

最 接 近 21 者 獲 得 勝 利 。<br />

按 鈕 說 明 :<br />

發 牌 : 只 有 莊 家 可 按 , 按 完 後 2 邊 個 取 得 2 張 牌<br />

拿 牌 : 拿 取 一 張 牌<br />

PASS: 結 束 這 次 遊 戲 , 將 不 能 再 拿 牌<br />

再 來 一 局 : 重 新 一 局 新 的 遊 戲<br />

17


5-2 理 論 說 明<br />

21 點 這 個 遊 戲 總 共 有 4 個 視 窗 , 分 別 為 遊 戲 開 始 規 說 明 的 視 窗 、 讓 使 用 者<br />

下 注 的 Gamble 視 窗 、 莊 家 視 窗 、 閒 家 視 窗 , 為 了 不 讓 整 個 程 式 過 於 雜 亂 , 因 此<br />

我 們 為 了 21 點 這 個 遊 戲 開 了 一 個 類 別 _21Point 來 放 這 個 遊 戲 會 用 到 的 視 窗 以 及<br />

方 法 。<br />

遊 戲 用 到 的 視 窗 及 類 別<br />

_21Point 類 別<br />

18


5-3 實 驗 結 果 及 介 紹<br />

遊 戲 中 :<br />

1<br />

2<br />

5<br />

3<br />

4 6<br />

( 圖 5-1)<br />

1. 當 兩 邊 下 好 注 時 遊 戲 便 開 始 , 這 兩 張 牌 是 你 的 牌 。<br />

2. 對 面 的 牌 - 而 對 面 會 有 一 張 看 不 到 是 對 方 的 底 牌 。<br />

3. 當 你 覺 得 你 的 底 牌 太 小 時 可 以 按 拿 牌 , 但 小 心 不 要 超 過 21 點 唷 !<br />

4. 當 你 覺 得 你 的 牌 夠 大 了 , 可 以 按 下 PASS 讓 這 回 合 結 束 。<br />

5. 你 將 會 依 序 得 到 你 的 牌<br />

6. 無 聊 了 嗎 ? 可 以 去 玩 別 的 遊 戲 唷 ! 按 下 結 束 健 吧 !<br />

19


第 6 章 專 題 設 計<br />

6-1 塗 鴉 牆 :<br />

打 字 打 累 了 嗎 ? 可 以 用 畫 的 來 表 達 你 的 心 情 , 可 以 在 塗 鴉 牆 上 留 下 你 的 筆 跡 , 可<br />

以 放 大 你 的 畫 筆 , 可 以 儲 存 你 畫 的 畫 , 也 可 以 用 橡 皮 擦 擦 掉 你 的 錯 誤 , 也 有 筆 刷<br />

可 以 增 添 一 點 不 一 樣<br />

6-2 理 論 說 明<br />

中 間 學 到 超 多 的 部 分<br />

1. 如 何 抓 到 色 塊 的 顏 色 ?<br />

運 用<br />

Bitmap RGB = (Bitmap)this.colormove.Image; // 先 宣 告 bitmap<br />

colorchange.BackColor = RGB.GetPixel( 色 塊 座 標 x, 色 塊 座 標 y);// 然 後 再 抓 顏 色<br />

有 了 這 個 GetPixel 抓 顏 色 一 切 都 好 用 多 了<br />

2. 如 何 使 用 快 照 存 檔 呢 ?<br />

這 個 就 有 點 difficult 了 沒 關 西<br />

這 個 要 用 Directory.Exists(" 根 目 錄 ") & System.IO.File.Exists(" 檔 案 名 稱 ") 兩 個 方 法<br />

首 先 Directory.Exists(" 根 目 錄 ") 這 個 方 法 的 運 用 如 下<br />

if (!Directory.Exists(path)) // 先 判 斷 有 無 這 個 資 料 夾 如 果 沒 有 以 下 判 斷 就 會 成 立<br />

{ path = @"c:\savepicture"; // 創 立 根 目 錄 的 地 方<br />

DirectoryInfo di = Directory.CreateDirectory(path);// 讓 根 目 錄 創 立 }<br />

再 來 System.IO.File.Exists(" 檔 案 名 稱 ") 這 個 方 法 的 運 用 如 下<br />

if (!System.IO.File.Exists(name))// 先 判 斷 檔 案 是 否 存 在 如 果 沒 有 以 下 判 斷 就 會 成 立<br />

{ bmp.Save("C://savepicture/" + toolStripTextBox1.Text + ".bmp"); }// 創 立 檔 案<br />

3 . 然 後 如 果 發 生 檔 案 名 稱 重 複 時 該 怎 麼 辦 ?<br />

這 個 我 想 的 最 久<br />

首 先 我 們 用 一 個 迴 圈 來 實 現 它<br />

20


以 下 為 畫 完 後 把 bmp 轉 成 byte 陣 列 後 並 傳 送 的 程 式 碼 。<br />

以 下 為 收 到 對 方 畫 完 的 圖 並 從 byte 陣 列 轉 為 bmp<br />

21


6-3 實 驗 結 果<br />

( 圖 6-1)<br />

1. 鉛 筆 筆 刷 - 可 以 靈 活 地 運 用 細 線 條 來 勾 勒 出 你 想 要 的 畫 面<br />

2. 水 彩 筆 刷 - 讓 你 的 筆 刷 變 得 更 渾 厚 展 現 出 與 眾 不 同 的 感 覺<br />

3. 橡 皮 擦 - 當 你 一 有 錯 誤 時 用 它 可 以 立 即 修 正<br />

4. 空 白 頁 - 如 果 已 無 法 挽 回 輕 輕 按 一 下 就 可 以 讓 一 切 重 頭 開 始<br />

5. 快 照 - 有 美 好 的 畫 面 時 拍 下 來 讓 你 可 以 一 再 回 味<br />

6. 增 加 / 減 少 畫 筆 尺 寸 - 大 小 自 由 收 縮 方 便 好 用<br />

7. 快 照 存 檔 的 名 稱 - 可 以 取 一 個 自 己 想 要 的 檔 名<br />

8. 選 取 的 顏 色 - 按 下 色 塊 裡 的 其 中 一 個 顏 色 時 這 個 區 塊 就 會 出 現 你 選 取 的 顏 色<br />

9. 滑 動 的 顏 色 - 如 果 不 確 定 選 甚 麼 顏 色 可 經 由 滑 鼠 滑 動 色 塊 瀏 覽 不 同 的 色 彩<br />

10. 色 塊 - 多 彩 的 色 塊 任 君 選 擇<br />

11. 作 圖 區 - 可 以 展 現 你 偉 大 的 藝 術 天 分 拉<br />

22


第 7 章 專 題 結 論<br />

7-1 探 討 與 結 論<br />

現 在 市 面 上 的 通 訊 軟 體 越 來 越 多 , 使 用 上 卻 一 個 比 一 個 更 複 雜 , 在 日 新 月 異<br />

的 科 技 中 , 大 家 為 了 展 現 出 科 技 的 力 量 , 卻 遺 忘 了 最 原 始 的 單 純 。 我 們 決 定 要 回<br />

歸 最 原 本 的 簡 單 , 並 且 打 算 從 高 二 所 學 的 c# 著 手 。<br />

這 次 的 專 題 是 我 們 第 一 次 接 觸 c# 連 線 的 程 式 , 一 開 始 大 家 都 滿 懷 著 希 望 但 是<br />

做 到 一 半 時 才 發 現 遇 到 許 多 阻 礙 , 像 是 連 線 功 能 不 能 將 想 要 傳 遞 的 資 料 成 功 傳<br />

給 另 一 方 , 以 及 程 式 無 法 順 利 執 行 等 , 其 中 以 跨 執 行 續 存 取 最 為 複 雜 , 為 避 免 在<br />

listen 執 行 緒 上 開 啟 表 單 所 引 起 的 錯 誤 , 我 們 使 用 SynchronizationContext 類 別<br />

來 解 決 此 問 題 。 最 後 做 出 成 品 後 大 家 心 中 都 充 滿 了 喜 悅 與 成 就 感 , 大 家 都 了 解 到<br />

原 來 要 撰 寫 一 個 程 式 沒 有 想 中 簡 單 。<br />

這 次 做 的 專 題 讓 我 們 更 進 一 步 了 解 C# 程 式 的 各 種 應 用 以 及 小 組 合 作 的 重 要 ,<br />

包 含 程 式 如 何 在 電 腦 連 線 上 運 作 、 資 料 傳 遞 與 接 收 以 及 執 行 續 的 應 用 等 , 但 是 這<br />

次 的 專 題 在 時 間 上 並 沒 有 控 制 得 很 好 , 在 發 表 日 前 還 借 了 好 幾 堂 課 才 將 影 片 、 後<br />

製 以 及 程 式 除 錯 完 成 , 這 是 我 們 可 以 改 進 的 地 方 。<br />

7-2 心 得<br />

徐 碩 駿 :<br />

在 決 定 做 這 個 專 題 之 前 , 我 都 沒 有 寫 過 連 線 的 程 式 , 因 此 在 連 線 部 分 花 了 不<br />

少 時 間 。 除 了 連 線 外 , 這 也 是 第 一 次 做 這 麼 大 的 專 案 , 十 個 表 單 之 間 要 進 行 傳 遞<br />

也 遇 到 許 多 問 題 , 不 過 最 後 都 一 一 克 服 , 總 算 是 完 成 了 這 個 專 題 。 在 這 次 專 題 中 ,<br />

每 個 人 都 有 自 己 的 工 作 , 而 連 線 部 分 主 要 是 由 我 負 責 , 因 此 最 後 整 合 每 個 人 的 遊<br />

戲 變 成 我 最 主 要 的 工 作 , 經 過 這 次 專 題 , 我 終 於 體 會 到 所 謂 MVC 架 構 的 重 要 性 ,<br />

我 們 這 次 專 題 並 沒 有 使 用 MVC 架 構 , 程 式 碼 部 分 也 沒 有 明 確 的 註 解 , 而 且 每 個 人<br />

對 於 遊 戲 功 能 的 要 求 也 有 不 一 樣 的 理 解 , 因 此 在 整 合 時 如 果 發 現 哪 一 部 分 程 式 並<br />

不 符 合 原 本 的 要 求 , 修 改 起 來 變 得 非 常 困 難 , 這 次 專 題 真 的 學 到 很 多 , 除 了 程 式<br />

部 分 外 , 對 於 團 隊 合 作 和 專 案 開 發 更 是 受 益 良 多 。<br />

23


錢 國 武 :<br />

我 覺 得 這 次 的 專 題 讓 我 學 到 非 常 的 多 。 在 製 作 專 題 的 過 程 中 , 我 是 負 責 小 畫<br />

家 的 部 分 。 寫 程 式 的 過 程 中 , 對 於 程 式 裡 面 的 繪 圖 、 緩 衝 還 有 一 些 函 式 的 運 用 有<br />

更 進 一 步 的 了 解 , 並 去 實 現 其 程 式 的 功 能 。 當 然 除 了 程 式 的 部 分 , 更 重 要 的 是 團<br />

隊 合 作 的 精 神 。 在 製 作 的 過 程 中 難 免 會 有 些 意 見 的 不 合 , 但 經 過 討 論 與 溝 通 , 了<br />

解 彼 此 的 想 法 並 達 成 共 識 , 集 聚 大 家 的 努 力 完 成 這 次 的 專 題 。 最 後 還 要 感 謝 老 師<br />

的 指 導 並 給 我 們 這 次 的 機 會 學 到 那 麼 多 東 西 。<br />

周 詩 凱 :<br />

這 次 的 專 題 讓 我 學 到 很 多 以 前 不 知 道 的 東 西 , 尤 其 是 連 線 的 部 分 , 以 前 從 未 碰<br />

過 類 似 的 東 西 , 所 以 學 起 來 有 點 吃 力 。 我 主 要 是 負 責 21 點 的 相 關 程 式 , 基 本 來<br />

說 並 沒 有 很 困 難 的 程 式 碼 , 但 是 做 出 成 品 的 感 覺 還 是 很 興 奮 , 做 完 這 次 專 題 後 讓<br />

我 了 解 到 其 實 製 作 一 個 專 題 沒 有 想 中 的 這 麼 簡 單 , 光 是 要 擬 定 一 個 題 目 出 來 就 需<br />

要 花 費 很 多 的 時 間 , 再 來 分 工 跟 時 間 分 配 的 部 分 也 要 掌 握 得 很 好 , 只 要 任 何 一 個<br />

環 節 出 現 問 題 都 會 拖 累 到 整 組 的 進 度 , 其 實 做 專 題 不 只 是 要 學 會 城 市 更 要 學 會 如<br />

何 與 人 做 , 我 覺 得 這 是 相 當 重 要 的 。<br />

傅 文 新 :<br />

經 過 這 次 專 題 我 發 現 網 路 上 的 小 遊 戲 對 我 來 說 已 經 不 算 是 小 遊 戲 了 , 在 製 作 這 小<br />

遊 戲 中 一 定 有 很 多 人 在 後 面 撰 寫 程 式 , 就 像 是 製 作 小 專 題 一 樣 在 我 們 專 題 中 我 負<br />

責 美 工 以 及 報 告 的 部 分 , 利 用 網 路 上 的 圖 片 加 以 修 改 , 讓 整 個 程 式 看 起 來 更 完 美 ,<br />

報 告 也 打 了 很 久 Word 檔 也 要 注 意 格 式 , 標 題 、 內 文 字 體 大 小 都 要 正 確 , 在 專 題<br />

中 雖 然 我 的 貢 獻 度 不 大 , 但 我 有 努 力 把 我 的 部 分 完 成 , 期 許 以 後 還 有 要 製 作 專 題<br />

可 以 試 著 撰 寫 程 式 。<br />

24


參 考 文 獻<br />

MSDN 論 壇 http://msdn.microsoft.com<br />

維 基 百 科<br />

http://zh.wikipedia.org/wiki/Wikipedia:%E9%A6%96%E9%A1%B5<br />

圖 片 來 源 : http://knol.google.com<br />

25

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!