第一篇:區域游戲五子棋
10:10-10:40 區域游戲
一、活動目標:
1、新增區域中幼兒能迅速接受理解新游戲。
2、大膽選擇自己喜歡的游戲材料和游戲內容,自主愉快地游戲。
3、能與同伴合作游戲,積極交流自己的想法。
二、活動準備:
1、經驗準備:知道各區域的游戲玩法。
2、物質準備:(1)各區游戲材料如:穿編游戲、飛行棋、小畫板等。
(2)新增游戲區域材料如:五子棋
3、區域內容:
(1)公共區域:大舞臺、美發屋等。(2)班級區域:
(3)美食區(關東煮):肉串、涮爐等。
美食區(面包店):面包、披薩等。
美食區(咖啡店):咖啡機、桌椅等。
動手區(制作區):剪刀、雙面膠等。
動手區(編織區):編制籃等。
益智區(好玩的磁鐵):磁鐵、迷宮板等。
益智區(解鎖):鎖、鑰匙等。
閱讀區:書籍,桌椅等。
三、活動過程:
(一)介紹玩法,激發興趣。
教師:今天我們的益智區有了新的棋類游戲——五子 棋。
五子棋是中國民間的一種棋類小游戲,十分地簡單,誰先橫排、豎排、斜排列出5個棋子就算獲勝。
(在電腦上下載五子棋的小游戲進行演示,并講解。)
(二)提出要求,注意安全。
師:
游戲前老師有幾點要求提醒大家。
1、動手區里做粘貼畫時要注意不要把豆子撒在地上,更不能放進鼻子耳朵里。
2、建構區的小朋友在堆擺易拉罐的時候請輕拿輕放。
3、益智區里初學五子棋的小朋友遇到問題主動找老師。
4、要和其他小朋友文明交往、合作,學會謙讓。
5、垃圾放在垃圾桶,不可以隨地亂丟。
小朋友們坐坐好,坐的好的小朋友先插卡進區。
(三)自主進區,觀察記錄
1、了解幼兒入區的情況,是否全部入區,情緒如何。
2、關注各區域活動情況,教師適當加入。
3、仔細觀察并記錄,給予有困難的幼兒幫助。
4、提醒幼兒遵守游戲規則,學會謙讓合作。
(四)重點指導手工區——五子棋
(五)結束活動,觀察記錄。整理和收拾
督促幼兒收拾整理,做到輕、快、齊,教師協助收拾整理。
(六)游戲評價
(1)講解與展示
幼兒自己介紹自己的作品,感受成功后的快樂。
(2)交流與發現
讓幼兒交流今天的活動,活動中開心的事情和遇到的問題。
(3)小結
表揚與批評,出示活動中拍攝的照片進行點評,提出新要求。
第二篇:五子棋游戲軟件工程課程設計
軟件工程設計
專 業:班 級:姓 名:學 號:指導老師:
I
目錄
第一章 需求分析.......................................................1 1.1 總體分析..........................................................1 1.2 初始化............................................................1 1.3 主循環控制模塊....................................................1 1.4 玩家下子..........................................................1 1.5 盤面分析填寫棋型表................................................2 1.6 對方下子..........................................................2 1.7 勝負判斷..........................................................2 第二章 功能描述.......................................................3 2.1 功能模塊圖........................................................3 2.2 功能說明..........................................................3 第三章 系統設計.......................................................4 3.1 流程圖............................................................4 3.2 流程圖說明........................................................5 第四章 運行結果.......................................................6 第五章 總結...........................................................7 附錄一 源代碼.........................................................8
II
軟件工程設計
五子棋游戲
第一章 需求分析
1.1 總體分析
軟件需求分析是軟件開發周期的第一個階段,也是關系到軟件開發成敗的關鍵一步。對于任何一個軟件而言,需求分析工作都是至關重要的一步。只有通過軟件需求分析,才能把軟件的功能和性能由總體的概念性描述轉化為具體的規格說明,進而建立軟件開發的基礎。實踐表明,需求分析工作進行得好壞,在很大程度上決定了軟件開發的成敗。
軟件需求分析的任務是:讓用戶和開發者共同明確將要開發的是一個什么樣的軟件。具體而言,就是通過對問題及其環境的理解、分析和綜合,建立邏輯模型,完成新軟件的邏輯方案設計。
基于本游戲,首先得為整個棋盤建立一張表格用以記錄棋子信息,我們使用一個15*15的二維數組Table[15][15](15*15是五子棋棋盤的大小),數組的每一個元素對應棋盤上的一個交叉點,用‘0’表示空位、‘1’代表己方的子、‘2’代表對方的子;這張表也是今后分析的基礎。在此之后還要為兩個玩家雙方各建立一張棋型表Computer[15][15][4]和Player[15][15][4],用來存放棋型數據。
1.2 初始化
首先,建立盤面數組Table[15][15]、對戰雙方的棋型表Computer[15][15][4]和Player[15][15][4]并將它們清零以備使用;然后初始化顯示器、鍵盤、鼠等輸入輸出設備并在屏幕上畫出棋盤(棋盤可以不顯示)。
1.3 主循環控制模塊
控制下棋順序,當輪到某方下子時,負責將程序轉到相應的模塊中去,主要擔當一個調度者的角色。
1.4 玩家下子
當輪到玩家下時,您通過鍵盤或鼠標在棋盤上落子,程序會根據該點的位置,在Table[15][15]數組的相應地方記錄‘2’,以表明該子是玩家下的。
軟件工程設計
1.5 盤面分析填寫棋型表
您在下五子棋時,一定會先根據棋盤上的情況,找出當前最重要的一些點位,如“活三”、“沖四”等;然后再在其中選擇落子點。先來分析己方的棋型,我們從棋盤左上角出發,向右逐行搜索,當遇到一個空白點時,以它為中心向左挨個查找,如果遇到己方的子則記錄然后繼續,如果遇到對方的子、空白點或邊界就停止查找。左邊完成后再向右進行同樣的操作;最后把左右兩邊的記錄合并起來,得到的數據就是該點橫向上的棋型,然后把棋型的編號填入到Computer[x][y][n]中就行了(x、y代表坐標,n=0、1、2、3分別代表橫、豎、左斜、右斜四個方向)。而其他三個方向的棋型也可用同樣的方法得到,當搜索完整張棋盤后,己方棋型表也就填寫完畢了。然后再用同樣的方法填寫對方棋型表。
注意:所有棋型的編號都要事先 定義好,越重要的號數越大!
1.6 對方下子
有了上面填寫的兩張棋型表,就是遍歷棋型表Computer[15][15][4]和Player[15][15][4]找出其中數值最大的一點,在該點下子即可。但這種算法的弱點非常明顯,只顧眼前利益,不能顧全大局,這就和許多五子棋初學者一樣犯了“目光短淺”的毛病。如果在這兒下子將會形成對手不得不防守的棋型(例如:‘沖四’、‘活三’);那么下一步對手就會照您的思路下子來防守您,如此一來便完成了第一步的預測。這時再調用模塊4對預測后的棋進行盤面分析,如果出現了‘四三’、‘雙三’或‘雙四’等制勝點,那么己方就可以獲勝了(當然對黑棋而言‘雙三’、‘雙四’是禁手,另當別論);否則照同樣的方法向下分析,就可預測出第二步、第三步??
等一等,要是盤面上沒有對手必須防的棋型,哪該怎么辦呢?進攻不成的話就得考慮防守了,將自己和對手調換一下位置,然后用上面的方法來預測對手的棋,這樣既可以防住對手巧妙的攻擊,又能待機發動反擊,何樂而不為呢!
1.7 勝負判斷
務須多言,某方形成五子連即獲勝;若黑棋走出‘雙三’、‘雙四’或長連即以禁手判負。
軟件工程設計
第二章 功能描述
2.1 功能模塊圖
五子棋游戲判斷棋盤是否已滿判斷是否出錯并提示判斷那方獲勝交替循環雙方下棋 圖2.1 功能模塊圖
2.2 功能說明
該五子棋程序基本上實現了五子棋的游戲功能,有雙方下棋的界面及最終判定結果的界面。同時該游戲采用二維坐標實現,明了易懂,方便玩家在游戲過程中的基本操作,使游戲更加簡便。在細節方面,該系統提供實時存儲功能,隨時記錄為完成的游戲,使用戶可以很好的處理意外中斷的情況。該游戲基本實現了游戲的一些要求和特征。在游戲的源程序及文檔方面,我們也嚴格遵守軟件工程思想,立足實驗要求,確定任務,需求分析,設計和編碼,每個步驟力求清晰易懂。原代碼注釋詳盡,各功能模塊功能分明,可移植性強。當然該系統也有很多不足的地方,第一次進行獨立的課程設計,也有很多細節方面是考慮到的,這款游戲也是在不斷的調試和修改中產生和完善的。希望老師能夠指出不足,幫助我不斷提高。
軟件工程設計
第三章 系統設計
3.1 流程圖
開始棋盤已滿是輸出平局否“0”方選位置判斷該位置是否有棋有另找位置無“0”方落子否判斷“0”方是否獲勝是輸出“0”方獲勝否棋盤已滿是輸出平局結束否“x”方選位置判斷該位置是否有棋有另找位置無“x”方落子判斷“x”方是否獲勝是輸出“x”方獲勝 圖3.1 流程圖
軟件工程設計
3.2 流程圖說明
本程序定義了各種操作函數、各種狀態判定宏,思想明確,思路清晰。各個判斷選擇了不同路徑,因此繼續進行或輸出結果。程序中,“循環”的利用非常直接和清晰,雙方交替下棋,因此循環往復。最終決出勝負或最終平局。分析時,也考慮了許多種情況,針對各個情況均作出了相對措施和解決方案。
程序采用循環進行雙方交替下棋,并進行了很多判斷。首先判斷棋盤是否已滿,若棋盤已滿,則輸出平局,結束游戲;若棋盤未滿,則繼續進行。然后判斷“0”方是否勝出,若“0”方獲勝,則輸出“0”方獲勝,結束游戲;若“0”方沒有獲勝,則繼續進行。再判斷“x”方是否獲勝,若“x”方獲勝,則輸出“x”方獲勝,結束游戲;若“x”方沒有獲勝,則繼續進行。回到“首先”的判斷。如此循環??
軟件工程設計
第四章 運行結果
圖4.1 運行結果初始圖
圖4.2 游戲過程圖
圖4.3
軟件工程設計
圖4.4
圖4.5
軟件工程設計
圖4.6
圖4.7
軟件工程設計
圖4.8 游戲進行圖
圖4.9 “0”方獲勝圖
軟件工程設計
附錄一 源代碼
#include
using namespace std;
int Hsheng(char a[][15]);
//判斷o子是否獲勝的函數
int Bsheng(char a[][15]);
//判斷x子是否獲勝的函數
int he(char a[][15]);
//判斷是否平局(也就是棋盤下滿了)的函數
void qipan(char a[15][15])
//執行輸出棋盤命令 {
cout<<“本游戲采用二維數組實現,棋盤為15X15的二維直角坐標系,均從1到15,祝二位游戲愉快.”;for(int i=0;i<15;i++)
//打印棋盤
{
for(int j=0;j<15;j++)cout< } } int main(){ char a[15][15]; int x,y; for(int i=0;i<15;i++) for(int j=0;j<15;j++) a[i][j]=' ';qipan(a); while(1)//用循環語句執行o,x交替下子,這些while語句看起來似乎是個死循環~實際上都會經過break結束 { int a1=1; while(1) { for(;a1;) { cout<<“請輸入o子下的位置:”; //輸入o子的位置 cin>>x>>y;if(a[x][y]=='o'||a[x][y]=='x') //判斷是否已有子 {cout<<“已有子請重下”<<“,”;continue;} else if(x>=15||y>=15){cout<<“輸入錯誤請重輸”<<“,”;continue;} else { a[x][y]='o';a1=0;} } break;} 軟件工程設計 qipan(a); //下好o子后將棋盤顯示 if(Hsheng(a)) //判斷o子是否已經獲勝 {cout<<“o子獲勝”< while(1) //下x子 { cout<<“請輸入x子下的位置:”; cin>>x>>y; if(a[x][y]=='o'||a[x][y]=='x'||x>=15||y>=15) { for(;a[x][y]=='o'||a[x][y]=='x';) { cout<<“已有子請重下”; cout<<“請輸入x子下的位置:”; cin>>x>>y;continue;} for(;x>=15||y>=15||x;) { cout<<“輸入錯誤請重輸”<<“,”; //判斷輸入棋子位置是否正確 cout<<“請輸入x子下的位置:”; cin>>x>>y;continue;} a[x][y]='x';break; } else {a[x][y]='x';break;} } qipan(a); //再一次輸出棋盤 if(Bsheng(a)) //判斷x子是否已經獲勝 {cout<<“x子獲勝”< if(he(a)) //判斷是否平局 {cout<<“平局”< } return 0; } int Hsheng(char a[][15]){ int i,j; //判斷橫著的5個是否都相等 for(i=0;i<15;i++) for(j=0;j<15;j++) if(a[i][j]=='o'&&a[i][j+1]=='o'&&a[i][j+2]=='o'&&a[i][j+3]=='o'&&a[i][j+4]=='o') return 1; for(j=0;j<15;j++) //判斷豎著的5個是否都相等 for(i=0;i<15;i++) if(a[i][j]=='o'&&a[i+1][j]=='o'&&a[i+2][j]=='o'&&a[i+3][j]=='o'&&a[i+4][j]=='o') 軟件工程設計 return 1; for(i=0;i<15;i++) //判斷左斜5個 for(j=0;j<15;j++) if(a[i][j]=='o'&&a[i+1][j+1]=='o'&&a[i+2][j+2]=='o'&&a[i+3][j+3]=='o'&&a[i+4][j+4]=='o') return 1; for(i=0;i<15;i++) //右斜5個 for(j=14;j>3;j--) if(a[i][j]=='H'&&a[i+1][j-1]=='o'&&a[i+2][j-2]=='o'&&a[i+3][j-3]=='o'&&a[i+4][j-4]=='o') return 1; return 0; } int Bsheng(char a[][15]) //同o,只是改字符 { int i,j; for(i=0;i<15;i++) for(j=0;j<15;j++) if(a[i][j]=='x'&&a[i][j+1]=='x'&&a[i][j+2]=='x'&&a[i][j+3]=='x'&&a[i][j+4]=='x') return 1; for(j=0;j<15;j++) for(i=0;i<15;i++) if(a[i][j]=='x'&&a[i+1][j]=='x'&&a[i+2][j]=='x'&&a[i+3][j]=='x'&&a[i+4][j]=='x') return 1; for(i=0;i<15;i++) for(j=0;j<15;j++) if(a[i][j]=='x'&&a[i+1][j+1]=='x'&&a[i+2][j+2]=='x'&&a[i+3][j+3]=='x'&&a[i+4][j+4]=='x') return 1; for(i=0;i<15;i++) for(j=14;j>3;j--) if(a[i][j]=='x'&&a[i+1][j-1]=='x'&&a[i+2][j-2]=='x'&&a[i+3][j-3]=='x'&&a[i+4][j-4]=='x') return 1; return 0; } int he(char a[][15]) { for(int i=0;i<15;i++) for(int j=0;j<15;j++) { if(a[i][j]==' ') //當棋盤全部子都不是' '時才能return 1,即棋盤已下滿 return 0; } return 1; } -《軟件技術基礎》項目報告 《軟件技術基礎》課程項目報告 項目名稱:用VC++實現的五子棋游戲 專業班級: G11009 項目成員:崔光浩 程德武 付強 付鈺 李洪潤 尚振興 沈婷玉 佟承雨 周彤姣 指導老師: 殷黎 完成時間: 2011/10/31 -《軟件技術基礎》項目報告 目錄 摘要 一、需求分析.............................................................................................................1.1 開發背景................................................................................................................1.2 項目目標................................................................................................................1.3 運行環境................................................................................................................1.4 游戲說明................................................................................................................1.5 項目任務書............................................................................................................二、技術路線.......................................................................................................................2.1 總體方案................................................................................................................2.2 詳細設計................................................................................................................三、工程進度.......................................................................................................................3.1 前期準備部分(1-3)天.......................................................................................3.2中期實現功能部分(4-7)天................................................................................3.3后期總結完善部分(8-10)天..............................................................................四、測試報告.....................................................................................................................4.1 第5天:測試棋譜..............................................................................................4.2 第6天:基本功能測試......................................................................................4.3 第7天:悔棋功能..............................................................................................4.4第8天:測試其他的附加功能...........................................................................4.5第9、10天:總體測試.......................................................................................五、個人小結.....................................................................................................................六、主要算法.....................................................................................................................1判斷勝負..................................................................................................................-《軟件技術基礎》項目報告 2鼠標模擬..................................................................................................................摘要 五子棋是起源于中國古代的傳統黑白棋種之一。現代五子棋日文稱之為“連珠”,英譯為“Renju”,英文稱之為“Gobang”或“FIR”(Five in a Row的縮寫),亦有“連五子”、“五子連”、“串珠”、“五目”、“五目碰”、“五格”等多種稱謂。 五子棋不僅能增強思維能力,提高智力,而且富含哲理,有助于修身養性。五子棋既有現代休閑的明顯特征“短、平、快”,又有古典哲學的高深學問“陰陽易理”;它既有簡單易學的特性,為人民群眾所喜聞樂見,又有深奧的技巧和高水平的國際性比賽;它的棋文化源淵流長,具有東方的神秘和西方的直觀;既有“場”的概念,亦有“點”的連接。它是中西文化的交流點,是古今哲理的結晶。 -《軟件技術基礎》項目報告 一、需求分析 1.1 開發背景 五子棋是一種兩人對弈的純策略型棋類游戲,是起源于中國古代的傳統黑白棋種之一。發展于日本,流行于歐美。五子棋容易上手,老少皆宜,而且趣味橫生,引人入勝;不僅能增強思維能力,提高智力,而且富含哲理,有助于修身養性。傳統五子棋的棋子分為黑白兩色,采用圍棋棋盤,棋子放置于棋盤線交叉點上。兩人對局,各執一色,輪流下一子,先將橫、豎或斜線的5個同色棋子連成不間斷的一排者為勝。 棋類游戲規則簡單,對外部要求不高,人們可以隨時隨地進行對弈。但是,真正能夠精通棋類游戲的人卻不是很多,主要是棋類游戲具有變化莫測的特點,人們經常得在棋局上深思熟慮才能找到克敵制勝的辦法。因此,各種棋類游戲都具有開發智力的效能。在休閑中使自己得到真正的長進,這或許就是其倍受人們青睞的原因所在! 1.2 項目目標 我們將主要通過VC++語言,運用面向對象的程序設計方法,開發此款五子棋游戲。力爭使程序短小精悍,簡潔明了;游戲界面優美,容易操作;功能豐富,趣味性強。現在將我們對項目期望實現的目標一一介紹: a.能供兩人對弈。 b.可以實現經典棋局的回放。c.可以悔棋。 D.能實現棋局步數的排名。e.操作方便,容易上手。 1.3 運行環境 本游戲短小精悍,而且對電腦配置的要求均不高,目前幾乎所有的PC機均可運行該游戲。但是為了能讓大家更好地體驗該款游戲,我們給出如下的最低配置: -《軟件技術基礎》項目報告 最低配置:CPU1GHz 內存 32M 硬盤 4G Windows 95 Microsoft Visual C++ 6.0 同時結合我們開發該游戲的環境,我們強烈推薦用戶使用如下的配置: 最佳配置:CPU2GHz及以上 內存256M及以上 硬盤80G及以上 Windows XP及以上 Microsoft Visual C++ 6.0 1.4 游戲說明 (1)游戲流程: 啟動游戲后,顯示主菜單。里面包括開始游戲、讀取游戲、排行榜、關于游戲、游戲幫助、退出。讀取游戲中包含經典棋局的回放和未下完的棋局。排行榜中顯示的是棋局步數的排名。(2)游戲規則: 落子:對陣雙方交替落子,任何一方不能多下一步,也不能在已有棋子的地方繼續落子,否則會有錯誤提示。 贏棋:任何一方先出現在棋盤的橫、縱或斜線上形成連續的五子,則該方獲勝。排行榜:可以判斷贏者是否可以進入排行榜。 (3)特別提示: ? 雙人對弈模式下,悔棋的過程為:首先由玩家向對方發送悔棋請求(悔棋消息),然后由對方決定是否允許玩家悔棋,在玩家得到對方的響應消息(允許或者拒絕)之后,才進行悔棋與否的操作。 1.5 項目任務書 (1)班級:G11009(2)組長:崔光浩 (3)成員:尚振興、李洪潤、沈婷玉、程德武、付強、周彤嬌、佟承雨、付鈺(4)項目名稱: 五子棋 -《軟件技術基礎》項目報告 (5)項目背景:五子棋是起源于中國古代的傳統黑白棋種之一。五子棋不僅能增強思維能力,提高智力,而且富含哲理,有助于修身養性。五子棋既有現代休閑的明顯特征“短、平、快”,又有古典哲學的高深學問“陰陽易理”。 (6)項目分工:程德武:顯示棋盤、顯示幫助、游戲版權、顯示在線幫助文檔。 李洪潤:排行榜全部。 付 強:下棋、經典棋局的回放。 沈婷玉:構造函數、初始化所有數據、析構函數。 尚振興:負責文檔規劃。 周彤姣:文件的保存和讀取。 付 鈺:技術支持。 (7)項目進度:1-3天:前期準備,各類資料收集,流程圖,算法等同時完成。4-7天:實現基本功能和附加功能。8-10天:最后測試,最后優化。 (各類文檔的設計與編寫穿插于始終) -《軟件技術基礎》項目報告 二、技術路線 2.1 總體方案 游戲的簡單流程如下圖: 開始開始游戲 讀取游戲排行榜幫助否關于退出 設定用戶信息 下棋判斷是否贏是悔棋鼠標模擬進排行榜否 是否保存保存是認輸 2.2 詳細設計 a.實現玩家的類Player。其中實現各個成員變量的set和get方法,以及構造和析構函數。 b.實現五子棋的類Gobang。其中實現各個功能的函數如下: 1.開始游戲 :開始、下棋、悔棋、認輸、保存 void startGame();2.顯示幫助文檔 void showHelp();3.顯示版權 void showEdition();4.顯示棋盤 void showChessBoard();5.顯示在線在幫助文檔 void showOnlineHelp(); -《軟件技術基礎》項目報告 6.顯示菜單 void showMenu();7.播放歷史棋局 void movieGoBang();8.讀取排行榜 void setWinnerHome();9.顯示排行榜 void showWinnerHome();10.修改排行榜 void editWinnerHome(Player &player);11.保存歷史記錄、保存經典、繼續 int saveHD(char *arr);12.讀取歷史記錄、讀取經典、繼續 int loadHD(char *arr);13.鼠標模擬 1.void monitor();2.bool agree(int a);14.悔棋 void repent();15.判斷五子連線 bool fun();16.顯示已保存文檔、有經典文檔和繼續文檔 int showSave(int choice); -《軟件技術基礎》項目報告 三、工程進度 本次作業歷時十天時間,總的說起來可以分為三個部分: 3.1 前期準備部分(第1-3天) 主要完成方案的討論、資料的收集、流程圖、算法等前期工作,編寫報告中需求分析的一部分和總體方案的一部分及項目任務書。 第1天:選定題名,進行方案的討論。收集資料,寫出需求分析中的開發背景部分。第2-3天:商定算法,將軟件總體分塊,寫出項目任務書。 3.2中期實現功能部分(第4-7天) 主要完成預先設想的基本功能和附加功能,完成項目文檔中的技術路線和需求分析的剩余部分,完成調試報告中的單功能調適。 第4天:開始軟件編寫,完成棋盤的設計部分。完成下棋部分程序的編寫,測試棋盤設計部分。完成悔棋部分程序的編寫,測試下棋部分程序。 第5-6天:完成兩人對弈部分程序的編寫,測試基本功能,測試悔棋部分。 第7天:完成附加功能,測試對弈部分情況。完善各項功能,測試附加功能。 3.3后期總結完善部分(第8-10天) 總體功能的調試改進,完成項目文檔。 第8天:功能調試,優化軟件。第9-10天:其它報告剩余部分。 0-《軟件技術基礎》項目報告 四、測試報告 4.1 第4天:測試棋譜 測試人:程德武 測試內容:通過VC++語言,我們編寫了基于對話框的游戲界面。我們將測試它的最基本面貌,希望其是符合我們要求的界面模式! 測試過程:運行程序以后,彈出了棋局的對話框,整體棋局呈現白色,棋局右邊和上邊都有一些空出的區域,這是我們為將來實現其他附加功能預留的地方。但是測試過程中我們始終發現一個問題,棋格的位圖沒有按照我們的設想正確放置,出現了躍出棋盤的怪現象! 問題解決:通過反復推敲程序相關部分,我們覺得可能是算法有疏漏,于是修改了一下算法。我們將每個棋格的位圖封裝了起來,將其位置作為成員數據。再運行程序,問題就不再出現了。反復運行程序再也沒有出現異常情況! 4.2 第5天:基本功能測試 測試人:佟承雨 測試內容:程序的基本框架已經編好了,希望能按我們的預期目標能實現供兩人對弈功能! 測試過程:將程序編譯、鏈接、運行后,彈出棋局的對話框,然后開始下棋,我們一步一步觀察了每步落子后棋局的變化過程,均與我們預期的變化過程一樣,我們非常欣喜,這說明我們設計下棋程序時的算法準確無誤! 1-《軟件技術基礎》項目報告 4.3 第6天:悔棋功能 測試人:沈婷玉 測試內容: 測試悔棋功能能否正常實現。 測試過程:我們測試了悔棋功能,反復的測試,此功能運行良好,能夠一步一步悔棋,直到無子可悔,而且通過記錄觀察,每步的悔棋過程均準確無誤! 4.4第7天:測試其他的附加功能 測試人:李洪潤 測試內容:我們對排行榜,經典棋局回放功能進行了測試 測試過程:我們開始游戲后,正常下棋取得勝利后,程序默認將勝方步數與排行榜中已存在的玩兒家步數進行比較,滿足條件則進入排行榜,否則不進入。如果是前五次玩的話默認都進入排行榜。關于經典棋局,進入游戲后,載入經典棋局,每按一次回車,回放一步,經測試無異常。 4.5第8-10天:總體測試 測試人:崔廣浩 測試內容:我們將在總體上對程序的運行效果和運行環境進行測試,以完善所有功能,達到軟件的最優化! 測試過程: 首先我們測試了軟件對運行環境的要求,我們先在Windows xp操作系統中運行了一遍,結果并無異常情況出現;隨后我們在CPU只有1GHz頻率的硬件系統中運行,也并未發現任何問題!我們基本上可以得出結論,我們的軟件在一般的軟、硬件環境下都能正常穩定地運行,對機子的配置基本沒有什么要求,適合于廣大的電腦擁有者使用! 2-《軟件技術基礎》項目報告 五、個人小結 通過本次五子棋程序的設計,我想我學到了很多東西。我主要是負責大報告的設計和編寫,同時也編寫一部分程序。編程的確是非常辛苦,主要是第一次利用VC++編寫程序。我的VC++學的不是很好,編程時遇到了很多的困難,好在我們班的崔光浩同學不辭辛苦的幫助我調試程序,我們參考了很多的資料,像我們《軟件基礎》大作業中的優秀作品,網上的有關VC++的一些實用的編程技巧,還有一些經典的算法。善于利用已有的資源,是我在本次大作業中學到得很寶貴的經驗,對于網絡,我們懂得了不只要用它來實現低級的聊天、看電影、打游戲等功能,我們還要實現獲取有用的信息、學習別人先進的方法、查閱相關的電子資料等功能,充分發揮它的作用。 我們這次的作品,雖然只是一個比較簡單游戲的實現,但是通過這次合作,我也有很大的收獲。雖然是一個小組,但每個人有不同的看問題的方法,我們在做這個軟件的時候,大家也曾有過意見的分歧,我們也曾因為預期的功能沒有實現而互相指責,也曾為有一點小小的進步而欣喜若狂。一路風風雨雨,我們畢竟是基本完成了預期的功能,努力沒有白費,心里特別的充實,這就是創造的快樂,也是合作的快樂。我還編寫了大作業的文檔,由于自身能力的有限,我雖然竭盡全力,但總的感覺還是不能讓我滿意,不過,我也從中學到了一些東西: 總的說來,這次作業中我鍛煉了自己的能力,也培養了團隊合作的精神,感謝我的隊友!感謝老師!感謝生活! ——尚振興 在本軟件的開發中,還是有不少地方是不太滿意的,首先我通過單純的VC++語言來實現功能。雖然VC++的強大功能足以應付這種軟件的開發要求了,但是由于控件的缺乏,語法的繁瑣,在實現很多功能的實現中花費了不少力氣。但是由于知識水平的缺乏,無法使用Delphi,flash等更簡便的手段來實現功能,希望以后可以彌補這一點。其次,缺乏完成大工程的經驗,沒有建立一個有效可行的工作計劃。在工作中時而通宵奮戰,時而停頓不前,既浪費了寶貴的時間,也耗費了大量精力,實在得不償失。 但值得注意的是,在軟件的開發中,我也學到了很多書本上學不到的經驗。首先,我使用了別人開發的思想,雖然開始很不習慣,但是上手之后就深深的體會到模塊化開發和面向對象語言的方便與高效。其次,這次開發中我使用了很多以前沒接觸過的函數。除了上網學習資料外。熟練的使用老師提供的參考資料,相信對我以后的工作會有很大的益處。 3-《軟件技術基礎》項目報告 我覺得通過這個小項目很好地考察了每個學生的知識水平,每個人都發揮了個人最佳的狀態。雖然這種形式比普通的卷面考試要難,但是卻能夠充分調動每個人的積極性去學習自己尚未接觸的知識和運用自己已經學過的知識。實驗中,我們小組成員之間配合默契,共同商討問題,使我們在碰到一個一個的問題后,能快速找到相關的答案。難能可貴的是,在軟件制作最緊張的時候,大家都義無反顧地放棄了一點休息時間,和團隊一起堅持奮斗!所以通過這次實驗的合作,我們小組成員之間更加增進了了解,增進了團結! ——崔光浩 六、主要算法 以下時詳細算法中提到的主要函數,其他函數在程序中。 1判斷勝負 五子棋的勝負,在于判斷棋盤上是否有一個點,從這個點開始的右、下、右下、左下四個方向是否有連續的五個同色棋子出現,判斷勝負方向如下圖 bool Gobang::fun(int a, int b)//判斷是否五子連棋 { int arr[8][2]={{-1,-1},{1,1},{-1,0},{1,0},{-1,1},{1,-1},{0,1},{0,-1}};int i;int sum=0;for(i=0;i<8;i+=2) 4-《軟件技術基礎》項目報告 { sum=1;int A = a+arr[i][0];int B = b+arr[i][1];while(A>=0 && A<=N && B>=0 && B<=N && chessBoard[A][B]==chessBoard[a][b]) { } A = a+arr[i+1][0];B = b+arr[i+1][1];while(A>=0 && A<=N && B>=0 && B<=N && A += arr[i][0];B += arr[i][1];sum++;chessBoard[A][B]==chessBoard[a][b]) } } return false;{ } if(sum>=5)return true;A += arr[i+1][0];B += arr[i+1][1];sum++; 5-《軟件技術基礎》項目報告 2鼠標模擬 void Gobang::monitor(){ char ch = getch();switch(ch){ case 'w': case 'W': getMonitor = 0;break;case 'a': case 'A': getMonitor = 1;break;case 's': case 'S': getMonitor = 2;break;case 'd': case 'D': getMonitor = 3;break;case 'j': case 'J': getMonitor = 4; 6-《軟件技術基礎》項目報告 } } break;case 'r': case 'R': getMonitor = 5;break;case 'p': case 'P': getMonitor = 6;break;case 'Q': case 'q': getMonitor = 7;break;default: break;void Gobang::startGame(){ int chose = 1;while(chose){ showChessBoard();monitor(); 7-《軟件技術基礎》項目報告 if(getMonitor==0 && chessBoardMark[0]-1>=0)chessBoardMark[0]--;if(getMonitor==1 && chessBoardMark[1]-1>=0)chessBoardMark[1]--;if(getMonitor==2 && chessBoardMark[0]+1 case 4: //下棋 if(playGoBang(chessBoardMark[0], chessBoardMark[1])==1) if(fun()==true){ system(“cls”); printf(“nnnnn You Win!!nnnnnnnnnn”); remind(); if(historyStep%2==0)else editWinnerHome(player2);editWinnerHome(player1); showWinnerHome();remind(); 8-《軟件技術基礎》項目報告 } } } } break;case 5: //悔棋 repent();break;case 6: //保存 showSave(1);break;case 7: //退出 chose = 0;break;default: break; 活動名稱:兩人三足 活動目標: 1.嘗試兩人三步走,體驗與同伴按節奏同步前進。 2.體驗齊心協力合作帶來的快樂。 3.知道兩人三足的游戲方法。活動準備: 布條人手一條,音樂。重難點分析: 重點:嘗試兩人三步走,體驗與同伴按節奏同步前進。 難點:體驗齊心協力合作帶來的快樂。活動過程: 一、熱身運動。 指導語:冬天到了,讓我們跟著音樂一起做運動吧。 (上肢——體轉——扭挎——抬腿——壓腿——跳躍,幼兒在教師的帶領下聽著音樂有精神的做熱身運動。) 二、幼兒自由探索布條的玩法。 (一)指導語:小朋友們,布條除了可以做操,還可以做很多有趣的活動,想不想玩?那一會開動腦筋去玩一 玩,可以一個人玩,也可以和好朋友合作玩,看誰的玩法 多?(玩的時候要注意安全,不要撞到別人) (二)幼兒自由探索,教師指導。 玩法:捉尾巴、跳舞、開汽車。。 指導語:請小朋友到我這來排隊,女孩站南邊這條線,男 孩站北邊線上) 三、學習兩人三足走。 (一)剛才小朋友介紹了自己的玩法,老師也有一種玩法,你們想不想試一試?那你們小朋友看仔細了。(老師示范) (二)講解兩人三足走的動作要領。 提問:我們是怎么玩的? 教師再次示范并講解:一左一右靠靠緊,拿根布條扣系牢,站直身體邁大腳,預備出發一二一,不急不急安全第一。(示范時走的節奏要慢) 指導語:我先請2位小朋友來試一試。(請個別幼兒練習) (三)幼兒學習兩人三足走。 指導語:其他小朋友想不想試一試?那請你們找個朋友 合作去玩一玩。開始行動吧!(幼兒練習,教師巡視指導。) 1.提問:你們成功了嗎?有不成功的嗎?為什么會失 敗? 小結:老師先請玩的好一對示范,再請有問題的一對玩,并請他們說說問題 2.提問:你們發現了什么問題?那你們再去試一試。小結:請失敗的那對再去練習 指導語:現在請小朋友再去玩一玩兩人三步走,這次可 以換個朋友走一走。(全體幼兒再次練習) (四)分小組兩人三足走比賽。 指導語:剛才老師發現你們都會兩人三足走了,那這次 分小組比賽,看看哪一組走的好走的快? 老師講解比賽規則:這是2條跑道,一組一條跑道。這 邊的紅線是跑道的起點,那邊的黃線是終點,前面一對 小朋友達到終點,后面的一對才可以走,哪組先達到終 點為勝。明白了嗎?聽我的口哨聲開始行動,到達終點 就站在終點的紅線后面。預備,開始! 四、放松運動。 老師帶著幼兒在園內操場繞圈。 活動名稱:多樣的扇子 活動目標:1.讓幼兒知道扇子有多樣性。 2.讓幼兒大膽發揮想像,設計不同的扇子。3.培養幼兒的想像力及創作能力。重難點分析: 重點:讓幼兒大膽發揮想像,設計不同的扇子。難點:培養幼兒的想像力及創作能力。 活動準備:美工區:各種扇子圖片、硬紙板、卡紙、一次性筷子,漿 糊等 表演區:各種各樣的扇子、一些扇子舞的音樂 角色區:扇子大賣場 活動過程: 一、談話引導。 (一)小朋友你們知道夏天來了我們要怎樣使自己更涼快 嗎?(風扇,扇子) 小結:對了,我們感覺熱了就可以用扇子扇風。1.那你們知道扇子是什么樣的嗎?(知道) 今天老師帶來了幾把用廢舊材料制作扇子!那今天我們一 起來看看老師帶來的扇子吧!(教師幼兒一起觀察用廢舊 料做的各種扇子,討論幼兒各種扇子的特點) 二、介紹活動內容。 材 (一)今天,老師就請你們來制作扇子吧!來一起看看都 有哪些區角吧! 小結:介紹區角 美工區:各種扇子圖片、硬紙板、卡紙、一次性筷子,漿 糊等 表演區:各種各樣的扇子、一些扇子舞的音樂 角色區:扇子大賣場 (二)提出區域要求。1.活動前,先想好自己想要進入的區域。2.活動時,不隨意走動,材料不亂丟亂放。 3.活動結束時,把材料收好放回原處,回到自己的位置 好。 師:我們在區域活動的時候一定要記住,做什么事不要太 急,細心一點,可以和身邊的好朋友一起討論,但是不 要大聲喧嘩。 (三)幼兒操作,教師適時指導。 如果有不懂的地方可以請好朋友幫忙或者跟老師說,但是 我們要先學會自己思考,不要一遇到問題就請求幫助,不 腦筋。 坐 動 大班區域活動:五子棋 活動目標: 1、初步了解五子棋的基本知識。 2、培養幼兒對下五子棋的興趣。活動準備: 五子棋棋盤及棋子、規則介紹圖 操作要點: 1、幼兒同伴面對面而坐,兩人各持一色棋子。 2、棋子橫向、縱向和斜向連成五個即為贏家。 3、當對方棋子兩個連在一起時,就要注意了。 4、當對方棋子三個連在一起時,就要截住對方的棋子。 5、比一比,哪方最先練成五個。指導建議: 1、鼓勵幼兒以不同的位置為起點。 2、可引導幼兒以“錘子剪刀布”的方式決定先后順序。第三篇:五子棋游戲項目報告
第四篇:區域游戲
第五篇:大班區域活動:五子棋