c# winform實(shí)現(xiàn)五子棋游戲(文末附源碼)

說(shuō)到五子棋,想必大家都會(huì)很熟悉项棠,誰(shuí)先連成五顆誰(shuí)就勝利柄延。

今天我想說(shuō)一下游戲編程思想概述蚀浆,游戲并不是你所看見(jiàn)的GDI繪圖中看到的那些,那只能算游戲中的一些元素搜吧,一個(gè)游戲除了表面視圖市俊,還有它實(shí)質(zhì)的東西--內(nèi)核(游戲算法)。

那么游戲的核心是怎么和圖形鏈接起來(lái)的呢滤奈?用戶的操作信息在核心中進(jìn)行摆昧,再把響應(yīng)后的游戲數(shù)據(jù)反饋給游戲界面,這就是一個(gè)完整的游戲蜒程。在游戲中游戲的內(nèi)核是一直在變化的绅你,知識(shí)有的時(shí)候并沒(méi)有反饋在界面而已。

本游戲的制作分為兩大部分昭躺,游戲界面和游戲核心忌锯。游戲的設(shè)計(jì)可以先設(shè)計(jì)界面再設(shè)計(jì)核心,或者先設(shè)計(jì)核心 在設(shè)計(jì)界面领炫,這兩種方法各有千秋偶垮。先設(shè)計(jì)界面感覺(jué)更加直觀,更加容易理解帝洪。先設(shè)計(jì)核心不容易亂和丟失功能似舵。

本文是先設(shè)計(jì)界面再設(shè)計(jì)核心。

對(duì)于框架的建立也就是界面碟狞,最好要了解五子棋的規(guī)格大小啄枕,國(guó)際棋牌是15X15。

由于寫的充忙族沃,所以界面略顯粗糙频祝,后面可以根據(jù)自己的需要更改泌参。

首先是建立一個(gè)winform窗體(本棋盤沒(méi)使用其他控件)

在 private void Form1_Paint(object sender, PaintEventArgs e)事件中利用GDI繪圖畫(huà)出一個(gè)棋盤(也可根據(jù)自己需要找個(gè)棋盤圖填充進(jìn)去,本文不詳講)

棋盤代碼

再看棋盤代碼前常空,不知道各位了解顯示器上的坐標(biāo)系不沽一,windows上的坐標(biāo)系基于設(shè)備坐標(biāo),屏幕上的點(diǎn)通過(guò)X,Y坐標(biāo)描述漓糙。X坐標(biāo)從你當(dāng)前窗口的左上角從左到右遞增铣缠,Y坐標(biāo)從上往下遞增。這樣能使你更好的理解上訴代碼昆禽,棋盤的構(gòu)造蝗蛙。

棋盤

棋盤構(gòu)造成功出來(lái)了,我們又該構(gòu)造什么了醉鳖?可能屏幕前的你脫口而出--棋子捡硅。

對(duì),就是棋子盗棵。構(gòu)造棋子的話是不是應(yīng)該是先畫(huà)出一個(gè)圓壮韭,然后在將圓形填充。

首先構(gòu)造一直筆Pen pens = new Pen(Color.Black, 2);表示黑子纹因;然后在構(gòu)造一個(gè)填充刷 Brush b = new LinearGradientBrush(new Point(0, 10), new Point(10, 10), Color.Black, Color.Black);填充刷的顏色與筆顏色一樣喷屋。然后構(gòu)造該棋子所在的位置和大小Rectangle r = new Rectangle(newX, newY, 10, 10);最后構(gòu)造一個(gè)GDI繪圖對(duì)象 Graphics gra = this.CreateGraphics(); 先畫(huà)出一個(gè)圓gra.DrawEllipse(pens, r);在填充該圓gra.FillEllipse(b, r);

棋子代碼

此時(shí)界面已經(jīng)構(gòu)造完成。


下面就是游戲的內(nèi)核瞭恰,

首先定義兩個(gè)存儲(chǔ)棋子的數(shù)組

img

這些你應(yīng)該考慮為什么會(huì)定義一個(gè)int型二維數(shù)組屯曹,我所點(diǎn)擊的坐標(biāo)不是隨機(jī)嘛,不是double型么寄疏,為什么是牢?首先當(dāng)你下棋時(shí),屏幕獲取到你的點(diǎn)擊位置Location陕截,此時(shí)你應(yīng)該考慮的是怎么樣讓棋子落子格子的正中間而不是指哪里就那里驳棱,怎么智能識(shí)別棋子想要落的位置,在我這里就是這樣寫的

落子代碼

這樣就獲取到了棋子想要落取的位置农曲,然后判斷該落子情況社搅,在這落子的地方是不是已經(jīng)落子了,沒(méi)落子該怎么儲(chǔ)存乳规,我寫了一個(gè)判斷落子情況函數(shù)MyChess

img

首先獲取到落子的坐標(biāo)然后通過(guò)除以棋盤間隔獲取到落子的位置形葬,首先該數(shù)組全部為0,如果落子成功就變成1表示該位置有落子暮的,然后通過(guò)該數(shù)組來(lái)判斷輸贏情況笙以。

現(xiàn)在落子情況已經(jīng)有了,就該判斷下棋過(guò)程輸贏情況了冻辩,五子棋連成線無(wú)非四種情況猖腕,橫拆祈,豎,斜倘感,反斜四種情況放坏。只要滿足其中一種情況就獲勝。

img

判斷橫線輸贏

img

豎線輸贏


img

斜線情況是利用利用數(shù)學(xué)公式 y=kx+b來(lái)判斷的

img

反斜線情況

img

此時(shí)游戲核心已經(jīng)完成老玛。

下面就是一些效果圖

img


img

源碼:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Drawing.Drawing2D;

namespace wuziqi

{

? ? public partial class Form1 : Form

? ? {

? ? ? ? public Form1()

? ? ? ? {

? ? ? ? ? ? InitializeComponent();

? ? ? ? }

? ? ? ? /// <summary>

? ? ? ? /// 用來(lái)標(biāo)識(shí)鼠標(biāo)點(diǎn)擊事件是否可用

? ? ? ? /// </summary>

? ? ? ? bool bTemp = false;

? ? ? ? /// <summary>

? ? ? ? /// 棋盤長(zhǎng)度

? ? ? ? /// </summary>

? ? ? ? int nLength = 290;

? ? ? ? /// <summary>

? ? ? ? /// 棋盤間隔

? ? ? ? /// </summary>

? ? ? ? int nJg = 20;

? ? ? ? /// <summary>

? ? ? ? /// 當(dāng)前是黑方還是白方下棋

? ? ? ? /// </summary>

? ? ? ? bool bUser = true;

? ? ? ? /// <summary>

? ? ? ? /// 黑方二維數(shù)組

? ? ? ? /// </summary>

? ? ? ? int[,] myBlack = new int[15, 15];

? ? ? ? /// <summary>

? ? ? ? /// 白方二維數(shù)組

? ? ? ? /// </summary>

? ? ? ? int[,] myWhite = new int[15, 15];

? ? ? ? /// <summary>

? ? ? ? /// 棋盤規(guī)格

? ? ? ? /// </summary>

? ? ? ? int nSize = 15;

? ? ? ? /// <summary>

? ? ? ? /// 游戲加載界面

? ? ? ? /// </summary>

? ? ? ? /// <param name="sender"></param>

? ? ? ? /// <param name="e"></param>

? ? ? ? private void Form1_Load(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? labelControl1.Text = "游戲未開(kāi)始";

? ? ? ? ? ? simpleButton3.Enabled = false;

? ? ? ? }

? ? ? ? /// <summary>

? ? ? ? /// 棋盤

? ? ? ? /// </summary>

? ? ? ? /// <param name="sender"></param>

? ? ? ? /// <param name="e"></param>

? ? ? ? private void Form1_Paint(object sender, PaintEventArgs e)

? ? ? ? {

? ? ? ? ? e.Graphics.Clear(Color.AliceBlue);//背景色淤年;? ? ? ?

? ? ? ? ? Pen pen = new Pen(Color.Red, 2);//筆的顏色與粗細(xì)

? ? ? ? ? for (int i = 30; i <= 310; i = i + 20)//步長(zhǎng)20

? ? ? ? ? {

? ? ? ? ? ? ? Point point = new Point(i, 30);

? ? ? ? ? ? ? Point point1 = new Point(i, 310);

? ? ? ? ? ? ? e.Graphics.DrawLine(pen, point, point1);//畫(huà)豎線

? ? ? ? ? ? ? Point point2 = new Point(30, i);

? ? ? ? ? ? ? Point point3 = new Point(310, i);

? ? ? ? ? ? ? e.Graphics.DrawLine(pen, point2, point3);//畫(huà)橫線

? ? ? ? ? }

? ? ? ? }

? ? ? ? /// <summary>

? ? ? ? /// 游戲開(kāi)始按鈕

? ? ? ? /// </summary>

? ? ? ? /// <param name="sender"></param>

? ? ? ? /// <param name="e"></param>

? ? ? ? private void simpleButton2_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? labelControl1.Text = "游戲開(kāi)始,黑方下棋";

? ? ? ? ? ? bTemp = true;

? ? ? ? ? ? simpleButton2.Enabled = false;

? ? ? ? ? ? simpleButton3.Enabled = true;


? ? ? ? }

? ? ? ? /// <summary>

? ? ? ? /// 鼠標(biāo)點(diǎn)擊事件

? ? ? ? /// </summary>

? ? ? ? /// <param name="sender"></param>

? ? ? ? /// <param name="e"></param>

? ? ? ? private void Form1_MouseClick(object sender, MouseEventArgs e)

? ? ? ? {

? ? ? ? ? ? int n = nLength / nJg + 1;


? ? ? ? ? ? if(bTemp)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? if (bUser)//因?yàn)楹竺媸锹渥忧闆r所以只能把該誰(shuí)下寫在這里

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? labelControl1.Text = "游戲開(kāi)始,白方下棋";

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? labelControl1.Text = "游戲開(kāi)始,黑方下棋";

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? if (e.Button == MouseButtons.Left)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? Point p = e.Location;

? ? ? ? ? ? ? ? ? ? int X = p.X;

? ? ? ? ? ? ? ? ? ? int Y = p.Y;

? ? ? ? ? ? ? ? ? ? int newX = (int)((X + nJg / 2) / nJg) * nJg - 10 / 2 - 10;

? ? ? ? ? ? ? ? ? ? int newY = (int)((Y + nJg / 2) / nJg) * nJg - 10 / 2 - 10;

? ? ? ? ? ? ? ? ? ? bool bMyChess = MyChess(newX, newY);

? ? ? ? ? ? ? ? ? ? if (!bMyChess)

? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? return;

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? if(bUser)

? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? Pen pens = new Pen(Color.Black, 2);

? ? ? ? ? ? ? ? ? ? ? ? Brush b = new LinearGradientBrush(new Point(0, 10), new Point(10, 10), Color.Black, Color.Black);

? ? ? ? ? ? ? ? ? ? ? ? Rectangle r = new Rectangle(newX, newY, 10, 10);//標(biāo)識(shí)圓的大小(x坐標(biāo),y坐標(biāo)蜡豹,大小)

? ? ? ? ? ? ? ? ? ? ? ? Graphics gra = this.CreateGraphics();

? ? ? ? ? ? ? ? ? ? ? ? gra.DrawEllipse(pens, r);

? ? ? ? ? ? ? ? ? ? ? ? gra.FillEllipse(b, r);

? ? ? ? ? ? ? ? ? ? ? ? gra.Dispose();


? ? ? ? ? ? ? ? ? ? ? ? bool bPing = MyPin();//判斷是否平局

? ? ? ? ? ? ? ? ? ? ? ? if(bPing)

? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? labelControl1.Text = "平局麸粮,請(qǐng)點(diǎn)擊重開(kāi)";

? ? ? ? ? ? ? ? ? ? ? ? ? ? MessageBox.Show("平局");


? ? ? ? ? ? ? ? ? ? ? ? ? ? bTemp = false;

? ? ? ? ? ? ? ? ? ? ? ? ? ? return;

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? bool bWin = MyWin();//判斷輸贏;

? ? ? ? ? ? ? ? ? ? ? ? if (bWin)

? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? labelControl1.Text = "黑方贏镜廉,請(qǐng)點(diǎn)擊重開(kāi)";? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? MessageBox.Show("黑方贏");


? ? ? ? ? ? ? ? ? ? ? ? ? ? bTemp = false;

? ? ? ? ? ? ? ? ? ? ? ? ? ? return;

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? bUser = false;

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? Pen pens = new Pen(Color.White, 2);

? ? ? ? ? ? ? ? ? ? ? ? Brush b = new LinearGradientBrush(new Point(0, 10), new Point(10, 10), Color.White, Color.White);

? ? ? ? ? ? ? ? ? ? ? ? Rectangle r = new Rectangle(newX, newY, 10, 10);//標(biāo)識(shí)圓的大小(x坐標(biāo)豹休,y坐標(biāo),大小)

? ? ? ? ? ? ? ? ? ? ? ? Graphics gra = this.CreateGraphics();

? ? ? ? ? ? ? ? ? ? ? ? gra.DrawEllipse(pens, r);

? ? ? ? ? ? ? ? ? ? ? ? gra.FillEllipse(b, r);

? ? ? ? ? ? ? ? ? ? ? ? gra.Dispose();



? ? ? ? ? ? ? ? ? ? ? ? bool bPing = MyPin();//判斷是否平局

? ? ? ? ? ? ? ? ? ? ? ? bool bWin = MyWin();//判斷輸贏桨吊;

? ? ? ? ? ? ? ? ? ? ? ? if (bPing)

? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? labelControl1.Text = "平局,請(qǐng)點(diǎn)擊重開(kāi)";

? ? ? ? ? ? ? ? ? ? ? ? ? ? MessageBox.Show("平局");


? ? ? ? ? ? ? ? ? ? ? ? ? ? bTemp = false;

? ? ? ? ? ? ? ? ? ? ? ? ? ? return;

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? if (bWin)

? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? labelControl1.Text = "白方贏凤巨,請(qǐng)點(diǎn)擊重開(kāi)";

? ? ? ? ? ? ? ? ? ? ? ? ? ? MessageBox.Show("白方贏");


? ? ? ? ? ? ? ? ? ? ? ? ? ? bTemp = false;

? ? ? ? ? ? ? ? ? ? ? ? ? ? return;

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? bUser = true;

? ? ? ? ? ? ? ? ? ? }? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? }? ? ? ?

? ? ? ? ? ? }? ? ? ? ? ?

? ? ? ? }

? ? ? ? /// <summary>

? ? ? ? /// 平局情況视乐,一般不會(huì)出現(xiàn),還是寫下表示尊敬

? ? ? ? /// </summary>

? ? ? ? /// <returns></returns>

? ? ? ? public bool MyPin()

? ? ? ? {

? ? ? ? ? ? int nTemp=0;

? ? ? ? ? ? for (int i = 0; i < nSize; i++)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? for (int j = 0; j < nSize; j++)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? if (myBlack[i, j] == 1 || myWhite[i, j] == 1)

? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? nTemp++;

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? if(nTemp==225)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? return true;

? ? ? ? ? ? }

? ? ? ? ? ? else

? ? ? ? ? ? {

? ? ? ? ? ? ? ? return false;

? ? ? ? ? ? }


? ? ? ? }

? ? ? ? /// <summary>

? ? ? ? /// 判斷落子情況

? ? ? ? /// </summary>

? ? ? ? /// <param name="x"></param>

? ? ? ? /// <param name="y"></param>

? ? ? ? /// <returns></returns>

? ? ? ? public bool MyChess(int x,int y)

? ? ? ? {


? ? ? ? ? ? int m;

? ? ? ? ? ? int n;

? ? ? ? ? ? m=x/nJg-1;

? ? ? ? ? ? n = y / nJg-1;

? ? ? ? ? ? if (m >= nSize || n >= nSize || m < 0 || n < 0)//超出數(shù)組索引

? ? ? ? ? ? {

? ? ? ? ? ? ? ? return false;

? ? ? ? ? ? }

? ? ? ? ? ? if (myBlack[m, n] == 0 && myWhite[m, n] == 0)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? if(bUser)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? myBlack[m, n] = 1;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? myWhite[m, n] = 1;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? else

? ? ? ? ? ? {

? ? ? ? ? ? ? ? return false;

? ? ? ? ? ? }

? ? ? ? ? ? return true;

? ? ? ? }

? ? ? ? /// <summary>

? ? ? ? /// 輸贏情況

? ? ? ? /// </summary>

? ? ? ? /// <returns></returns>

? ? ? ? public bool MyWin()

? ? ? ? {


? ? ? ? ? ? bool bMyHorizontal = MyHorizontal();//橫線

? ? ? ? ? ? bool bMyVerTical = MyVerTical();//豎線

? ? ? ? ? ? bool bMyOblique = MyOblique();//斜線

? ? ? ? ? ? bool bMyBackslash = MyBackslash();//反斜線

? ? ? ? ? ? if(bMyHorizontal||bMyVerTical||bMyOblique||bMyBackslash)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? return true;? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? }

? ? ? ? ? ? return false;

? ? ? ? }

? ? ? ? /// <summary>

? ? ? ? /// 橫排情況

? ? ? ? /// </summary>

? ? ? ? public bool MyHorizontal()

? ? ? ? {

? ? ? ? ? ? for(int i=0;i<nSize-4;i++)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? for (int j = 0; j < nSize;j++ )

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? if (bUser)

? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? if(myBlack[i,j]==1&&myBlack[i+1,j]==1&&myBlack[i+2,j]==1&&myBlack[i+3,j]==1&&myBlack[i+4,j]==1)

? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? return true;

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? if (myWhite[i, j] == 1 && myWhite[i + 1, j] == 1 && myWhite[i + 2, j] == 1 && myWhite[i + 3, j] == 1 && myWhite[i + 4, j] == 1)

? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? return true;

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? return false;

? ? ? ? }

? ? ? ? /// <summary>

? ? ? ? /// 豎排情況

? ? ? ? /// </summary>

? ? ? ? public bool MyVerTical()

? ? ? ? {

? ? ? ? ? ? for (int i = 0; i < nSize ; i++)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? for (int j = 0; j < nSize-4; j++)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? if (bUser)

? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? if (myBlack[i, j] == 1 && myBlack[i , j+1] == 1 && myBlack[i , j+2] == 1 && myBlack[i, j+3] == 1 && myBlack[i, j+4] == 1)

? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? return true;

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? if (myWhite[i, j] == 1 && myWhite[i, j + 1] == 1 && myWhite[i, j + 2] == 1 && myWhite[i, j + 3] == 1 && myWhite[i, j + 4] == 1)

? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? return true;

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? return false;

? ? ? ? }

? ? ? ? /// <summary>

? ? ? ? /// 斜線情況 利用數(shù)學(xué)公式 y=kx+b

? ? ? ? /// </summary>

? ? ? ? public bool MyOblique()

? ? ? ? {

? ? ? ? ? ? for (int i = 0; i < nSize - 4; i++)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? for (int j = 0; j < nSize-4; j++)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? if (bUser)

? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? if (myBlack[i, j] == 1 && myBlack[i + 1, j+1] == 1 && myBlack[i + 2, j+2] == 1 && myBlack[i + 3, j+3] == 1 && myBlack[i + 4, j+4] == 1)

? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? return true;

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? if (myWhite[i, j] == 1 && myWhite[i + 1, j+1] == 1 && myWhite[i + 2, j+2] == 1 && myWhite[i + 3, j+3] == 1 && myWhite[i + 4, j+4] == 1)

? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? return true;

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? return false;

? ? ? ? }

? ? ? ? /// <summary>

? ? ? ? /// 反斜線情況

? ? ? ? /// </summary>

? ? ? public bool MyBackslash()

? ? ? ? {

? ? ? ? ? ? for (int i = nSize-1; i >= 4; i--)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? for (int j = 0; j < nSize-4; j++)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? if (bUser)

? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? //j-(i-1)

? ? ? ? ? ? ? ? ? ? ? ? if (myBlack[i, j ] == 1 && myBlack[i - 1, j + 1] == 1 && myBlack[i -2, j + 2] == 1 && myBlack[i- 3, j? + 3] == 1 && myBlack[i - 4, j + 4] == 1)

? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? return true;

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? if (myWhite[i, j] == 1 && myWhite[i - 1, j + 1] == 1 && myWhite[i - 2, j + 2] == 1 && myWhite[i - 3, j + 3] == 1 && myWhite[ i - 4, j + 4] == 1)

? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? return true;

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? return false;

? ? ? ? }

? ? ? ? /// <summary>

? ? ? ? /// 重開(kāi)游戲

? ? ? ? /// </summary>

? ? ? ? /// <param name="sender"></param>

? ? ? ? /// <param name="e"></param>

? ? ? private void simpleButton3_Click(object sender, EventArgs e)

? ? ? {

? ? ? ? ? this.Refresh();

? ? ? ? ? Graphics gra = this.CreateGraphics();

? ? ? ? ? gra.Clear(Color.AliceBlue);

? ? ? ? ? Pen pen = new Pen(Color.Red, 2);

? ? ? ? ? for (int i = 30; i <= 310; i = i + 20)//步長(zhǎng)20

? ? ? ? ? {

? ? ? ? ? ? ? Point point = new Point(i, 30);

? ? ? ? ? ? ? Point point1 = new Point(i, 310);

? ? ? ? ? ? ? gra.DrawLine(pen, point, point1);//畫(huà)豎線

? ? ? ? ? ? ? Point point2 = new Point(30, i);

? ? ? ? ? ? ? Point point3 = new Point(310, i);

? ? ? ? ? ? ? gra.DrawLine(pen, point2, point3);//畫(huà)橫線

? ? ? ? ? }


? ? ? }

? ? }

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末敢茁,一起剝皮案震驚了整個(gè)濱河市佑淀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌彰檬,老刑警劉巖伸刃,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異逢倍,居然都是意外死亡捧颅,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門较雕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)碉哑,“玉大人,你說(shuō)我怎么就攤上這事亮蒋】鄣洌” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵慎玖,是天一觀的道長(zhǎng)贮尖。 經(jīng)常有香客問(wèn)我,道長(zhǎng)趁怔,這世上最難降的妖魔是什么湿硝? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任薪前,我火速辦了婚禮,結(jié)果婚禮上图柏,老公的妹妹穿的比我還像新娘序六。我一直安慰自己,他們只是感情好蚤吹,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布例诀。 她就那樣靜靜地躺著,像睡著了一般裁着。 火紅的嫁衣襯著肌膚如雪繁涂。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,698評(píng)論 1 305
  • 那天二驰,我揣著相機(jī)與錄音扔罪,去河邊找鬼。 笑死桶雀,一個(gè)胖子當(dāng)著我的面吹牛矿酵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播矗积,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼全肮,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了棘捣?” 一聲冷哼從身側(cè)響起辜腺,我...
    開(kāi)封第一講書(shū)人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎乍恐,沒(méi)想到半個(gè)月后评疗,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡茵烈,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年百匆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瞧毙。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡胧华,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出宙彪,到底是詐尸還是另有隱情矩动,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布释漆,位于F島的核電站悲没,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜示姿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一甜橱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧栈戳,春花似錦岂傲、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至褂痰,卻和暖如春亩进,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背缩歪。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工归薛, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人匪蝙。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓主籍,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親逛球。 傳聞我的和親對(duì)象是個(gè)殘疾皇子崇猫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些閱讀 2,031評(píng)論 0 2
  • Android音頻系統(tǒng)詳解 參考好文: Android 音頻系統(tǒng):從 AudioTrack 到 AudioFlin...
    愛(ài)雨520閱讀 13,594評(píng)論 2 7
  • 找到fullcalendar.js, 找到代碼為 isRTL:false需忿,這句話 輸入以下幾句 monthName...
    迷你小小白閱讀 1,674評(píng)論 0 1
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom閱讀 2,699評(píng)論 0 3
  • 清風(fēng)拂面,烈日當(dāng)空蜡歹, 夢(mèng)想似花般綻放屋厘, 青春似蝶般飛舞。 少年之氣月而,在場(chǎng)上揮灑汗洒。 熱血之情伴隨吶喊聲彭湃。 愿健兒...
    五行俠閱讀 142評(píng)論 0 0