程式设计期末报告.PPT

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程式设计期末报告

程式設計期末報告 400415032陳益群 400415012黃士展 名稱:五子棋 內容:傳統的五子棋,還有其他模式之玩法 使用說明:用上下左右鍵控制其移動方向,利用空白鍵下棋。先達到五顆同色棋連成一線者為贏。 程式內容 5月 week1—棋盤的製作 5月 week 2—棋子移動時之判斷 5月 week3 —下棋勝負之判斷 5月 week4-----動畫製作 工作日誌(1) 6月 week1---程式其他模式製作 6月week2---整合所有物件 6月 week3----除錯 工作日誌(2) (1)分析問題 五子棋目的為同色棋子五顆連成一條線者勝 需要先設計棋盤,利用矩陣儲存棋子,再判斷是否連成一條線。 發展文件 (2)分析過程—函式 判斷副函式: int find1(int); int find2(int);int find3(int); int find4(int); 玩家棋子:int play_1(void); int play_2(void); 限時模式:int time_1(int); int time_2(int); 電腦隨機:int computer(void); 動畫:void first(void); void second(void); void win_1(void); void win_2(void); void number(void); void first(void); void second(void); void win_1(void); void win_2(void); void number(void); (2)分析過程 需要: First,second 副函式管理開頭動畫 Play_1,Play_2副函式管理下棋的過程 Time_1,time_2副函式管理限時時間 win_1,win_2副函式管理勝利動畫 Computer副程式管理電腦隨機下棋 Number 副函式管理倒數動畫 (2)分析過程 需要利用gotoxy來移動游標位址來下棋 以kbhit()來偵測鍵盤動作 以if判斷棋子是否連成一條線與判斷鍵盤輸入指令是否符合選項 用switch分類選項執行符合條件的動作 (2)分析過程 --程式結構 1.棋盤製作:尋找可用之圖形,最終選擇使用全形繁體所提供之圖形格子,以及因螢幕大小選擇使用15*15之棋盤 2.棋子之顯示:利用迴圈使未下之棋子閃爍,但因使用延遲函式,因此會影響到反應時間,最終經多次測試選擇了最適切之延遲時間 3.棋子之移動:使用無限迴圈及getch抓取按鍵,並使其移動,但在判斷式上複雜,必須考慮許多可能,因此可說是程式碼中較為複雜的地方,在測試途中時常發現缺陷,要馬上補上判斷式修改 程式測試(1) 勝負之判斷:勝負判斷因五子棋規則明瞭,因此有較簡潔之判斷式,反而是迴圈的邏輯較耗時間,時常想的與結果不同,導致判斷不出輸贏 下一子之位子:下一子顯示位置之判斷看似簡潔,但常常會有漏看之可能性,導致程式bug,經過多次測試才將其改到不會相撞 下一子之位子:下一子顯示位置之判斷看似簡潔,但常常會有漏看之可能性,導致程式bug,經過多次測試才將其改到不會相撞 程式測試(2) 限時模式:用sleep去抓大約的時間,主要是在已寫好的主程式上附加東西,因此相對好寫,但一開始無法掌握較好的寫法,時常讓程式陷入死當的狀態 亂入模式:因放棋子的位置是電腦隨機,但有些結果用隨機反而會使程式當掉,因此改用較為複雜的寫法,但也解決了死當的問題 陳益群---動畫 黃士展----遊戲內容 分工

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档