第一篇:五子棋實習(xí)報告
《JAVA程序設(shè)計》
實習(xí)報告
實習(xí)題目 學(xué)生姓名 學(xué)生學(xué)號 學(xué)生姓名 學(xué)生學(xué)號 學(xué)生姓名 學(xué)生學(xué)號 所在專業(yè) 所在班級 指導(dǎo)教師 實習(xí)時間
成績: 老師評語:
五子棋
計算機網(wǎng)絡(luò)技術(shù)
11/6/27—11/7/1
五子棋
下面是五子棋的部分截圖:
這里實現(xiàn)了服務(wù)器:數(shù)據(jù)的保存及轉(zhuǎn)發(fā); 聯(lián)網(wǎng)對戰(zhàn):桌位的選擇、悔棋、認(rèn)輸、和棋; 聊天模塊:文本聊天、語音聊天; 練習(xí)模式:難度的劃分、悔棋。
這些功能是如何實現(xiàn)的呢?下面來一步步分解。服務(wù)器
1、服務(wù)器與客戶端是用socket來連接的。連接成功后,客戶端會把客戶的登陸的信息(用戶名、性別、頭像)發(fā)往服務(wù)器。服務(wù)器是通過鏈表來記錄每個用戶的信息。
class Node{
String username=null;//用戶昵稱
String tableNum=null;//桌 號及座位號,格式是:桌號:座位號 int score;//分?jǐn)?shù) Socket Socket=null;//套接字
ObjectOutputStream output=null;//輸出流 ObjectInputStream input=null;//輸入流
Node next=null;//保存鏈表中下一節(jié)點的指針 }
2、下面是服務(wù)器通過鏈表記錄的客戶對像流來轉(zhuǎn)發(fā)數(shù)據(jù)給相應(yīng)的客戶端。代碼還是簡單明了的。如:
if(type2.equalsIgnoreCase(“重新開局”))
{
}
String isResart=(String)
tobody.output.writeObject(“下棋操作”);tobody.output.flush();
tobody.output.writeObject(“重新開局”);tobody.output.flush();
tobody.output.writeObject(isResart);tobody.output.flush();node.input.readObject();//System.out.println(“isResart:”+isResart);
3、由于這是一個可以有十六個玩家進(jìn)來的游戲,那么怎樣確定哪個玩家與哪個玩家在同一張桌子上下棋呢?我這里用到的鏈表記錄的String tableNum=null;//桌 號及座位號,格式是:桌號:座位號。
如第一張桌第一個坐位與第二個坐位的記錄是:0:0;0:1。以此類推。1:0,1:1;2:0,2:1……
服務(wù)器的根據(jù)桌號與坐位號來轉(zhuǎn)發(fā)數(shù)據(jù)的。用IF語句判斷。獲得對手的對像流來發(fā)送數(shù)據(jù)。
//獲取發(fā)送對象
String table=node.tableNum.substring(0, String
String tableNum=null;
if(Integer.parseInt(seat)==0)
tobody=userInfoList.findtable(tableNum);
tableNum=table+“:”+1;tableNum=table+“:”+0;else node.tableNum.indexOf(“:”));seat=node.tableNum.substring(node.tableNum.indexOf(“:”)+1);
客戶端
1、棋盤里的棋子是用一個整型二維數(shù)組來記錄的。GramP[x][y],x代表橫的格數(shù),并是具體坐標(biāo);y代表豎的格數(shù),并是具體坐標(biāo);x*
28、y*28就是具體坐標(biāo)。0代表沒有棋子,1代表白棋,2代表黑棋。
2、判斷輸贏的方法很簡單,每下一個棋子,都要判斷一次。在當(dāng)前棋子的0、45、90、135度方向上判斷是否有五個同樣的棋子相連。這里用到了y=kx+b函數(shù)來計算。要分開黑棋與白棋的判斷,定義一個入口參數(shù),增加代碼的復(fù)用性,輸與贏會用到重畫方法,所以也定義了Graphics g入口參數(shù)。代碼如下:
public void isWin(int chessID,Graphics g)
{
//橫向判斷
for(int k=0;k<19;k++){
} whiteScore=0;
//豎向判斷
for(int h=0;h<19;h++){
if(GramP[x][h]==chessID){ {
}
whiteScore=0;++whiteScore;}else
if(GramP[k][y]==chessID){
}else {
}
//如果大于五子連珠,就為贏 if(whiteScore>=5){
} win_tip(chessID,g);break;whiteScore=0;++whiteScore;
}
if(whiteScore>=5){
} win_tip(chessID,g);break;whiteScore=0;//135向判斷 int b1;b1=y-x;if(b1>=0){
{
for(int a=-b1,b=0;a<19;a++,b++){
if(GramP[a][b]==chessID){
{ ++whiteScore;for(int a=0,b=b1;b<19;a++,b++){
} whiteScore=0;
if(GramP[a][b]==chessID){
{
}
if(whiteScore>=5){
} win_tip(chessID,g);break;whiteScore=0;++whiteScore;
}else
}else
}else
}
}
}
if(whiteScore>=5){
} win_tip(chessID,g);break;whiteScore=0;whiteScore=0;//45向判斷 int b2;b2=x+y;if(b2<=18){
{
for(int c=18,d=b2-18;d<19;c--,d++){
if(GramP[c][d]==chessID){ ++whiteScore;for(int c=b2,d=0;c>=0;c--,d++){
} whiteScore=0;if(GramP[c][d]==chessID){
}else {
}
if(whiteScore>=5){
} win_tip(chessID,g);break;
whiteScore=0;++whiteScore;}else
}
}
} }else {
}
if(whiteScore>=5){
} win_tip(chessID,g);break;
whiteScore=0;whiteScore=0;//平局
int count=0;for(int i=0;i<19;i++){
} if(count==180){ } win_tip(3,g);for(int j=0;j<19;j++){
} if(GramP[i][j]==chessID){ } count++;
3、悔棋分為悔一步還是悔兩步。由一個布爾變量來判斷,如果下完棋再悔棋,只悔一個棋。如果沒下棋,就悔兩個棋。由一維的字符串?dāng)?shù)組ReGame[]來記錄下棋的先后順序。格式中: ReGame[R++]=x+“:”+y;下面是悔兩個棋子的代碼。
public void regretGrame2()
for(int i=0;i<361;i++){ if(ReGame[i]==null){
}
} {
} //System.out.println(ReGame[i-1]);//System.out.println(ReGame[i-2]);String X1=ReGame[i-1].substring(0, String String X2=ReGame[i-2].substring(0, String GramP[Integer.parseInt(X1)][Integer.parseInt(Y1)]=0;GramP[Integer.parseInt(X2)][Integer.parseInt(Y2)]=0;ReGame[i-1]=null;ReGame[i-2]=null;R-=2;break;ReGame[i-1].indexOf(“:”));Y1=ReGame[i-1].substring(ReGame[i-1].indexOf(“:”)+1);ReGame[i-2].indexOf(“:”));Y2=ReGame[i-2].substring(ReGame[i-2].indexOf(“:”)+1);repaint();悔一個棋子的,類似。
這只是悔棋函數(shù),只能應(yīng)用于本用戶進(jìn)行悔棋操,與電腦下棋的悔棋,就直接調(diào)用這個函數(shù)即可。
但是在聯(lián)網(wǎng)模式中,通過對像流向服務(wù)器發(fā)送悔棋標(biāo)識,再由服務(wù)器轉(zhuǎn)發(fā)給對手,如果對手同意的吧,對手就會調(diào)用悔棋函數(shù),進(jìn)行自身棋盤的悔棋,同時會向服務(wù)器返回一個yes1或yes2標(biāo)識,發(fā)起方收到了,也會調(diào)用悔棋函數(shù)進(jìn)行悔棋操作。如果對方不同意,則會返回一個no標(biāo)識,發(fā)起方只會提示玩家,而不進(jìn)行悔棋操作。
認(rèn)輸及和棋的步驟類似,不再累述。下面是悔棋操作的部分主要代碼: 發(fā)起請求悔棋:
//請求悔棋
public void isRegretGrame(){
if(R>=2&&!isEnd)//只有兩個棋子以上才可以悔棋,否則數(shù)組會越界.分勝負(fù)時也不能悔棋
{
{ if(flag)//下棋前,悔棋 {
try {
} oos.writeObject(“下棋操作”);oos.flush();oos.writeObject(“悔棋”);oos.flush();oos.writeObject(“isRegret2”);oos.flush();
e.printStackTrace();} catch(IOException e){ }else //下棋后,悔棋 {
} try {
} oos.writeObject(“下棋操作”);oos.flush();oos.writeObject(“悔棋”);oos.flush();oos.writeObject(“isRegret1”);oos.flush();e.printStackTrace();} catch(IOException e){ }else
JOptionPane.showMessageDialog(this, “不能執(zhí)行悔棋操作”, “警告”, JOptionPane.WARNING_MESSAGE);} } 服務(wù)器轉(zhuǎn)發(fā)悔棋請求: 這只是服務(wù)轉(zhuǎn)發(fā)的悔棋部分的數(shù)據(jù)。
String type=(String)node.input.readObject();//讀取信息類型
{
if(type2.equalsIgnoreCase(“悔棋”))
{
String isRegret=(String)if(type.equalsIgnoreCase(“下棋操作”))node.input.readObject();
}
}
tobody.output.writeObject(“下棋操作”);tobody.output.flush();
tobody.output.writeObject(“悔棋”);tobody.output.flush();
tobody.output.writeObject(isRegret);tobody.output.flush();收接悔棋請求:下面代碼是在客戶端收接數(shù)據(jù)的線程里的。
String type=(String)ois.readObject();if(type.equalsIgnoreCase(“下棋操作”)){
if(type2.equalsIgnoreCase(“悔棋”))
{){
JOptionPane.showMessageDialog(this, “對方不同意悔棋
String isRegret=(String)ois.readObject();if(”yes2“.equalsIgnoreCase(isRegret)){
} else if(”yes1“.equalsIgnoreCase(isRegret)){
regretGrame1();
regretGrame2();
}else
if(”no1“.equalsIgnoreCase(isRegret)||”no2“.equalsIgnoreCase(isRegret)”, “提示”,JOptionPane.WARNING_MESSAGE);
}
else if(“isRegret2”.equalsIgnoreCase(isRegret)){
int result = JOptionPane.showConfirmDialog(this, “對方請求悔棋,是否同意?”, “提示”, JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE);
if(result == JOptionPane.YES_OPTION){
oos.writeObject(“下棋操作”);oos.flush();
oos.writeObject(“悔棋”);
}
oos.flush();
oos.writeObject(“yes2”);oos.flush();regretGrame2();
}else if(result==JOptionPane.NO_OPTION){
//System.out.println(“對方不同意悔棋”);
oos.writeObject(“下棋操作”);oos.flush();
oos.writeObject(“悔棋”);oos.flush();
oos.writeObject(“no2”);oos.flush();} else if(“isRegret1”.equalsIgnoreCase(isRegret)){
int result = JOptionPane.showConfirmDialog(this, “對方請求悔棋,是否同意?”, “提示”, JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE);
}
if(result == JOptionPane.YES_OPTION){
oos.writeObject(“下棋操作”);oos.flush();
oos.writeObject(“悔棋”);oos.flush();
oos.writeObject(“yes1”);oos.flush();
regretGrame1();
} 聊天模塊
1、文字聊天,也是通過服務(wù)器轉(zhuǎn)發(fā)數(shù)據(jù)的,客戶端就接收與顯示。在這里不再詳說了。
2、重點是語音聊天,這里的語音連接,首先通過服務(wù)器轉(zhuǎn)發(fā)發(fā)起方的語音標(biāo)識,對方收到后,如果選擇“是”,那它就會通過服務(wù)器轉(zhuǎn)發(fā)IP地址給發(fā)起方,并同時起動serversocket監(jiān)聽。發(fā)起方收到對方同意語音連接的標(biāo)識與IP地址后,就可以與對方連接了,語音鏈路就建起了。斷開的思路也是差不多的。練習(xí)模式
1、電腦下棋的算法:
通過遍歷棋盤,計算權(quán)值,哪個位置的權(quán)值最高,就在哪個位置下棋。權(quán)值的大小預(yù)定為:
//黑白白空 50
//空白白空 100 //黑白白白空 500 //空白白白空 1000 //黑白白白白空 5000 //空白白白白空 10000
//白白白白白 100000 首先假定下棋點,再計算權(quán)值之和的大小。
權(quán)值之和=0度方向的帶勝權(quán)值和堵敵的權(quán)值之和+45度方向的帶勝權(quán)值和堵敵的權(quán)值之和+90度方向的帶勝權(quán)值和堵敵的權(quán)值之和+135度方向的帶勝權(quán)值和堵敵的權(quán)值之和.下面代碼,假定落子點,再把四個方向上的的權(quán)值加起來。
//記錄當(dāng)前假定的落子點
private int getQuan(int i,int j)
{
} //水平權(quán)值
private int getQuan0(int i, int j){
int samechessNumS=0;//相同棋子的個數(shù) int samechessNumF=0;int blankNumS=0;// 空子的個數(shù) int blankNumF=0;int q=0;//求當(dāng)前位置的權(quán)值
q+=getQuan0(i,j);//得到水平方向上的權(quán)值,下面類似 q+=getQuan90(i,j);q+=getQuan135(i,j);q+=getQuan45(i,j);
return q;
下面是只是求水平權(quán)值的代碼,通過一個二維二元數(shù)組來左右求索棋子的個數(shù)。
} int q=0,qS=0,qF=0;int [][]ij0=new int[2][2];//計算權(quán)值用的 ij0[0][0]=ij0[0][1]=i;ij0[1][0]=ij0[1][1]=j;samechessNumS=getsamechessNum0(ij0,back);//得到黑子數(shù)目
if(ij0[0][0]>=0)
//得到速勝權(quán)值
ij0[0][0]=ij0[0][1]=i;ij0[1][0]=ij0[1][1]=j;samechessNumF=getsamechessNum0(ij0,white);//得到白子數(shù)目
if(ij0[0][0]>=0)
if(curchess[ij0[0][0]][ij0[1][0]]==Chess)blankNumF++;if(curchess[ij0[0][0]][ij0[1][0]]==Chess)blankNumS++;if(ij0[0][1]<19)if(curchess[ij0[0][1]][ij0[1][1]]==Chess)blankNumS++;qS=getQuanpart(samechessNumS,blankNumS);if(ij0[0][1]<19)if(curchess[ij0[0][1]][ij0[1][1]]==Chess)blankNumF++;qF=getQuanpart(samechessNumF,blankNumF);//得到堵敵權(quán)值 q=qS+qF;return q;//得到水平方向的同子數(shù)目
private int getsamechessNum0(int[][] qij, int chessID){
int num=1;//存儲相同棋子數(shù)目,當(dāng)前點滿足條件 qij[0][0]--;//向左探索我們只探索臨近的4個點,注意不要出邊界 while(qij[0][0]>=0&&num<5){
} qij[0][1]++;//向右求索
while(qij[0][1]<19&&num<5)if(curchess[qij[0][0]][qij[1][0]]!=chessID)break;num++;qij[0][0]--;
} {
}
return num;if(curchess[qij[0][1]][qij[1][1]]!=chessID)break;num++;qij[0][1]++;//求得某一方向上的一半權(quán)值
private int getQuanpart(int sameChessNum, int blankNum){
} if(sameChessNum==2&&blankNum==1)return q2o;else if(sameChessNum==2&&blankNum==2)return q2;else if(sameChessNum==3&&blankNum==1)return q3o;else if(sameChessNum==3&&blankNum==2)return q3;else if(sameChessNum==4&&blankNum==1)return q4o;else if(sameChessNum==4&&blankNum==2)return q4;else if(sameChessNum==5)return q5;else return 0;
2、劃分難度等級
我這里,是通過改變它的預(yù)定權(quán)值的大小,而達(dá)到改變難度的。
3、悔棋,比對戰(zhàn)模式(即聯(lián)網(wǎng)對戰(zhàn))的悔棋還簡單。只需用到悔兩個棋子的悔棋函數(shù)即可。
第二篇:五子棋游戲項目報告
-《軟件技術(shù)基礎(chǔ)》項目報告
《軟件技術(shù)基礎(chǔ)》課程項目報告
項目名稱:用VC++實現(xiàn)的五子棋游戲 專業(yè)班級: G11009
項目成員:崔光浩 程德武 付強 付鈺
李洪潤 尚振興 沈婷玉 佟承雨 周彤姣
指導(dǎo)老師: 殷黎
完成時間: 2011/10/31
-《軟件技術(shù)基礎(chǔ)》項目報告
目錄
摘要
一、需求分析.............................................................................................................1.1 開發(fā)背景................................................................................................................1.2 項目目標(biāo)................................................................................................................1.3 運行環(huán)境................................................................................................................1.4 游戲說明................................................................................................................1.5 項目任務(wù)書............................................................................................................二、技術(shù)路線.......................................................................................................................2.1 總體方案................................................................................................................2.2 詳細(xì)設(shè)計................................................................................................................三、工程進(jìn)度.......................................................................................................................3.1 前期準(zhǔn)備部分(1-3)天.......................................................................................3.2中期實現(xiàn)功能部分(4-7)天................................................................................3.3后期總結(jié)完善部分(8-10)天..............................................................................四、測試報告.....................................................................................................................4.1 第5天:測試棋譜..............................................................................................4.2 第6天:基本功能測試......................................................................................4.3 第7天:悔棋功能..............................................................................................4.4第8天:測試其他的附加功能...........................................................................4.5第9、10天:總體測試.......................................................................................五、個人小結(jié).....................................................................................................................六、主要算法.....................................................................................................................1判斷勝負(fù)..................................................................................................................-《軟件技術(shù)基礎(chǔ)》項目報告
2鼠標(biāo)模擬..................................................................................................................摘要
五子棋是起源于中國古代的傳統(tǒng)黑白棋種之一。現(xiàn)代五子棋日文稱之為“連珠”,英譯為“Renju”,英文稱之為“Gobang”或“FIR”(Five in a Row的縮寫),亦有“連五子”、“五子連”、“串珠”、“五目”、“五目碰”、“五格”等多種稱謂。
五子棋不僅能增強思維能力,提高智力,而且富含哲理,有助于修身養(yǎng)性。五子棋既有現(xiàn)代休閑的明顯特征“短、平、快”,又有古典哲學(xué)的高深學(xué)問“陰陽易理”;它既有簡單易學(xué)的特性,為人民群眾所喜聞樂見,又有深奧的技巧和高水平的國際性比賽;它的棋文化源淵流長,具有東方的神秘和西方的直觀;既有“場”的概念,亦有“點”的連接。它是中西文化的交流點,是古今哲理的結(jié)晶。
-《軟件技術(shù)基礎(chǔ)》項目報告
一、需求分析
1.1 開發(fā)背景
五子棋是一種兩人對弈的純策略型棋類游戲,是起源于中國古代的傳統(tǒng)黑白棋種之一。發(fā)展于日本,流行于歐美。五子棋容易上手,老少皆宜,而且趣味橫生,引人入勝;不僅能增強思維能力,提高智力,而且富含哲理,有助于修身養(yǎng)性。傳統(tǒng)五子棋的棋子分為黑白兩色,采用圍棋棋盤,棋子放置于棋盤線交叉點上。兩人對局,各執(zhí)一色,輪流下一子,先將橫、豎或斜線的5個同色棋子連成不間斷的一排者為勝。
棋類游戲規(guī)則簡單,對外部要求不高,人們可以隨時隨地進(jìn)行對弈。但是,真正能夠精通棋類游戲的人卻不是很多,主要是棋類游戲具有變化莫測的特點,人們經(jīng)常得在棋局上深思熟慮才能找到克敵制勝的辦法。因此,各種棋類游戲都具有開發(fā)智力的效能。在休閑中使自己得到真正的長進(jìn),這或許就是其倍受人們青睞的原因所在!
1.2 項目目標(biāo)
我們將主要通過VC++語言,運用面向?qū)ο蟮某绦蛟O(shè)計方法,開發(fā)此款五子棋游戲。力爭使程序短小精悍,簡潔明了;游戲界面優(yōu)美,容易操作;功能豐富,趣味性強。現(xiàn)在將我們對項目期望實現(xiàn)的目標(biāo)一一介紹: a.能供兩人對弈。
b.可以實現(xiàn)經(jīng)典棋局的回放。c.可以悔棋。
D.能實現(xiàn)棋局步數(shù)的排名。e.操作方便,容易上手。
1.3 運行環(huán)境
本游戲短小精悍,而且對電腦配置的要求均不高,目前幾乎所有的PC機均可運行該游戲。但是為了能讓大家更好地體驗該款游戲,我們給出如下的最低配置:
-《軟件技術(shù)基礎(chǔ)》項目報告
最低配置:CPU1GHz 內(nèi)存 32M 硬盤 4G Windows 95 Microsoft Visual C++ 6.0 同時結(jié)合我們開發(fā)該游戲的環(huán)境,我們強烈推薦用戶使用如下的配置:
最佳配置:CPU2GHz及以上 內(nèi)存256M及以上 硬盤80G及以上 Windows XP及以上 Microsoft Visual C++ 6.0
1.4 游戲說明
(1)游戲流程:
啟動游戲后,顯示主菜單。里面包括開始游戲、讀取游戲、排行榜、關(guān)于游戲、游戲幫助、退出。讀取游戲中包含經(jīng)典棋局的回放和未下完的棋局。排行榜中顯示的是棋局步數(shù)的排名。(2)游戲規(guī)則:
落子:對陣雙方交替落子,任何一方不能多下一步,也不能在已有棋子的地方繼續(xù)落子,否則會有錯誤提示。
贏棋:任何一方先出現(xiàn)在棋盤的橫、縱或斜線上形成連續(xù)的五子,則該方獲勝。排行榜:可以判斷贏者是否可以進(jìn)入排行榜。
(3)特別提示:
? 雙人對弈模式下,悔棋的過程為:首先由玩家向?qū)Ψ桨l(fā)送悔棋請求(悔棋消息),然后由對方?jīng)Q定是否允許玩家悔棋,在玩家得到對方的響應(yīng)消息(允許或者拒絕)之后,才進(jìn)行悔棋與否的操作。
1.5 項目任務(wù)書
(1)班級:G11009(2)組長:崔光浩
(3)成員:尚振興、李洪潤、沈婷玉、程德武、付強、周彤嬌、佟承雨、付鈺(4)項目名稱: 五子棋
-《軟件技術(shù)基礎(chǔ)》項目報告
(5)項目背景:五子棋是起源于中國古代的傳統(tǒng)黑白棋種之一。五子棋不僅能增強思維能力,提高智力,而且富含哲理,有助于修身養(yǎng)性。五子棋既有現(xiàn)代休閑的明顯特征“短、平、快”,又有古典哲學(xué)的高深學(xué)問“陰陽易理”。
(6)項目分工:程德武:顯示棋盤、顯示幫助、游戲版權(quán)、顯示在線幫助文檔。
李洪潤:排行榜全部。
付 強:下棋、經(jīng)典棋局的回放。
沈婷玉:構(gòu)造函數(shù)、初始化所有數(shù)據(jù)、析構(gòu)函數(shù)。
尚振興:負(fù)責(zé)文檔規(guī)劃。
周彤姣:文件的保存和讀取。
付 鈺:技術(shù)支持。
(7)項目進(jìn)度:1-3天:前期準(zhǔn)備,各類資料收集,流程圖,算法等同時完成。4-7天:實現(xiàn)基本功能和附加功能。8-10天:最后測試,最后優(yōu)化。
(各類文檔的設(shè)計與編寫穿插于始終)
-《軟件技術(shù)基礎(chǔ)》項目報告
二、技術(shù)路線
2.1 總體方案
游戲的簡單流程如下圖:
開始開始游戲 讀取游戲排行榜幫助否關(guān)于退出 設(shè)定用戶信息 下棋判斷是否贏是悔棋鼠標(biāo)模擬進(jìn)排行榜否 是否保存保存是認(rèn)輸
2.2 詳細(xì)設(shè)計
a.實現(xiàn)玩家的類Player。其中實現(xiàn)各個成員變量的set和get方法,以及構(gòu)造和析構(gòu)函數(shù)。
b.實現(xiàn)五子棋的類Gobang。其中實現(xiàn)各個功能的函數(shù)如下: 1.開始游戲 :開始、下棋、悔棋、認(rèn)輸、保存 void startGame();2.顯示幫助文檔 void showHelp();3.顯示版權(quán) void showEdition();4.顯示棋盤 void showChessBoard();5.顯示在線在幫助文檔 void showOnlineHelp();
-《軟件技術(shù)基礎(chǔ)》項目報告
6.顯示菜單 void showMenu();7.播放歷史棋局 void movieGoBang();8.讀取排行榜 void setWinnerHome();9.顯示排行榜 void showWinnerHome();10.修改排行榜 void editWinnerHome(Player &player);11.保存歷史記錄、保存經(jīng)典、繼續(xù) int saveHD(char *arr);12.讀取歷史記錄、讀取經(jīng)典、繼續(xù) int loadHD(char *arr);13.鼠標(biāo)模擬 1.void monitor();2.bool agree(int a);14.悔棋 void repent();15.判斷五子連線 bool fun();16.顯示已保存文檔、有經(jīng)典文檔和繼續(xù)文檔 int showSave(int choice);
-《軟件技術(shù)基礎(chǔ)》項目報告
三、工程進(jìn)度
本次作業(yè)歷時十天時間,總的說起來可以分為三個部分:
3.1 前期準(zhǔn)備部分(第1-3天)
主要完成方案的討論、資料的收集、流程圖、算法等前期工作,編寫報告中需求分析的一部分和總體方案的一部分及項目任務(wù)書。
第1天:選定題名,進(jìn)行方案的討論。收集資料,寫出需求分析中的開發(fā)背景部分。第2-3天:商定算法,將軟件總體分塊,寫出項目任務(wù)書。
3.2中期實現(xiàn)功能部分(第4-7天)
主要完成預(yù)先設(shè)想的基本功能和附加功能,完成項目文檔中的技術(shù)路線和需求分析的剩余部分,完成調(diào)試報告中的單功能調(diào)適。
第4天:開始軟件編寫,完成棋盤的設(shè)計部分。完成下棋部分程序的編寫,測試棋盤設(shè)計部分。完成悔棋部分程序的編寫,測試下棋部分程序。
第5-6天:完成兩人對弈部分程序的編寫,測試基本功能,測試悔棋部分。
第7天:完成附加功能,測試對弈部分情況。完善各項功能,測試附加功能。
3.3后期總結(jié)完善部分(第8-10天)
總體功能的調(diào)試改進(jìn),完成項目文檔。
第8天:功能調(diào)試,優(yōu)化軟件。第9-10天:其它報告剩余部分。
0-《軟件技術(shù)基礎(chǔ)》項目報告
四、測試報告
4.1 第4天:測試棋譜
測試人:程德武
測試內(nèi)容:通過VC++語言,我們編寫了基于對話框的游戲界面。我們將測試它的最基本面貌,希望其是符合我們要求的界面模式!
測試過程:運行程序以后,彈出了棋局的對話框,整體棋局呈現(xiàn)白色,棋局右邊和上邊都有一些空出的區(qū)域,這是我們?yōu)閷韺崿F(xiàn)其他附加功能預(yù)留的地方。但是測試過程中我們始終發(fā)現(xiàn)一個問題,棋格的位圖沒有按照我們的設(shè)想正確放置,出現(xiàn)了躍出棋盤的怪現(xiàn)象!
問題解決:通過反復(fù)推敲程序相關(guān)部分,我們覺得可能是算法有疏漏,于是修改了一下算法。我們將每個棋格的位圖封裝了起來,將其位置作為成員數(shù)據(jù)。再運行程序,問題就不再出現(xiàn)了。反復(fù)運行程序再也沒有出現(xiàn)異常情況!
4.2 第5天:基本功能測試
測試人:佟承雨
測試內(nèi)容:程序的基本框架已經(jīng)編好了,希望能按我們的預(yù)期目標(biāo)能實現(xiàn)供兩人對弈功能!
測試過程:將程序編譯、鏈接、運行后,彈出棋局的對話框,然后開始下棋,我們一步一步觀察了每步落子后棋局的變化過程,均與我們預(yù)期的變化過程一樣,我們非常欣喜,這說明我們設(shè)計下棋程序時的算法準(zhǔn)確無誤!
1-《軟件技術(shù)基礎(chǔ)》項目報告
4.3 第6天:悔棋功能
測試人:沈婷玉
測試內(nèi)容: 測試悔棋功能能否正常實現(xiàn)。
測試過程:我們測試了悔棋功能,反復(fù)的測試,此功能運行良好,能夠一步一步悔棋,直到無子可悔,而且通過記錄觀察,每步的悔棋過程均準(zhǔn)確無誤!
4.4第7天:測試其他的附加功能
測試人:李洪潤
測試內(nèi)容:我們對排行榜,經(jīng)典棋局回放功能進(jìn)行了測試
測試過程:我們開始游戲后,正常下棋取得勝利后,程序默認(rèn)將勝方步數(shù)與排行榜中已存在的玩兒家步數(shù)進(jìn)行比較,滿足條件則進(jìn)入排行榜,否則不進(jìn)入。如果是前五次玩的話默認(rèn)都進(jìn)入排行榜。關(guān)于經(jīng)典棋局,進(jìn)入游戲后,載入經(jīng)典棋局,每按一次回車,回放一步,經(jīng)測試無異常。
4.5第8-10天:總體測試
測試人:崔廣浩
測試內(nèi)容:我們將在總體上對程序的運行效果和運行環(huán)境進(jìn)行測試,以完善所有功能,達(dá)到軟件的最優(yōu)化!
測試過程:
首先我們測試了軟件對運行環(huán)境的要求,我們先在Windows xp操作系統(tǒng)中運行了一遍,結(jié)果并無異常情況出現(xiàn);隨后我們在CPU只有1GHz頻率的硬件系統(tǒng)中運行,也并未發(fā)現(xiàn)任何問題!我們基本上可以得出結(jié)論,我們的軟件在一般的軟、硬件環(huán)境下都能正常穩(wěn)定地運行,對機子的配置基本沒有什么要求,適合于廣大的電腦擁有者使用!
2-《軟件技術(shù)基礎(chǔ)》項目報告
五、個人小結(jié)
通過本次五子棋程序的設(shè)計,我想我學(xué)到了很多東西。我主要是負(fù)責(zé)大報告的設(shè)計和編寫,同時也編寫一部分程序。編程的確是非常辛苦,主要是第一次利用VC++編寫程序。我的VC++學(xué)的不是很好,編程時遇到了很多的困難,好在我們班的崔光浩同學(xué)不辭辛苦的幫助我調(diào)試程序,我們參考了很多的資料,像我們《軟件基礎(chǔ)》大作業(yè)中的優(yōu)秀作品,網(wǎng)上的有關(guān)VC++的一些實用的編程技巧,還有一些經(jīng)典的算法。善于利用已有的資源,是我在本次大作業(yè)中學(xué)到得很寶貴的經(jīng)驗,對于網(wǎng)絡(luò),我們懂得了不只要用它來實現(xiàn)低級的聊天、看電影、打游戲等功能,我們還要實現(xiàn)獲取有用的信息、學(xué)習(xí)別人先進(jìn)的方法、查閱相關(guān)的電子資料等功能,充分發(fā)揮它的作用。
我們這次的作品,雖然只是一個比較簡單游戲的實現(xiàn),但是通過這次合作,我也有很大的收獲。雖然是一個小組,但每個人有不同的看問題的方法,我們在做這個軟件的時候,大家也曾有過意見的分歧,我們也曾因為預(yù)期的功能沒有實現(xiàn)而互相指責(zé),也曾為有一點小小的進(jìn)步而欣喜若狂。一路風(fēng)風(fēng)雨雨,我們畢竟是基本完成了預(yù)期的功能,努力沒有白費,心里特別的充實,這就是創(chuàng)造的快樂,也是合作的快樂。我還編寫了大作業(yè)的文檔,由于自身能力的有限,我雖然竭盡全力,但總的感覺還是不能讓我滿意,不過,我也從中學(xué)到了一些東西:
總的說來,這次作業(yè)中我鍛煉了自己的能力,也培養(yǎng)了團隊合作的精神,感謝我的隊友!感謝老師!感謝生活!
——尚振興
在本軟件的開發(fā)中,還是有不少地方是不太滿意的,首先我通過單純的VC++語言來實現(xiàn)功能。雖然VC++的強大功能足以應(yīng)付這種軟件的開發(fā)要求了,但是由于控件的缺乏,語法的繁瑣,在實現(xiàn)很多功能的實現(xiàn)中花費了不少力氣。但是由于知識水平的缺乏,無法使用Delphi,flash等更簡便的手段來實現(xiàn)功能,希望以后可以彌補這一點。其次,缺乏完成大工程的經(jīng)驗,沒有建立一個有效可行的工作計劃。在工作中時而通宵奮戰(zhàn),時而停頓不前,既浪費了寶貴的時間,也耗費了大量精力,實在得不償失。
但值得注意的是,在軟件的開發(fā)中,我也學(xué)到了很多書本上學(xué)不到的經(jīng)驗。首先,我使用了別人開發(fā)的思想,雖然開始很不習(xí)慣,但是上手之后就深深的體會到模塊化開發(fā)和面向?qū)ο笳Z言的方便與高效。其次,這次開發(fā)中我使用了很多以前沒接觸過的函數(shù)。除了上網(wǎng)學(xué)習(xí)資料外。熟練的使用老師提供的參考資料,相信對我以后的工作會有很大的益處。
3-《軟件技術(shù)基礎(chǔ)》項目報告
我覺得通過這個小項目很好地考察了每個學(xué)生的知識水平,每個人都發(fā)揮了個人最佳的狀態(tài)。雖然這種形式比普通的卷面考試要難,但是卻能夠充分調(diào)動每個人的積極性去學(xué)習(xí)自己尚未接觸的知識和運用自己已經(jīng)學(xué)過的知識。實驗中,我們小組成員之間配合默契,共同商討問題,使我們在碰到一個一個的問題后,能快速找到相關(guān)的答案。難能可貴的是,在軟件制作最緊張的時候,大家都義無反顧地放棄了一點休息時間,和團隊一起堅持奮斗!所以通過這次實驗的合作,我們小組成員之間更加增進(jìn)了了解,增進(jìn)了團結(jié)!
——崔光浩
六、主要算法
以下時詳細(xì)算法中提到的主要函數(shù),其他函數(shù)在程序中。
1判斷勝負(fù)
五子棋的勝負(fù),在于判斷棋盤上是否有一個點,從這個點開始的右、下、右下、左下四個方向是否有連續(xù)的五個同色棋子出現(xiàn),判斷勝負(fù)方向如下圖
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-《軟件技術(shù)基礎(chǔ)》項目報告
{
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-《軟件技術(shù)基礎(chǔ)》項目報告
2鼠標(biāo)模擬
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-《軟件技術(shù)基礎(chǔ)》項目報告
}
} 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-《軟件技術(shù)基礎(chǔ)》項目報告
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-《軟件技術(shù)基礎(chǔ)》項目報告 } } } } break;case 5: //悔棋 repent();break;case 6: //保存 showSave(1);break;case 7: //退出 chose = 0;break;default: break; 一、實驗?zāi)康?/p> (1)使用Java編寫五子棋程序 (2)掌握編寫過程的一些類和類成員的使用,并且了解五子棋制作過程的一些步驟和了解一些算法。 二、實驗環(huán)境 在電子樓2樓,裝有My Eclipse 的計算機上進(jìn)行 三、實驗內(nèi)容 編寫一個五子棋程序。程序主要實現(xiàn)以下功能: 1.實現(xiàn)五子棋界面,要求人性化界面簡潔美觀; 2.實現(xiàn)黑白色輪流下棋功能,能提示下棋方; 3.實現(xiàn)連成五子自動判斷功能; 4.實現(xiàn)時間設(shè)置功能,認(rèn)輸功能; 核心代碼如下: 1.我的第一步是設(shè)計界面。在這個過程的要使用到以下的步驟: 1.使用MyEclipse 創(chuàng)建一個Project關(guān)于這個工程,加入兩個類,分別是ChessFrame和Chess,而ChessFrame是這個工程中最重要的一個部分。創(chuàng)建過程中要繼承JFrame類,并且要繼承Runnable 和 MouseListener 這兩個接口,分別是用來監(jiān)聽鼠標(biāo)的移動和時間的變化。2.在給這個JFrame設(shè)置大小和顏色等一些東西。這里最主要的是使用了兩個函數(shù),是以前沒見過的: 1.這個是用來設(shè)置默認(rèn)的窗口關(guān)閉事件的 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);2.這兩個是用來獲得屏幕的大小的 Toolkit.getDefaultToolkit().getScreenSize().height;Toolkit.getDefaultToolkit().getScreenSize().width; 3.把本地的背景圖片加到這個窗口中,作為這個窗口的背景圖: 使用的到的類有BufferedImage和 ImageIO這兩個類,這兩個類是專門用來處理這種功能的。主要的代碼如下: BufferedImage bg = null;bg = ImageIO.read(new File(“e:/background.jpg”));g.drawImage(bg,0,0,this);這樣這個圖片就加到了這個窗口的背景去了。 這里有一個改進(jìn)就是雙緩沖技術(shù),可以防止閃屏。這個技術(shù)就是在界面和內(nèi)存都有一幅圖,我們的改動不是直接畫界面,而是內(nèi)存中先畫好然后把內(nèi)存中直接顯示出來,那樣就沒有了一前一后的,那就沒有了閃屏的事情發(fā)生了。 4.就是畫棋盤和寫一些游戲信息: 這步比較簡單,也沒什么可以說的,用到的一些畫線的函數(shù),和寫String的一些函數(shù)。 以上做完以后就可以出現(xiàn)以下的界面: 1.我的第二步就是增加對mouse的點擊和移動的處理,這樣以后就可以用來下棋。在這個過程的要使用到以下的步驟: 1.增加對mouse的監(jiān)視,然后重寫它的一些函數(shù): 1.我們在ChessFrame的構(gòu)造函數(shù)中加入了addMouseListener()函數(shù),然后重寫關(guān)于這個的四個函數(shù),我們這這里不重寫所有的函數(shù),就改寫一個MousePress函數(shù)就可以了。改寫的代碼如下: public void mousePress(MouseEvent arg0){ this.x = arg0.getX();this.y = arg0.getY();if(this.canplay) } this.repaint();現(xiàn)在要處理的就是加上棋子了,我在這個做了一下小改動可以更加準(zhǔn)確的定位下棋的位置: if(x >= 10 && x <= 374 && y >= 72 && y <= 450){ int sx1 =(this.x72)/ 20;int yx1 =(this.x72)% 20;if(yx1 >= 10){ } if(yy2 >= 10){ } sy2++;sx1++;就是這個,我們通過監(jiān)控鼠標(biāo)的就可以得到點擊的X,Y坐標(biāo),我在這里通過對它求余,假如余數(shù)大于10(就是一個格子的一半)那就給+1,不然不變。后面的畫棋子是很簡單的一個過程,使用的是現(xiàn)成的函數(shù)(drawoval) 2.這部要做的就是記錄棋子和五子連的判斷: 1.我們通過一個數(shù)組int給保存棋子,如果是0就是沒子,1表示是黑子,2表示白子。在每次重繪的時候遍歷這個數(shù)組顯示,這樣就可以保存棋子了。2.判斷五子連起來然后獲勝的算法: 這個算法是鑒戒例子上的: private boolean isline(int x, int y, int xchange, int ychange, int color){ int tempx = xchange;int tempy = ychange;int count = 1;while(x + xchange >= 0 && y + ychange >= 0 && color == chess1[x + xchange][y + ychange]){ count++;if(xchange!= 0){ } if(ychange!= 0){ if(ychange < 0){ xchange++; } } } } ychange--;ychange++;} else { xchange = tempx;ychange = tempy;while(xychange >= 0 } if(count >= 5){ } return true;return false;} else { && color == chess1[xychange]){ count++;if(xchange!= 0){ } if(ychange!= 0){ } if(ychange < 0){ } ychange--;ychange++;} else { xchange++;中心思想就是要判斷就要判斷8個方向,其中有的只是相反的方向,我們使用關(guān)于X,Y的相對的變化來判斷,并且使用count來計數(shù),如果到了5個就可以判斷勝利啦。 1.我的第三步就是時間的變化和一些鍵的設(shè)置 1.關(guān)于時間的變化主要是在于線程的使用,這里我們這個JFrame它繼承了Runnable 這個接口,不過我們要重寫Run函數(shù),這個run函數(shù)的代碼如下: public void run(){ if(this.second > 0){ while(true){ this.repaint();if(this.isblack){ this.ss1--; if(this.ss1 == 0){ JOptionPane .showMessageDialog(this, “黑方超時~~~~?¤游戲結(jié)束”); this.message1=“0:0:0”; { “白方超時~~~~?¤?¤游戲結(jié)束”);this.message2=“0:0:0”;this.canplay = false; { { } this.ss2--; if(this.ss2 == 0){ this.message1 = this.ss 1/ 3600 + “ : ” +(this.ss1 / 60this.ss1 / 60 * this.ss1=-1; this.canplay = false; }else if(this.ss1>0)3600 * 60)60this.ss2 / 3600 + “ : ” +(this.ss2this.ss2 / 3600 * 60 * 60); this.repaint();}else { } try { } Thread.sleep(1000);e.printStackTrace();} catch(InterruptedException e){ 這個函數(shù)是用來事時間的變化,所以每操作以后就讓線程sleep(1000)就可以了,那樣就是一秒鐘。這樣就可以倒計時了。2.現(xiàn)在我們要點擊一個按鈕要它有響應(yīng)。 這里我們其實就沒用到什么button,那為什么會有反應(yīng)呢,因為我們通過鼠標(biāo)的點擊范圍來確定要響應(yīng)什么函數(shù),這就是這里面的秘密.在public void mouseClicked(MouseEvent arg0)函數(shù)里有下面這些if的判斷 if(x1 >= 404 && x1 <= 473 && y1 >= 74 && y1 <= 103)if(x1 >= 404 && x1 <= 473 && y1 >= 127 && y1 <= 155)if(x1 >= 404 && x1 <= 473 && y1 >= 179 && y1 <= 208)if(x1 >= 404 && x1 <= 473 && y1 >= 286 && y1 <= 316)if(x1 >= 404 && x1 <= 473 && y1 >= 338 && y1 <= 367)if(x1 >= 404 && x1 <= 473 && y1 >= 390 && y1 <= 419)這就是為了確定鼠標(biāo)的范圍,然后相對調(diào)用函數(shù)。 其他還有就是一些Debug處理,在程序已經(jīng)處理了,結(jié)果的還是蠻可以處理的,不過只能是人人對戰(zhàn)。 四、實驗心得與小結(jié) 這次試驗總的來說沒有想像中那么難,還有視屏的幫助,感覺起還是很容易動手的,不過由于自己沒上心,沒有做比較大的改動,最主要的人機的對戰(zhàn)沒做出來是滿遺憾的,不過通過這個試驗,讓我學(xué)習(xí)了不少的知識,比如雙緩沖,mouselistener 等許多許多的知識,還有關(guān)于五子棋算法的設(shè)計也是一部分。不管怎么說還是有學(xué)到知識的,沒什么改動,但對現(xiàn)有的知識的掌握還是很可以的。 五、指導(dǎo)教師評議 成績評定: 指導(dǎo)教師簽名: 五子棋教學(xué)計劃 閔丹丹 2014-2015學(xué)年第一學(xué)期五子棋教學(xué)計劃 一、學(xué)生情況: 本學(xué)年二、三年級共有學(xué)生48人。由于學(xué)生年齡小,班級人數(shù)多,五子棋對學(xué)生來說,還是比較喜歡,他們喜歡動手,這對我來說有利于上好本學(xué)期的五子棋課。 二、指導(dǎo)思想: 五子棋是我國民間熟知的古老棋種,它簡單易學(xué),老少皆易,趣味性極高。它起源于我國并得以盛傳,現(xiàn)今已形成一種國際間的比賽項目,被亞歐許多國家學(xué)習(xí)并發(fā)揚廣大。五子棋不僅是一種國粹,是一種中西文化交流的媒介,中國人民喜歡它,全世界人民也喜愛它;而且,五子棋也是一種有助于身心健康的智力活動。所以開設(shè)五子棋課程,既可以弘揚我國的傳統(tǒng)民族文化,培養(yǎng)學(xué)生的愛國情感,又能開發(fā)學(xué)生智力,促進(jìn)邏輯思維,培養(yǎng)學(xué)生的自信心,可謂一舉兩得。 三、實施過程: 1、教學(xué)思路 五子棋入門容易,趣味性強。教學(xué)中,分兩部分教學(xué)內(nèi)容,第一部分先講解五子棋入門的基本知識,包括其歷史淵源,基本下法,比賽規(guī)則及決殺棋點等,學(xué)習(xí)這部分知識時,采取講練結(jié)合的方式,即教師講述十分鐘,學(xué)生練習(xí)三十分鐘,引導(dǎo)激發(fā)學(xué)生學(xué)習(xí)的興趣,第二部分采用習(xí)題與解答的形式進(jìn)行綜合訓(xùn)練,并進(jìn)行小組比賽、個人比賽等方式來鞏固掌握所學(xué)的知識點。借以培養(yǎng)學(xué)生良好的合作意識,體會下棋的樂趣,要積極樂觀地對待人生。深刻體會“沒有規(guī)矩,不成方圓”的辨證道理。 2、教學(xué)目標(biāo) ①學(xué)生掌握五子棋的歷史淵源,培養(yǎng)學(xué)生的愛國情感和良好的棋德意識,如比賽中要有勝不嬌,敗不餒的良好心理素質(zhì)。 ②通過下五子棋,培養(yǎng)學(xué)生尊重他人,愿意與他人合作和溝通的意識,為學(xué)生的良好人生發(fā)展奠定基礎(chǔ)。 ③通過講解與練習(xí),努力促進(jìn)每一位學(xué)生的邏輯思維,對于水平較高的學(xué)生,想辦法給予獎勵,使其更加積極地學(xué)習(xí)。 3、教學(xué)特點 五子棋簡單易學(xué),老少皆宜,趣味性強,深受學(xué)生喜愛。下棋過程比其它棋類要快,連續(xù)性強,使學(xué)生有較強的取勝心理,容易獲得滿足感。由于不吃子,棋子也不能移動,少了棋盤上的爭殺,類似默默的和平競爭。在學(xué)習(xí)的過程中,這項活動積極促進(jìn)了學(xué)生的品行、智力、審美及身心等綜合素質(zhì)的和諧發(fā)展,更有利于把我國的民族文化發(fā)揚廣大。 四、教學(xué)內(nèi)容安排 第一周 2014.9.17 第一課時 了解五子棋的發(fā)展概況以及五子棋的簡易規(guī)則 第二周 2014.9.24 第二課時 五子棋單一棋形形態(tài)的認(rèn)識 第三周 2014.10.8 第三課時 了解并掌握“活二” 的形式 第四周 2014.10.15 第四課時 了解并掌握“活三” 的形式 第五周 2014.10.22 第五課時 鞏固對五子棋單一形態(tài)的認(rèn)識 (一)第六周 2014.10.29 第六課時 兩人簡單對決練習(xí) 第七周 2014.11.5 第七課時 鞏固對五子棋單一形態(tài)的認(rèn)識 (二)第八周 2014.11.12 第八課時 兩人簡單對決練習(xí) 第九周 2014.11.19 第九課時 講解單一棋形的防守 (一)第十周 2014.11.26 第十課時 第十一周2014.12.3 第十一課時 第十二周2014.12.10 第十二課時第十三周 2014.12.24 第十三課時 第十四周 2014.12.31 第十三課時 講解單一棋形的防守 (二)兩人簡單對決練習(xí)鞏固單一棋形的防守方法 認(rèn)禁手、捉禁手、解禁手 考核比賽篇二:校本:五子棋教學(xué)計劃 五子棋教學(xué)計劃 2015-2016學(xué)年第一學(xué)期五子棋教學(xué)計劃 一、學(xué)生情況: 本學(xué)年五年級共有學(xué)生248人。由于學(xué)生年齡小,班級人數(shù)多,五子棋對學(xué)生來說,還是比較喜歡,他們喜歡動手,這對我來說有利于上好本學(xué)期的五子棋課。 二、指導(dǎo)思想: 五子棋是我國民間熟知的古老棋種,它簡單易學(xué),老少皆易,趣味性極高。它起源于我國并得以盛傳,現(xiàn)今已形成一種國際間的比賽項目,被亞歐許多國家學(xué)習(xí)并發(fā)揚廣大。五子棋不僅是一種國粹,是一種中西文化交流的媒介,中國人民喜歡它,全世界人民也喜愛它;而且,五子棋也是一種有助于身心健康的智力活動。所以開設(shè)五子棋課程,既可以弘揚我國的傳統(tǒng)民族文化,培養(yǎng)學(xué)生的愛國情感,又能開發(fā)學(xué)生智力,促進(jìn)邏輯思維,培養(yǎng)學(xué)生的自信心,可謂一舉兩得。 三、實施過程: 1、教學(xué)思路 五子棋入門容易,趣味性強。教學(xué)中,分兩部分教學(xué)內(nèi)容,第一部分先講解五子棋入門的基本知識,包括其歷史淵源,基本下法,比賽規(guī)則及決殺棋點等,學(xué)習(xí)這部分知識時,采取講練結(jié)合的方式,即教師講述十分鐘,學(xué)生練習(xí)三十分鐘,引導(dǎo)激發(fā)學(xué)生學(xué)習(xí)的興趣,第二部分采用習(xí)題與解答的形式進(jìn)行綜合訓(xùn)練,并進(jìn)行小組比賽、個人比賽等方式來鞏固掌握所學(xué)的知識點。借以培養(yǎng)學(xué)生良好的合作意識,體會下棋的樂趣,要積極樂觀地對待人生。深刻體會“沒有規(guī)矩,不成方圓”的辨證道理。 2、教學(xué)目標(biāo) ①學(xué)生掌握五子棋的歷史淵源,培養(yǎng)學(xué)生的愛國情感和良 好的棋德意識,如比賽中要有勝不嬌,敗不餒的良好心理素質(zhì)。 ②通過下五子棋,培養(yǎng)學(xué)生尊重他人,愿意與他人合作和溝通的意識,為學(xué)生的良好人生發(fā)展奠定基礎(chǔ)。③通過講解與練習(xí),努力促進(jìn)每一位學(xué)生的邏輯思維,對于水平較高的學(xué)生,想辦法給予獎勵,使其更加積極地學(xué)習(xí)。 3、教學(xué)特點 五子棋簡單易學(xué),老少皆宜,趣味性強,深受學(xué)生喜愛。下棋過程比其它棋類要快,連續(xù)性強,使學(xué)生有較強的取勝心理,容易獲得滿足感。由于不吃子,棋子也不能移動,少了棋盤上的爭殺,類似默默的和平競爭。在學(xué)習(xí)的過程中,這項活動積極促進(jìn)了學(xué)生的品行、智力、審美及身心等綜合素質(zhì)的和諧發(fā)展,更有利于把我國的民族文化發(fā)揚廣大。 四、教學(xué)內(nèi)容安排 第一周 第一課時 了解五子棋的發(fā)展概況以及五子棋的簡易規(guī)則 第二周 第二課時 五子棋單一棋形形態(tài)的認(rèn)識 第三周 第三課時 了解并掌握“活二” 的形式 第四周 第四課時 了解并掌握“活三” 的形式 第五周 第五課時 鞏固對五子棋單一形態(tài)的認(rèn)識 (一)第六周 第六課時 第七周 第七課時 第八周 第八課時 第九周 第九課時 第十周 第十課時 第十一周 第十一課時 第十二周 第十二課時第十三周 第十三課時 第十四周 第十三課時 兩人簡單對決練習(xí) 鞏固對五子棋單一形態(tài)的認(rèn)識 (二)兩人簡單對決練習(xí) 講解單一棋形的防守 (一)講解單一棋形的防守 (二)兩人簡單對決練習(xí)鞏固單一棋形的防守方法 認(rèn)禁手、捉禁手、解禁手 考核比賽篇三:五子棋校本課程計劃 五子棋校本課程計劃 一、指導(dǎo)思想: 五子棋課是我校義務(wù)教育階段對學(xué)生培養(yǎng)愛國情感,推廣體育文 化知識,開發(fā)邏輯思維能力,提升心理素質(zhì)的一門校本課程,通過學(xué)習(xí)必將對學(xué)生擁有自信的人生起到積極的積淀作用。五子棋能促進(jìn)學(xué) 生的品行、智力、審美及身心等綜合素質(zhì)的和諧發(fā)展。五子棋起源于 我國,這有利于弘揚我國的傳統(tǒng)民族文化,培養(yǎng)有理想、有道德、有 文化、有紀(jì)律的社會主義公民,并對我國現(xiàn)代化建設(shè)能起到積極地推 動作用。 二、課程實施總體目標(biāo): 五子棋課的教學(xué)目的是培養(yǎng)愛國主義情感和良好的棋德意識,使學(xué) 生系統(tǒng)、準(zhǔn)確的掌握五子棋的基礎(chǔ)知識及基本比賽方法,培養(yǎng)學(xué)生對五 子棋的興趣,逐步提高他們的五子棋的對弈水平,發(fā)展學(xué)生的思維、動 手、與別人合作、搜集信息等綜合能力,特別是獨立解決問題的能力。并培養(yǎng)學(xué)生的規(guī)則意識,時間觀念,陶冶學(xué)生良好的情操,增加他們的 生活情趣。 三、教學(xué)內(nèi)容: 第一課 五子棋的歷史和現(xiàn)狀 第二課 五子棋的棋具 第三課 五子棋的規(guī)則 (一)第四課 五子棋的規(guī)則 (二)第五課 五子棋的開局 (一)第六課 五子棋的開局 (二)第七課 五子棋的活四 第八課 活三 第九課 什么是眠三? 第十課 你知道長連禁手嗎 四、教學(xué)時間:周三下午進(jìn)行 五、人員安排: 四年級學(xué)習(xí)五子棋的同學(xué)。 六、考核評價: 學(xué)生基本上掌握五子棋的基礎(chǔ)知識及基本比賽方法,能夠?qū)ξ?子棋產(chǎn)生濃厚的興趣,逐步提高五子棋的對弈水平,發(fā)展學(xué)生的思維、動手、與別人合作、搜集信息等綜合能力,有一定的獨立解決問題的能力。 校本課程(跳棋)教學(xué)計劃 一、跳棋概述: 跳棋的游戲規(guī)則很簡單,棋子的移動可以一步步在有直線連接的相鄰六個方向進(jìn)行,如果相鄰位置上跳棋有任何方的一個棋子,該位置直線方向下一個位置是空的,則可以直接“跳”到該空位上,“跳”的過程中,只要相同條件滿足就可以連續(xù)進(jìn)行。誰最先把正對面的陣地全部占領(lǐng),誰就取得勝利。一玩就懂,一輩子都不會忘,所以幾乎每個人從小到大都下過跳棋。跳棋在香港跳棋被稱為“波子棋”。關(guān)于跳棋的第一本書早在一五三一年就已經(jīng)在威尼斯出版。目前在跳棋基礎(chǔ)上發(fā)展起來的國際跳棋在許多國家受到歡迎。國際跳棋聯(lián)合會已經(jīng)有五十多個會員國。 二、教學(xué)目標(biāo): 1、培養(yǎng)孩子學(xué)習(xí)跳棋的興趣。 2、會兩個孩子單跳,知道簡單的跳棋技巧。 3、培養(yǎng)孩子動腦、動手的能力。 三、教學(xué)方法: 講授法 動手操作法 演示法 四、教學(xué)時間:周三下午第二節(jié) 五、有效推進(jìn)課程的措施。 1、重在興趣培養(yǎng)。 2、盡快縮短距離。 3、掌握課時節(jié)奏。 4、概念表達(dá)清楚。 5、時刻注意孩子 6、表揚鼓勵為主。篇四:三年級五子棋教學(xué)計劃及安排 三年級五子棋教學(xué)計劃與安排 一、訓(xùn)練目標(biāo) 通過教學(xué),讓學(xué)生基本明白五子棋的有關(guān)知識,懂得五子棋規(guī)則、五子棋的術(shù)語、常用戰(zhàn)術(shù)、布局,并且進(jìn)行經(jīng)常性的對弈,再對弈中提高自己全面考慮問題的能力和素質(zhì)、陶冶情操,促進(jìn)身心發(fā)展、增強體質(zhì),培養(yǎng)頑強拼搏精神,鍛煉意志品質(zhì)。 二、訓(xùn)練措施: 1、按課程超市安排的時間分周進(jìn)行。 2、利用磁性黑板和磁性象棋,讓學(xué)生通過棋譜學(xué)習(xí)五子棋的相關(guān)知識。在下棋過程中,內(nèi)容相互穿插,對不同層次的學(xué)生進(jìn)行因材施教。教以下棋過程中的方法和技巧,并且進(jìn)行“傳、幫、帶”的教與學(xué),以會學(xué)生幫助初學(xué)的學(xué)生共同進(jìn)步。 三、時間和內(nèi)容安排 第一周:初步了解五子棋的基本知識 第二周:讓學(xué)生了解五子棋的一些基本的術(shù)語 第三周:三的分類 第四周:四的分類 第五周:棋盤 第六周:棋子 第七周:記譜方法 第八周:基本規(guī)則(1) 第九周:基本規(guī)則(2) 第十周:特殊規(guī)則 第十一周:比賽相關(guān)術(shù)語 第十二周:《那氏五子兵法》 第十三周:五子棋的開局 第十四周:中國五子棋競賽規(guī)則的五子棋開局 第十五周:五子棋-棋人棋語1 第十六周:五子棋-棋人棋語2 第十七周:五子棋-棋人棋語3 第十八周:小組賽 五子棋教學(xué)活動(第一周) 教學(xué)目標(biāo): 1.初步了解五子棋的基本知識。2.培養(yǎng)學(xué)生對下五子棋的興趣。 教學(xué)準(zhǔn)備:五子棋材料 教學(xué)過程: 1.出示棋盤和棋子,教師演示,讓學(xué)生認(rèn)識什么是五子棋。2.講解棋盤的結(jié)構(gòu)及如何構(gòu)成五子的排列方法。3.理解基本規(guī)則:最先連成5個的為勝。 五子棋,非常簡單,直線連成五個子就贏了!如下圖: 4.讓學(xué)生兩人一組,操作練習(xí)。5.講解基本手法 五個子自然是來自于四個,所以要先形成活四!如下圖: 如圖,所謂活四,即你現(xiàn)在執(zhí)白無論防在這四個子的哪一頭,黑方都可以下一步在另一頭連成五個! 如此可見,活四的時候已經(jīng)無法防守,而活四,顯然也是從三個子而來,所以如果要想形成活四,必須先有活三! 上圖,這里黑棋在兩邊任意一邊只要再落一子即可形成活四! 上圖:這個是跳活三,黑棋在中間落一子即可形成活四! 由此看到,活三如果不理會,下一步即可形成活四勝,所以活三的時候另一方需要阻攔進(jìn)行防守! 而活三自然也是由二個子形成,即活二! 五子棋教學(xué)活動(第二周) 教學(xué)目標(biāo): 1.讓學(xué)生了解五子棋的一些基本的術(shù)語。2.培養(yǎng)學(xué)生的學(xué)習(xí)興趣。 教學(xué)過程: 二的分類: 一、活二的形式: 根據(jù)上節(jié)課,我們認(rèn)識到如果要想贏棋,活二是個基本元素!現(xiàn)在詳細(xì)介紹一下活二! 活二,即可以形成活三的二!有三種形式: (1)連活二 此種活二可以選擇形成兩種活三中的任意一種!如下圖 其中連活二在形成活三時可選擇的點,如下圖:(字母標(biāo)注) (2)跳活二 此種活二同樣也可以選擇形成兩種活三中的任意一種!(圖略) 然而在形成活三時可選擇的點會減少,如下圖:(字母標(biāo)注) (3)大跳活二 此種活二只能形成其中一種活三!如下圖: 同時此種活二形成活三時可選擇的點也是最少的!如下圖:(字母標(biāo)注)此種活二是三種活二中最弱的一種,然而由于其兩點距離較遠(yuǎn),通常容易被忽略,所以隱蔽性高! 二、眠二 眠二的意思是在下一步無法形成活三,但是可以形成眠三,構(gòu)成潛在的力量!一般有以下幾種形式: 三、死二 死二的意思是這個二已經(jīng)幫不上任何忙了,無論在這條線上怎樣借子都無法形成有用的三,如下圖: 篇五:7五子棋小組活動計劃方案等 小學(xué)五子棋興趣小組教學(xué)計劃 為了豐富學(xué)生的課外生活,陶冶學(xué)生的情操,我班課外活動開設(shè)了棋類興趣小組活動。五子棋是科學(xué)、文化、藝術(shù)、競技融為一體的智力體育項目。有助于青少年智力開發(fā),邏輯思維和想象能力的培養(yǎng),同時又能培養(yǎng)學(xué)生的耐心細(xì)心等意志品質(zhì),增進(jìn)友誼,陶冶高雅情操。因此本學(xué)期我們開設(shè)五子棋活動。 一、課程的性質(zhì)、目的及任務(wù) (一)、向?qū)W生傳授中國五子棋的基本知識、基本技術(shù)、基本技能和比賽規(guī)則。 (二)、豐富學(xué)生的課余生活,增加其參與社會活動的途徑,進(jìn)一步促進(jìn)中國棋類運動的推廣和普及。 (三)、通過教學(xué)實踐,培養(yǎng)學(xué)生獨立思考和統(tǒng)觀全局的觀念和能力。 二、學(xué)情分析 (一)、五子棋興趣小組大部分學(xué)生雖然接觸過此棋種,但是對其的研究甚少,應(yīng)該從最基本的入手,傳授學(xué)生基本知識的同時以培養(yǎng)學(xué)生興趣為目的。 (二)、學(xué)習(xí)五子棋首先要學(xué)會一些基礎(chǔ)知識,明確棋規(guī)的要求,學(xué)會思考,這樣能為自學(xué)創(chuàng)造有利條件 (三)、學(xué)生的學(xué)習(xí)習(xí)慣還沒有完全養(yǎng)成,課堂中要體現(xiàn)活潑,快樂,要結(jié)合競賽輔助。 三、課程教學(xué)基本要求 (一)、了解中國五子棋這項活動的特點及其概況。 (二)、了解五子棋的比賽規(guī)則。 (三)、掌握最基本的行棋知識和最基本技術(shù)、戰(zhàn)術(shù)。 四、課程教學(xué)基本內(nèi)容 小學(xué)五年級五子棋興趣小組實施方案 一、指導(dǎo)思想 五子棋是科學(xué)、文化、藝術(shù)、競技融為一體的智力體育項目。有助于青少年智力開發(fā),邏輯思維和想象能力的培養(yǎng),分析能力和記憶力的促進(jìn),思維的敏捷性和嚴(yán)密性得以提高。同時又能培養(yǎng)學(xué)生頑強勇敢、堅毅沉著、機智靈活、大局觀等優(yōu)秀的意志品質(zhì),增強學(xué)習(xí)生活中的計劃性和靈氣性,增進(jìn)友誼,陶冶高尚情操,它還能豐富人們的文化生活,增進(jìn)友誼,陶冶高雅情操。 二、活動價值 (一)、教育性:結(jié)合五子棋的有關(guān)典故,進(jìn)行民族精神教育,培養(yǎng)愛國主義精神。同時有助于邏輯思維、頑強勇敢、堅毅沉著和想象能力的培養(yǎng),分析能力和記憶力的促進(jìn),有利于學(xué)生儒雅、大氣、靈氣、靜心等情操的陶冶。 (二)、規(guī)則性:沒有規(guī)矩難成方圓。五子棋的走法具有一定的規(guī)則,評判一盤棋的輸贏也符合一定的規(guī)則,你要參與必須遵守它的規(guī)則,學(xué)生在訓(xùn)練、下棋的過程中潛移默化養(yǎng)成遵守規(guī)則的良好習(xí)慣,對于學(xué)習(xí)以及今后的社會生活得以受益。 (三)、趣味性:棋類,對于學(xué)生來說本身具有較強的興趣,又有易學(xué)、攜帶方便,不受競技場地限制等優(yōu)點。學(xué)校營造一些特色的環(huán)境,同時多舉行不同層次,不同層面的比賽,使學(xué)生感受到五子棋的濃厚興趣和高雅的活動。 (四)、競技性:五子棋是一項競技項目,對弈雙方都想贏。而“棋局如人生”,復(fù)雜多變、風(fēng)云突起、難以把握。通過訓(xùn)練,可以幫助學(xué)生克服急躁和優(yōu)柔寡斷的不良性情,增強戰(zhàn)勝困難的意志、毅力和勇氣,培養(yǎng)學(xué)生積極進(jìn)取、爭強好勝的拼搏精神。 三、活動目標(biāo) (一)、成立興趣小組,每周開展1次活動,使我校大部分學(xué)生都會下棋,并盡力培養(yǎng)出棋類優(yōu)秀者。(轉(zhuǎn)載于:五子棋教學(xué)計劃) (二)、每學(xué)年舉辦一屆年級五子棋比賽,提倡班級為單位舉行聯(lián)賽,評選棋類之星。 四、活動對象 五(3)班的學(xué)生,共22人。 五子棋教育活動 (一)教學(xué)目標(biāo): 1、初步了解五子棋的基本知識。 2、培養(yǎng)幼兒對下五子棋的興趣。教學(xué)準(zhǔn)備:五子棋材料 教學(xué)方法: 1、出示棋盤和棋子,教師演示,讓幼兒認(rèn)識什么是五子棋。 2、講解棋盤的結(jié)構(gòu)及如何構(gòu)成五子的排列方法 3、理解基本規(guī)則:最先連成5個的為勝。 4、讓幼兒兩人一組,操作練習(xí)。 五子棋教育活動 (二)教學(xué)目標(biāo): 1、觀看五子棋影碟,讓幼兒了解五子棋的一些基本的術(shù)語。 2、培養(yǎng)幼兒的學(xué)習(xí)興趣。 教學(xué)準(zhǔn)備:五子棋影碟 教學(xué)方法: 1、引導(dǎo)幼兒觀看影碟。 2、提問:什么是先手?什么是后手?什么是活三?跳三?跳四?死四? 3、討論:怎么樣才能贏?五子棋教育活動 (三)教學(xué)目標(biāo):加強練習(xí),提高操作能力。 教學(xué)準(zhǔn)備:五子棋材料 教學(xué)方法: 1、提出要求,讓幼兒互相練習(xí)下五子棋,教師給予具體指導(dǎo)。 2、分組選出下的好的幼兒,讓大家欣賞,并提出優(yōu)點和不足。 五 子 棋 教 育 活 動 (四)教學(xué)目標(biāo):學(xué)習(xí)五子棋的基本陣法(1、2) 教學(xué)準(zhǔn)備:圖片 教學(xué)方法: 1、出示圖片,講解五子棋的基本陣法 1(1)斜三陣:斜三陣是在民間廣泛流傳的開局之一,它的變形極多,變化十分有趣。 圖2 (2)一字長蛇陣:如圖2所示,一字長蛇陣實際上是由斜三陣變化而來的。 2、組織幼兒兩人一組進(jìn)行練習(xí)。 3、評選小棋手。 五子棋教育活動 (五)教學(xué)目標(biāo):學(xué)習(xí)五子棋的基本陣法(3、4、5) 教學(xué)準(zhǔn)備:圖片 教學(xué)方法: 1、出示圖片,講解五子棋的基本陣法 圖3 (1)長勾陣:如圖3所示,長勾陣形似一個勾形,它也是由斜三陣變化而來。 圖4 (2)四角陣:如圖4所示,黑方l、3、5、7四個子呈四方形擺布,故名“四角陣”。 圖5 (3)雙四角陣:如圖5所示,黑方l、3、5、7與白方2、4、6、8均形成四方形陣式,實際上,此陣 亦是由“四角陣”變化而來。 2、組織幼兒兩人一組進(jìn)行練習(xí)。 3、評選小棋手。 五子棋教育活動 (六)教學(xué)目標(biāo):學(xué)習(xí)五子棋的基本陣法(6、7、8、9)教學(xué)準(zhǔn)備:圖片 教學(xué)方法: 1、出示圖片,講解五子棋的基本陣法 圖6 (1)梅花陣:如圖6所示,黑l、3、5、7與中心的白2相配,形似一朵梅花,故名“梅花陣”。 圖7 (2)劍陣:如圖7所示,黑方以“花月”開局,黑5與白6交換之后,已形似一柄短劍;黑7再沖四,劍 身加長;白8必應(yīng),更酷似一柄尖端白光閃閃的長劍。此陣變化甚多,十分有趣。 圖8 (3)燕陣:如圖8所示,黑方以“恒星”開局,直至黑9定形。請注意,此陣以白2為頭,以白6及白8為展開的兩翅膀,以白4及黑5為身軀,以黑9及黑7為張開的尾翼,形似一只正在飛翔的雨燕,故名“燕陣”。 圖9 (4)八封陣如圖9所示,黑 1、黑3;黑 5、黑 7、黑 9、黑11……每一個黑子與黑子之間均呈日形“馬步”相連。此陣是中國民間傳統(tǒng)戰(zhàn)法中 “以守待攻”戰(zhàn)術(shù)的杰出代表作。 2、組織幼兒兩人一組進(jìn)行練習(xí)。 3、評選小棋手。 五子棋教育活動 (七)教學(xué)目標(biāo): 1、通過學(xué)習(xí)《五子兵法》,觀察圖解,使幼兒進(jìn)一步掌握下五子棋的技能。 2、發(fā)展幼兒的思維能力,提高幼兒的智力水平。 教學(xué)準(zhǔn)備:圖片 教學(xué)方法: 1、教幼兒學(xué)習(xí)《五 子兵法》 先手要攻,后手要守。以攻為守,以守待攻。 攻守轉(zhuǎn)換,慎思變化。先行爭奪,地破天驚。 守取外勢,攻聚內(nèi)力。八卦易守,成角易攻。 阻斷分隔,穩(wěn)如泰山。不思爭先,勝比登天。 初盤爭二,局終搶三。留三不沖,變化萬千。 多個先手,細(xì)算次先。五子要點,次序在前。 斜線為陰,直線為陽。陰陽結(jié)合,防不勝防。 連三連四,易見為明。跳三跳四,暗劍深藏。 己落一子,敵增一兵。攻其要點,守其必爭。 勢已形成,敗即降臨。五子精華,一子輸贏。 2、出示圖片,講解〈五子兵法〉的分解圖 如圖1所示,黑方以“長星”開局,白4斜成二。黑5阻白,同時形成雙二;白6沖成二。黑7阻擋,同時成雙二。在此開局階段,“初盤爭二”的過程顯而易見,所謂“開局二多勝多”就是這個道理。至盤面 的白8之時,黑方的先手之利已穩(wěn)握在手,五子兵法云“先手要攻”此刻已見分曉。黑9斜活三,發(fā)動 進(jìn)攻;白l0防守。黑11再斜活三;白12阻攔。 黑13沖四出 圖1 頭;白14必應(yīng)。黑15活三;白16防守。黑17活三;白18再守。黑19斜活三;白20阻黑,同時斜話三,但是晚一步。黑21沖四活三,勝定。 圖2所示的兩個圖形,左上方為白棋四子之間成馬步相連,組成了一個“八卦陣”;中間為黑棋三枚組成一個三角,注意這里不是“圍棋”中的“愚形三角”,在五子棋中成角形的棋容易聚集力量發(fā)動進(jìn) 攻。在這個三角中,黑方只用了三枚棋子就同時形成三個“活二”,意味著黑方將在三個方面發(fā)動活三的攻擊。所謂“八封易守,成角易攻”。圖2 如圖3所示,黑方以變形的“溪月開局”并布以“八卦陣”,采取“以守待攻”的方式迎擊對方。白方愚昧地發(fā)動進(jìn)攻,忘記了“后手要守”的原則,并且不顧后果,多次沖四,使“留三不沖,變化萬千”的兵法旨要流失喪盡。盤面的白40沖四,黑4l之后;白方已無法再攻,只得著于白42來防守。此刻,黑方已到“攻守轉(zhuǎn)換,慎思變化”的時候;倘若黑43著于a活三,但是因白42已守于要點,所以在左上方 黑方發(fā):展不大。黑43決定投于下方,另辟戰(zhàn)場,造成“一子通三路”之勢。五子兵法曰“己落一子,敵增一兵。攻其要點,守其必爭”,果然,白44亦于下方防守。黑45斜活三;白46阻擋。黑47間二大跳,形成一個特殊類型的“三”,五子兵法云“跳三跳四,暗劍深藏”,此刻已含有攻擊的手段。白48只得守于黑方的沖四活三叫殺點。黑49再斜活三,其意圖已非常明顯。白50防守已無益;黑51沖四活三,勝定。圖3 不僅黑棋可采用“八卦陣”,白棋也同樣可采用“八卦陣”。圖4所示,黑方以“斜月”開局,白4小飛防守。黑5曲團雙二,擺出“成角易攻”之式。白6小飛再守;黑7活三。白8以馬步防守,呈“八卦陣”。 在此開局階段,白方完全符合“后手要守,守取外勢”的五子兵法要旨。黑9斜活三;白l0小飛守好。 黑11沖四;白12必應(yīng)。黑13跳沖四,企圖沖出八卦陣式;白14必應(yīng)。黑15斜活三;白16防守。黑17斷白雙三點,轉(zhuǎn)攻為守;白18跳三,由此轉(zhuǎn)守為攻。黑19中間斷白;白20活三。黑2l防守;白22斜 活三。黑23阻攔;白24沖四出頭。黑25必應(yīng);白26活三。黑27防守;白28斜活三。黑29阻攔已無 益;白30沖四活三,勝定。 圖4 圖5 圖5所示,在于闡明“不思爭先,勝如登天”的道理。此局,黑方以 “嵐月”開局,白4間一跳成二。黑5中間斷白,同時成二;白6阻黑,同時斜成雙二。黑7防守;白8斜活三。黑9防守;白l0等著,似佳實劣。黑ll跳沖四;白12必應(yīng),同時成跳三。黑13斜活三,同時中間斷白跳三。白14阻黑(劣著1阻攔方向錯誤),同時跳三。黑15中間斷白(錯著!應(yīng)從a位沖四,再走b位沖四活三,先勝),此時,應(yīng) 留意“攻守轉(zhuǎn)換,慎思變化”。白16斜沖四出頭,黑17必應(yīng)。白18活三;黑19阻攔。白20沖四出頭;黑2l必應(yīng)。白22跳三;黑23中間斷白,從此決無爭先之機,可惜!五子兵法云“不思爭先,勝如登天”,黑方多次均有沖四連殺的機會,都被錯過。白24、26、28、30、32連續(xù)沖四;黑25、27、9、31、33均必應(yīng)。白34沖四活三,勝定。 3、幼兒分組練習(xí)。 幼兒五子棋比賽規(guī)則 1、猜拳 勝者執(zhí)黑先行,從棋盤中心點相互順序落子。 2、最先在棋盤的橫向、豎向、斜向形成連續(xù)的相同的五子 棋的為勝。 3、如分不出勝負(fù)則定為平局,每平一局則加賽一局,依此 類推。 4、對局中悔棋、中途退場均判為負(fù)。 5、比賽分為初賽、復(fù)賽、決賽,采用循環(huán)制。第三篇:Java五子棋實現(xiàn)報告
第四篇:五子棋教學(xué)計劃
第五篇:五子棋教案