• <em id="6vhwh"><rt id="6vhwh"></rt></em>

    <style id="6vhwh"></style>

    <style id="6vhwh"></style>
    1. <style id="6vhwh"></style>
        <sub id="6vhwh"><p id="6vhwh"></p></sub>
        <p id="6vhwh"></p>
          1. 国产亚洲欧洲av综合一区二区三区 ,色爱综合另类图片av,亚洲av免费成人在线,久久热在线视频精品视频,成在人线av无码免费,国产精品一区二区久久毛片,亚洲精品成人片在线观看精品字幕 ,久久亚洲精品成人av秋霞

            黑白五子棋比賽

            更新時間:2023-03-20 11:06:36 閱讀: 評論:0

            財務報告分析范文-奇什么怪什么

            黑白五子棋比賽
            2023年3月20日發(作者:我的老師作文350字)

            《C語言程序設計》

            題目黑白棋游戲

            一、內容

            黑白棋

            黑白棋是一種兩人對弈的純策略型棋類游戲,黑白棋棋子分為黑白兩色,棋盤為1919,

            棋子放置于棋盤線交叉點上或網格中。兩人對局,各執一色,輪流下一子,先將橫、豎或斜

            線的5個同色棋子連成不間斷的一排者為勝。

            本程序設計為人與人對弈,一方執黑棋,一方執白棋,輪流走棋,每方都試圖在游戲結束前

            讓自己的棋子五子相連,首先實現五子相連的一方獲勝。程序執行過程中,要求棋盤、棋子

            時時可見,并且人用輸入坐標的操作模式,擺放棋子。

            以下簡析本程序流程::如表1所示,表中當前落子點坐標為(X,Y),i=X-4,j=Y-4,

            由獲勝條件可以知,通過判斷(X,Y)上、下、左、右、斜上、斜下八個方向上是否有

            連續的5個子即可得出是否獲勝結果。在游戲開始時,將棋盤初始化,即將棋盤抽

            象為一個19*19的數組,數組中每個元素設為某一指定初始值(如8)。1P落子時,

            將數組內相應坐標處元素賦值為0;2P落子時,將數組內相應坐標處元素賦值為1。

            當(X,Y)上、下、左、右、斜上、斜下八個方向某5個連續的子所對應雜糅 的數組中元

            素之和等于0時,1P獲勝;當(X,Y)上、下、左、右、斜上、斜下八個方向某5個

            連續的子所對應的數組中元素之和等于5時,2P獲勝。棋盤上的所有格子都被占滿

            時,必有181個1P棋子和180個2P棋子,此時對應數組中所有項之和為180,并

            且游戲過程中對應數組中所有項之和只可能在這種狀況下為180,所以可以用這一

            條件判斷是否和棋。

            i,ji+1,j

            i,j+1

            X,Y

            二、上機環境

            操作系統:WindowsXP

            開發工具:VC6.0

            三、函數調用關系圖

            圖1

            四、各函數功能說明

            1.main()主函數

            (intm,intl)判斷輸贏界面

            intState()顯示每次落子結果及棋盤設計

            4.p1win()玩家1贏的界面

            5.p2win()玩家2贏的界面

            ()和棋界面

            lp()幫助界面

            artGame()初始化及指令輸入

            main

            顯示初始界面

            選擇

            選擇1,調用

            void

            StartGame()

            選擇2,調用

            voidhelp()

            選擇3

            返回原界面

            五、流程圖

            六、程序運行效果圖

            1.運行界面

            2.選擇幫助界面

            圖4

            3.開始游戲界面

            圖5

            2.獲勝界面

            圖6

            3.某方認輸界面

            圖7

            七、總結

            通過對各子程序的設計與優化,本程序完成了五子棋軟件的主體的設計與制作,基本

            達到了使用五子棋軟件的核心要求。然而程序還有一些不足之處,首先,程序在判斷勝負后

            無法顯示第五枚棋子,輸入五子連環的第五個棋子坐標之后直接跳出了重新開始的界面,這

            是由程序的顯示原理造成的;其次,程序的界面過于簡陋,而申請說明怎么寫 且坐標輸入操作也不利于玩家

            使用。

            在調試過程中,發現每當1P在最外圈落子時,系統即可彈出1P獲勝的結果,這是由于

            win函數中是通過對落子點及其周圍的若干點求和來判斷是否獲勝的。當1P在最外圈落子

            時,棋盤外的點被程序當做0處理,加上落子時被賦值為0的一點,正好滿足1P獲勝的條

            件,故而引發錯誤。改進方法:將用于判斷輸贏的數組a由原來的19*19改為21*21,并將

            第0、20行及第0、20列中所有元素賦值為6;再將被這四組元素包圍的一個19*19的區間

            對應到棋盤上的19*19格,即可解決原有問題。在調試的過程中,還發現原有模塊中的按鍵

            操作過于復雜,綜合兼容性考慮,舍棄原有的光標操作模式,改用輸入坐標的操作模式,這

            樣做從某種程度上降低了程序的可操作性,但提高了程序的可實現性與兼容性。

            這次的《計算機程序設計(C)》是計算機科學與技術、網絡工程、軟件工程專業的重要實踐

            性課程。程序實習培養了我分析問題和解決問題的能力,而且提供了一個既動手又動腦,獨

            立實踐的機會。使我初步學會了利用C語言編制程序以解決一般實際應用問題,使我分析問

            題和解決問題的能力得以提高,從而提高了我對程序設計、程序調試及項目開發的能力。為

            后續課程奠定了必要的實踐基礎。

            通過這次程序的實習,我在下述方面的能力得到了鍛煉:

            1.進一步鞏固、加深了所學《計算機程序設計(C)》的基本理論知識,理論聯系實際,進一

            步讓我的綜合分析問題,解決問題的能力得以提高。

            2.熟練掌握了C語言的基本語法,基本可以靈活運用各種數據類型。

            3.對于給定的設計題目,會進行分析,理清思路,并會給出相應的程序流程圖。

            4.掌握了在開發環境下調試程序的方法和修改程序的能力。

            八、參考文獻

            [1]黑白棋[EB]./view/

            [2]湛為芳《C語言程序設計技術》清華大學出版社,2006

            九、程序清單

            #include

            #貼對聯的講究 include

            #include

            #defineN19

            intwin(intm,intl);

            voidprintState();

            p1win();

            p2win();

            heqi();

            voidhelp();

            voidStartGame();

            inti,j,k,size=N,isBlack=1,a[N+2][N+2],z;

            charstate[N][N],x,y,temp[10],c;

            voidStartGame()

            /*初始化及指令輸入*/

            {intm,n,w;

            for(i=0;i

            {for(j=0;j

            {state[i][j]='_';

            a[i][j]=6;

            }

            }

            printState();

            while(1)

            {

            printf("nt請%s方下子:",isBlack?"黑":"白");

            scanf("%s",temp);

            if(!strcmp(temp,"OUT"))

            {

            return;

            }

            if(!strcmp(temp,"BACK"招聘啟事范文 ))

            /*悔棋*/

            {

            i=x-'A';

            j=y-'A';

            state[i][j]='_';

            printState();

            isBlack=!isBlack;continue;

            }

            if(!strcmp(temp,"LOSE"))

            /*認輸*/

            {printf("nt%s方認輸,%s方勝!nn",isBlack?"

            黑":"白",isB客家娘酒的做法 lack?"白":"黑");

            return;

            }

            x=temp[0];

            y=temp[1];

            if(x<'A'||x>'S'||y<'A'||y>'S')

            /*避免下面相減的數組越界。*/

            {printf("t輸入有誤,請輸入屬于或正確的

            口令。n");continue;

            }

            i=x-'A';

            j=y-'A';

            if(state[i][j]!='_')

            {printf("t提示:該位置已經有子,請重新指定

            坐標!");continue;

            }

            c=isBlack?'#':'*';

            z=isBlack?0:1;

            state[i][j]=c;

            a[i+1][j+1]=z;

            m=i+1;

            n=j+1;

            w=win(m,n);

            if(!w)

            {printState();

            isBlack=!isBlack;

            }

            el

            {return;

            }

            }

            }

            Intwin(intm,intl)

            /*判斷輸贏*/

            {intsum1,sum2,sum3,sum4,sum=1,n,i,j,X,Y,w;

            w=0;X=m;Y=l;

            for(i=X-4,j=Y-4,n=0;i<=X,j<=Y;i++,j++,n-=2)

            {sum1=a[i][Y]+a[i+1][Y]+a[i+2][Y]+a[i+3]

            [Y]+a[i+4][Y];

            sum2=a[i][j]+a[i+1][j+1]+a[i+2][j+2]+a[i+3][j+3]+a[i

            +4][j+4];

            sum3=a[X][j]+a[X][j+1]+a[X][j+2]+a[X][j+3]+a[X][j

            +4];

            sum4=a[i][j+8+n]+a[i+1][j+7+n]+a[i+2][j+6+n]+a[i+

            3][j+5+n]+a[i+4][j+4+n];

            if(sum1==5||sum2==5||sum3==5||sum崇左旅游景點 4==5)

            {p2win();

            w=1;

            }

            if

            (sum1==0||sum2==0||sum3==0||sum4==0)

            {p1win();

            w=1;

            }

            }

            sum1=0;

            sum2=0;

            sum3=0;

            sum4=0;

            sum++;

            if(sum==177)

            {heqi();

            w=1;

            }

            returnw;

            }

            voidprintState()/*

            顯示每次落子結果及棋盤設計*/

            {charp='A';

            system("cls");

            printf("t棋盤如下:nn");

            printf("t");

            for(i=0;i

            {if(i==0)

            printf("");

            printf("%c",p+i);

            }

            printf("nt");

            for(i=0;i

            {printf("%c",p+i);

            for(j=0;j

            {printf("%c",state[i][j]);

            }

            printf("%cnt",p+i);

            }

            printf("");

            for(i=0;i

            {if(i==0)

            printf("");

            printf("%c",p+i);

            }

            printf("n");

            }

            heqi()

            /*和棋界面*/

            {printf("和棋");

            printf("你們水平一樣喲!!!!!");

            return1;

            }

            p1win()

            /*玩家1獲勝界面*/

            {printf("玩家1獲勝,恭喜你喲!!!!!!");

            return1;

            }

            p2win()

            /*玩家2獲勝界面*/

            {printf("玩家2獲勝,恭喜你喲!!!!!!");

            return1;

            }

            voidhelp()

            /*幫助*/

            {system("cls");

            printf("t本程序采用19*19的游戲格式nn");

            printf("t輸入格子的坐標下子:先橫坐標后縱

            坐標。比如輸入:GGnn");

            printf("t在游戲期間你可以通過輸入OUT(退回

            主菜單)、BACK(悔棋)、LOSE(認輸)nn");

            }

            intmain()

            /*主函數*/

            {system("colorB1");

            while(1)

            {printf("nt-----C課程設計作業:黑白棋

            -----nn");

            printf("tt1.開始游戲n");

            printf("tt2.幫助n");

            printf("tt3.退出n");

            printf("nt請選擇:");

            scanf("%d",&i);

            switch(i)

            {ca1:StartGame();break;

            ca2:help();break;

            ca3:return0;

            default:printf("t請重新選擇n");break;

            }

            }

            }

            本文發布于:2023-03-20 11:06:35,感謝您對本站的認可!

            本文鏈接:http://m.newhan.cn/zhishi/a/1679281596151630.html

            版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。

            本文word下載地址:黑白五子棋比賽.doc

            本文 PDF 下載地址:黑白五子棋比賽.pdf

            下一篇:返回列表
            相關文章
            留言與評論(共有 0 條評論)
               
            驗證碼:
            推薦文章
            排行榜
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實用文體寫作網旗下知識大全大全欄目是一個全百科類寶庫! 優秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 亚洲少妇人妻无码视频| 亚洲鸥美日韩精品久久| 国产一级在线观看www色| 性奴sm虐辱暴力视频网站 | 亚洲国产成人久久精品不卡| 免费网站看av片| 国产成人av大片大片| 日韩人妻久久精品一区二区 | 精品视频一区二区福利午夜| 2019天天拍拍天天爽视频| 花式道具play高h文调教| 国产日韩乱码精品一区二区| 人妻精品动漫H无码中字| 欧美综合区| 国产精品国产自产拍高清| freechinese麻豆| 国产精品男女午夜福利片| 激情国产一区二区三区四| AV在线亚洲欧洲日产一区二区| 久久无码精品一一区二区三区| 鲁一鲁一鲁一鲁一澡| 99精品国产精品一区二区| 国产精品免费AⅤ片在线观看| 亚洲欧美日韩成人综合一区| 国产尤物精品自在拍视频首页| 人妻中文字幕一区二区三| 亚洲区成人综合一区二区| 欧美韩中文精品有码视频在线| 2019香蕉在线观看直播视频| 亚洲av午夜精品无码专区| 精品中文字幕一区在线| 午夜福利在线永久视频| 欧美色99| 亚洲熟妇色xxxxx亚洲| 国产一区精品在线免费看| 亚洲最大成人av免费看| 日韩午夜在线视频观看| 国产高清无遮挡内容丰富| 色婷婷国产精品视频| 欧美牲交a欧美牲交aⅴ图片| 欧美日韩国产图片区一区|