當前位置:編程學習大全網 - 源碼下載 - 源代碼編程玩遊戲

源代碼編程玩遊戲

# include & ltiostream & gt

# include & lt字符串& gt

使用命名空間std

類CGobang //棋子類

{

私人:

char chSort//棋子的類別

int nWin//贏棋的數量

int nLose//輸棋次數

靜態int nDraw//抽簽次數

靜電充電電路板[3][3];//棋盤

靜態int nSize//棋盤的大小nSize X nSize

公共:

CGobang(char chsort) //構造函數,確定海賊王的類別。

{

chSort = chsort

nWin = nLose = nDraw = 0;

}

void play turn(void);//取1移動。

int Judge();//判斷它們是否連成壹條線,如果是,返回1,否則返回0。

void Win(無效);//贏棋

void Lose(無效);//輸棋

靜態空畫(void);//繪制

void PrintInfo(void);//輸出整體情況

靜態空印刷板(void);//輸出棋盤

static int get full(void);//判斷棋盤是否滿了棋子。

靜態void initial board(void);//初始化棋盤

};

char CGO bang::ach board[3][3];

int CGO bang::nSize = 3;

int CGO bang::nDraw = 0;

void CGobang::Draw()

{

cout & lt& lt" \ n \ n \ t \鐵!\ n \ n ";

ndraw++;

}

voidccgobang::initial board()//初始化棋盤。

{

for(int I = 0;我& ltnSizei++)

for(int j = 0;j & ltnSizej++)

ach board[I][j]=“”;

}

voidccgobang::print board()//輸出棋盤

{

cout & lt& ltendl

cout & lt& lt" 1 2 3 " & lt;& ltendl

cout & lt& lt" 1 " & lt;& ltach board[0][0]& lt;& lt" | " & lt& ltach board[0][1]& lt;& lt" | " & lt& ltach board[0][2]& lt;& ltendl

cout & lt& lt"-|-|-" & lt;& ltendl

cout & lt& lt" 2 " & lt& ltach board[1][0]& lt;& lt" | " & lt& ltach board[1][1]& lt;& lt" | " & lt& ltach board[1][2]& lt;& ltendl

cout & lt& lt"-|-|-" & lt;& ltendl

cout & lt& lt" 3 " & lt& ltach board[2][0]& lt;& lt" | " & lt& ltach board[2][1]& lt;& lt" | " & lt& ltach board[2][2]& lt;& ltendl

cout & lt& ltendl

cout & lt& ltendl

}

Int CGobang::GetFull() //判斷棋盤是否滿了棋子,如果是,返回1。

{

for(int I = 0;我& ltnSizei++)

for(int j = 0;j & ltnSizej++)

if(achBoard[i][j]!=' ')

返回0;

返回1;

}

Void CGobang::Win() //贏棋。

{

cout & lt& lt" \ n \ n \ t \ t " & lt& ltchSort & lt& lt“黨贏了!\ n \ n ";

nwin++;

}

Void CGobang::Lose() //輸棋

{

nlose++;

}

void CGO bang::play turn(void)//Take 1 move。

{

int nRow,nCol

cout & lt& lt“現在是時候了”

{

CIN & gt;& gtnRow & gt& gtnCol//輸入坐標

if(nRow & gt;nSize | | nCol & gtNSize) //判斷坐標出界。

cout & lt& lt輸入坐標越界,x和y的範圍應小於或等於

else if(ach board[nRow-1][nCol-1]!= ' ')//判斷坐標是否合理

cout & lt& lt“棋盤(”

其他

{

ach board[nRow-1][nCol-1]= ch sort;//把棋子放到坐標上。

打破;//退出循環

}

} while(1);

}

Int CGobang::Judge() //判斷棋子是否連成壹條線,如果是,返回1。

{//下面是可能連成壹條線的各種情況。

if(ach board[0][0]= = ch sort & amp;& ampach board[1][1]= = ch sort & amp;& ampachBoard[2][2]==chSort)

返回1;

else if(ach board[2][0]= = ch sort & amp;& ampach board[1][1]= = ch sort & amp;& ampachBoard[0][2]==chSort)

返回1;

else if(ach board[0][0]= = ch sort & amp;& ampach board[1][0]= = ch sort & amp;& ampachBoard[2][0]==chSort)

返回1;

else if(ach board[0][1]= = ch sort & amp;& ampach board[1][1]= = ch sort & amp;& ampachBoard[2][1]==chSort)

返回1;

else if(ach board[0][2]= = ch sort & amp;& ampach board[1][2]= = ch sort & amp;& ampachBoard[2][2]==chSort)

返回1;

else if(ach board[0][0]= = ch sort & amp;& ampach board[0][1]= = ch sort & amp;& ampachBoard[0][2]==chSort)

返回1;

else if(ach board[1][0]= = ch sort & amp;& ampach board[1][1]= = ch sort & amp;& ampachBoard[1][2]==chSort)

返回1;

else if(ach board[2][0]= = ch sort & amp;& ampach board[2][1]= = ch sort & amp;& ampachBoard[2][2]==chSort)

返回1;

其他

返回0;//如果沒有連成壹條線,則返回0。

}

Void CGobang::PrintInfo(void) //打印大致情況。

{

cout & lt& lt" Side " & lt& ltchSort & lt& lt“方* * *打算贏”

}

Void PrintRule(void) //打印規則

{

cout & lt& lt" \ t \ t \歡迎來到三子朱利安遊戲!"& lt& ltendl & lt& ltendl

cout & lt& lt" \遊戲規則:"

cout & lt& lt" \t1。每1步輸入方格的x、y坐標下棋,回車\ n ";

cout & lt& lt" \t2。如果有1條邊,前三塊連成壹條線,則判定勝者\ n ";

cout & lt& lt" \t3。當棋盤上已滿棋子但仍無贏家時,為和棋\ n ";

cout & lt& lt" \t4。x黨第壹\ n ";

cout & lt& lt" \ n \ n \ t \請按任意鍵開始下棋!\ n \ n ";

}

int judge play(CGO bang & amp;西得克斯、高邦和。SideO)//1每壹步的輸贏,有結果就返回1。

{

如果(SideX。Judge()) //X勝。

{

SideX。win();

SideO。lose();

返回1;

}

Else if(SideO。Judge()) //O勝。

{

SideO。win();

SideX。lose();

返回1;

}

其他

返回0;

}

無效遊戲(CGobang & amp西得克斯、高邦和。SideO) //開始遊戲

{

while(1)

{

CGO bang::print board();//輸出棋盤

SideX。play turn();//x方下棋

If(JudgePlay(SideX,SideO)) //判斷妳是贏是輸。

打破;

If(CGobang::GetFull()) //判斷是否平局。

{

CGO bang::Draw();

打破;

}

CGO bang::print board();//輸出棋盤

SideO。play turn();//O下棋。

If(JudgePlay(SideX,SideO)) //判斷妳是贏是輸。

打破;

If(CGobang::GetFull()) //判斷是否平局。

{

CGO bang::Draw();

打破;

}

}

}

int main(void)

{

CGobang SideX('X '),SideO(' O ');//定義兩個棋子類對象,分別代表X方和O方。

print rule();

CIN . get();

字符串strChoice

{

CGO bang::initial board();//初始化棋盤

Play(SideX,SideO);//開始下壹個遊戲

cout & lt& lt"您想繼續嗎(是/否)?";

CIN & gt;& gtstrChoice

} while(str choice = = " Y " | | str choice = = " Y ");

SideX。PrintInfo();

SideO。PrintInfo();

cout & lt& lt" \ n \ n \歡迎再次使用三子朱利安遊戲!"& lt& ltendl & lt& ltendl

返回0;

}

  • 上一篇:hibernate 和eclipselink的區別
  • 下一篇:java 程序設計英文題
  • copyright 2024編程學習大全網