• <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://www.newhan.cn/zhishi/a/1679281596151630.html

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

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

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

            下一篇:返回列表
            相關文章
            留言與評論(共有 0 條評論)
               
            驗證碼:
            推薦文章
            排行榜
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實用文體寫作網旗下知識大全大全欄目是一個全百科類寶庫! 優秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 国产精品一在线观看| 最新成免费人久久精品| 黑巨人与欧美精品一区| 国产日韩综合av在线| 亚洲最大日韩精品一区| 国产欧美日韩视频怡春院| 少妇人妻中文字幕hd| 又黄又爽又高潮免费毛片| 国产成人精品一区二区秒拍1o| 一区二区三区四区自拍偷拍| 黑森林福利视频导航| 免费无码又爽又刺激高潮的app| 国内精品久久久久影视| 中文字幕乱码免费人妻av| 免费大黄网站在线观看| 99精品国产在热久久无| 亚洲av无码精品色午夜蛋壳| 欧美大片va欧美在线播放| 一区二区三区鲁丝不卡| 欧美一区二区三区在线可观看 | 东京热一精品无码av| 99久久成人亚洲精品观看| 日韩国产中文字幕精品| 狠狠色丁香婷婷综合尤物| 久久精品国产免费观看频道| 免费观看在线视频一区| 亚洲男人的天堂久久香蕉| 丝袜美腿亚洲综合第一区| 中文字幕无码中文字幕有码a| 国产乱人伦av在线a| 国产福利萌白酱在线观看视频| 中文字幕精品1在线| 忘忧草在线社区www中国中文| 亚洲国产日韩在线精品频道| 亚洲精品宾馆在线精品酒店| 国产欧美久久一区二区三区| 亚洲最大天堂在线看视频| 熟妇人妻av无码一区二区三区| 国产精品黄色片在线观看| 亚洲精品麻豆一二三区| 黄色大全免费看国产精品|