亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言實現五子棋小游戲

2020-01-26 14:39:55
字體:
來源:轉載
供稿:網友

首先我們先來看一個稍微簡單些的實現方式:

#include <stdio.h>#include <stdlib.h>#define N 15int chessboard[N + 1][N + 1] = { 0 };int whoseTurn = 0;void initGame(void);void printChessboard(void);void playChess(void);int judge(int, int);int main(void){ initGame(); while (1) {  whoseTurn++;  playChess(); } return 0;}void initGame(void){ char c; printf("Please input /'y/' to enter the game:"); c = getchar(); if ('y' != c && 'Y' != c)  exit(0); system("cls"); printChessboard();}void printChessboard(void){ int i, j; for (i = 0; i <= N; i++) {  for (j = 0; j <= N; j++)  {   if (0 == i)    printf("%3d", j);   else if (j == 0)    printf("%3d", i);   else if (1 == chessboard[i][j])    printf(" O");   else if (2 == chessboard[i][j])    printf(" X");   else    printf(" *");  }  printf("/n"); }}void playChess(void){ int i, j, winner; if (1 == whoseTurn % 2) {  printf("Turn to player 1, please input the position:");  scanf("%d %d", &i, &j);  while (chessboard[i][j] != 0)  {   printf("This position has been occupied, please input the position again:");   scanf("%d %d", &i, &j);  }  chessboard[i][j] = 1; } else {  printf("Turn to player 1, please input the position:");  scanf("%d %d", &i, &j);  while (chessboard[i][j] != 0)  {   printf("This position has been occupied, please input the position again:");   scanf("%d %d", &i, &j);  }  chessboard[i][j] = 2; } system("cls"); printChessboard(); if (judge(i, j)) {  if (1 == whoseTurn % 2)  {   printf("Winner is player 1!/n");   exit(0);  }  else  {   printf("Winner is player 2!/n");   exit(0);  } }}int judge(int x, int y){ int i, j; int t = 2 - whoseTurn % 2; for (i = x - 4, j = y; i <= x; i++) {  if (i >= 1 && i <= N - 4 && t == chessboard[i][j] && t == chessboard[i + 1][j] && t == chessboard[i + 2][j] && t == chessboard[i + 3][j] && t == chessboard[i + 4][j])   return 1; } for (i = x, j = y - 4; j <= y; j++) {  if (j >= 1 && j <= N - 4 && t == chessboard[i][j] && t == chessboard[i][j + 1] && t == chessboard[i][j + 1] && t == chessboard[i][j + 3] && t == chessboard[i][j + 4])   return 1; } for (i = x - 4, j = y - 4; i <= x, j <= y; i++, j++) {  if (i >= 1 && i <= N - 4 && j >= 1 && j <= N - 4 && t == chessboard[i][j] && t == chessboard[i + 1][j + 1] && t == chessboard[i + 2][j + 2] && t == chessboard[i + 3][j + 3] && t == chessboard[i + 4][j + 4])   return 1; } for (i = x + 4, j = y - 4; i >= 1, j <= y; i--, j++) {  if (i >= 1 && i <= N - 4 && j >= 1 && j <= N - 4 && t == chessboard[i][j] && t == chessboard[i - 1][j + 1] && t == chessboard[i - 2][j + 2] && t == chessboard[i - 3][j + 3] && t == chessboard[i - 4][j + 4])   return 1; } return 0;}

演示截圖

我們再來看一個更復雜些的

C語言實現五子棋小游戲# include<stdio.h># include<stdio.h># include<stdio.h># include<stdio.h>//插入輸入輸出頭文件# include<string.h>//字符數組的函數定義的頭文件# include<stdlib.h>//stdlib 頭文件即standard library標準庫頭文件stdlib 頭文件里包含了C、C++語言的最常用的系統函數該 ,文件包含了C語言標準庫函數的定義.# define SPA 0//在C或C++語言源程序中允許用一個標識符來表示一個字符串,稱為“宏”。 “define”為宏定義命令。# define MAN 1# define COM 2 /* 空位置設為0 ,玩家下的位置設為1 ,電腦下的位置設為2 */#define ORDEX 15int qipan[ORDEX][ORDEX]; //自己定義的預處理函數,以二維數組形式構建棋盤 /* 15*15的棋盤 */typedef struct//typedef的作用是在C中定義一個結構體類型{ int iFlag; int iX, iY;}ScmPiece;int g_iPieceLen;ScmPiece g_ScmGame1, g_ScmGame2;void start(); /* 程序的主要控制函數 */void draw(); /* 畫棋盤 */int Victory( ScmPiece * pScmPiece ); /* 判斷勝利 p q為判斷點坐標 */void AI(int *p,int *q);  /* 電腦下子 p q返回下子坐標 */int value(int p,int q);  /* 計算空點p q的價值 */int qixing(int n,int p,int q); /* 返回空點p q在n方向上的棋型 n為1-8方向 從右順時針開始數 */void yiwei(int n,int *i,int *j); /* 在n方向上對坐標 i j 移位 n為1-8方向 從右順時針開始數 */void InitGame(){ int i; g_iPieceLen = ORDEX * ORDEX; g_ScmGame1.iX = 0; g_ScmGame1.iY = 0; g_ScmGame1.iFlag = COM; g_ScmGame2.iX = 7; g_ScmGame2.iY = 7; g_ScmGame2.iFlag = MAN; for( i=0; i < ORDEX*ORDEX; ++i )  *( (int*)qipan + i ) = SPA;}void main(){ char k; do{  InitGame();  start();  printf("還要再來一把嗎?輸入y或n:"); getchar(); scanf("%c",&k);  while(k!='y'&&k!='n'){ printf("輸入錯誤,請重新輸入/n"); scanf("%c",&k); }  system("cls"); }while(k=='y'); printf("謝謝使用!/n");}void MakePiece( ScmPiece * pScmPiece, int iGameFlag ){ if( iGameFlag ) {  printf("請下子:");  while( scanf( "%d%d", &pScmPiece->iX, &pScmPiece->iY ) )  {   if( ( pScmPiece->iX < 0 || pScmPiece->iX > ORDEX-1 ) || ( pScmPiece->iY < 0 || pScmPiece->iY > ORDEX-1 ) )    printf( "坐標錯誤!請重新輸入:");   else if( qipan[pScmPiece->iX][pScmPiece->iY] )    printf( "該位置已有子!請重新輸入:");   else break;  } } qipan[pScmPiece->iX][pScmPiece->iY] = pScmPiece->iFlag; --g_iPieceLen; system("cls"); draw(); if( iGameFlag == 0 )  printf("電腦下在%d %d/n", pScmPiece->iX, pScmPiece->iY );}void start(){ int choice; //ScmPiece ScmGameTemp1, ScmGameTemp2;/* a1 b1儲存玩家上手坐標 c1 d1儲存電腦上手坐標 */ printf("/t亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

国产精品久久在线观看| 亚洲欧美日韩天堂一区二区| 成人激情视频在线| 亚洲天堂2020| 亚洲高清不卡av| 亚洲天堂影视av| 国产精品视频一区国模私拍| 欧美人与性动交a欧美精品| 日本欧美爱爱爱| 国产精品私拍pans大尺度在线| 欧美中文字幕精品| 欧美人在线视频| 久久99精品久久久久久噜噜| 欧美视频中文字幕在线| 亚洲亚裔videos黑人hd| 日韩欧美在线播放| 久久亚洲私人国产精品va| 久久国产精品电影| 国产福利视频一区| 欧美大尺度在线观看| 韩国三级电影久久久久久| 中文字幕欧美在线| 在线播放日韩精品| 国产美女久久久| 国模精品一区二区三区色天香| 国产成人涩涩涩视频在线观看| 久久精品视频网站| 欧美另类99xxxxx| 亚洲综合色av| 日韩在线小视频| 欧美性20hd另类| 亚洲国产精品中文| 亚洲第一免费播放区| 亚洲国产又黄又爽女人高潮的| 国产91露脸中文字幕在线| 国产精品国语对白| 成人福利视频在线观看| 黑人巨大精品欧美一区二区三区| 久青草国产97香蕉在线视频| 91香蕉电影院| 日韩毛片在线看| 欧美日韩国产麻豆| 亚洲精品免费网站| 国产精品久久久久久久美男| 欧美国产第二页| www.亚洲免费视频| 日日噜噜噜夜夜爽亚洲精品| 亚洲精品mp4| 国产成人精品久久| 成人久久一区二区三区| 欧美激情第三页| 亚洲xxxx在线| 亚洲综合中文字幕在线观看| 精品爽片免费看久久| 亚洲国产日韩欧美在线99| 亚洲视频在线看| 日韩在线观看免费全集电视剧网站| 91色p视频在线| 黄色一区二区在线| 色婷婷综合久久久久中文字幕1| 欧美最猛性xxxxx免费| 亚洲老头同性xxxxx| 欧美日韩中文字幕日韩欧美| 国产经典一区二区| 国产精品一区二区性色av| 韩国国内大量揄拍精品视频| 中文字幕亚洲一区二区三区| 亚洲欧美日韩一区在线| 久久人体大胆视频| 国产欧亚日韩视频| 国产做受69高潮| 亚洲欧洲午夜一线一品| 日韩成人在线电影网| 色av中文字幕一区| 国产成人综合精品在线| 国外日韩电影在线观看| 国产精品日韩欧美| 一区二区三区高清国产| 国产日韩av在线播放| 欧美在线视频一二三| 黄色成人在线播放| 国产区精品在线观看| 亚洲精品视频在线观看视频| 91国自产精品中文字幕亚洲| 国产在线视频2019最新视频| 久久久国产视频| 色偷偷av一区二区三区乱| 亚洲精品欧美一区二区三区| 久久久久久久久久婷婷| 国产精品自产拍高潮在线观看| 亚洲精品视频播放| 成人黄色免费网站在线观看| 国产免费一区视频观看免费| 亚洲精品日韩av| 国产91免费观看| www.99久久热国产日韩欧美.com| 91香蕉电影院| 国产欧美日韩中文字幕| 欧美一级免费视频| 日韩成人激情影院| 国产精品久久久久久亚洲调教| 伊人久久五月天| 懂色av影视一区二区三区| 欧美在线观看一区二区三区| 91精品久久久久久久久久久久久| 日韩av在线高清| 亚洲精品国产美女| 成人午夜高潮视频| 国产精品久久久久aaaa九色| 久久久天堂国产精品女人| 日韩av毛片网| 日韩欧美中文第一页| 欧美中文在线视频| 浅井舞香一区二区| 精品二区三区线观看| 久久久精品免费视频| 欧美另类99xxxxx| 国产精品久久视频| 国产精品视频不卡| 久久成人18免费网站| 中文字幕亚洲一区二区三区| 久久乐国产精品| 国产视频久久网| 国产精品久久久久高潮| 性欧美xxxx视频在线观看| 亚洲精品免费网站| 成人欧美一区二区三区黑人| 久久手机免费视频| 久久视频免费观看| 久久影视三级福利片| 亚洲欧美中文字幕| 最近中文字幕日韩精品| 一区二区在线视频播放| 欧美激情在线有限公司| 欧美精品在线视频观看| 欧美日韩成人黄色| 国产精品热视频| 亚洲自拍欧美另类| 久久成人精品一区二区三区| 国产福利精品视频| 欧美日韩国产精品一区二区三区四区| 国产亚洲一区精品| 国产欧美在线视频| 国产视频精品一区二区三区| 成人激情免费在线| 亚洲欧洲在线观看| 亚洲黄色有码视频| 久久国产精品网站| 亚洲аv电影天堂网| 一色桃子一区二区| 亚洲乱亚洲乱妇无码| 国产一区二区三区精品久久久| 久久精品久久精品亚洲人| 日本91av在线播放| 日韩精品中文字幕在线播放| 亚洲伊人第一页| 91成人在线播放| 亚洲欧美日韩一区二区在线| 欧美国产亚洲精品久久久8v| 亚洲成人精品久久久| 性欧美长视频免费观看不卡| 中文字幕欧美亚洲| 91在线色戒在线| 日韩在线精品视频|