欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易五子棋

 更新時(shí)間:2020年10月23日 14:16:40   作者:易燃易爆炸i  
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易五子棋,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易五子棋的具體代碼,供大家參考,具體內(nèi)容如下

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

#define ROW 5
#define COL 5

char g_broad[ROW][COL];
void menu();
void menu()
{
 printf("-----------------------\n"); 
 printf("------1.開始游戲-------\n");
 printf("------0.結(jié)束游戲-------\n"); 
 printf("-----------------------\n");
 printf("請(qǐng)輸入您的選擇:");
 }
void Init(char broad[ROW][COL])
{ 
  for (int row = 0; row < ROW; ++row)
  { 
  for (int col = 0; col < COL; ++col)
   { 
   broad[row][col] = ' ';
   } 
  }
 }
void print(char broad[ROW][COL])
{
 for (int row = 0; row < ROW; ++row)
 { 
  printf("| %c | %c | %c | %c | %c |\n", broad[row][0], 
  broad[row][1], broad[row][2], broad[row][3], 
  broad[row][4]);
  if (row != ROW - 1)
 { 
 printf(" ---|---|---|---|--- \n"); 
    } 
 }
}
void playermove(char broad[ROW][COL])
{ 
  printf("玩家落子:\n"); 
  while (1) 
  { 
  printf("玩家請(qǐng)輸入一組坐標(biāo):(row col)"); 
  int row = 0; 
  int col = 0; 
  scanf("%d %d", &row, &col); 
  if (row < 0 || row >= ROW || col < 0 || col >= COL) 
  { 
  printf("您輸入的坐標(biāo)非法,請(qǐng)重新輸入:\n"); 
  continue; 
  } 
 else if (broad[row][col] != ' ') 
 { 
  printf("該位置已經(jīng)被占用,請(qǐng)重新輸入:\n"); 
  continue; 
 } 
 else 
 { 
  broad[row][col] = 'x'; 
  break; 
 }
 }
}
void computermove(char broad[ROW][COL])
{ 
  printf("電腦落子:\n"); 
  while (1)
  { 
   int row = rand() % ROW; 
   int col = rand() % COL; 
   if (broad[row][col] != ' ') 
   { 
   continue; 
   } 
  else 
  { 
  broad[row][col] = 'o'; 
  break; 
  }
  }
 }
int Isfull(char broad[ROW][COL])
{ 
 for (int row = 0; row < ROW; ++row) 
 { 
  for (int col = 0; col < COL; ++col) 
  { 
  if (broad[row][col] == ' ') 
  return 0; 
  }
  } 
 return 1;
}
char checkwinner(char broad[ROW][COL])
{ 
 for (int row = 0; row < ROW; ++row)
 { 
 if (broad[row][0] == broad[row][1] 
 && broad[row][0] == broad[row][2] 
 && broad[row][0] == broad[row][3] 
 && broad[row][0] == broad[row][4] 
 && broad[row][0] != ' ') 
 { 
 return broad[row][0]; 
 }
   } 
   for (int col = 0; col < COL; ++col) 
   { 
   if (broad[0][col] == broad[1][col] 
   && broad[0][col] == broad[2][col] 
   && broad[0][col] == broad[3][col] 
   && broad[0][col] == broad[4][col] 
   && broad[0][col] != ' ') 
    { 
    return broad[0][col]; 
    }
    } 
    if (broad[0][0] == broad[1][1] 
    && broad[0][0] == broad[2][2] 
    && broad[0][0] == broad[3][3] 
    && broad[0][0] == broad[4][4] 
    && broad[0][0] != ' ')
    { 
    return broad[0][0]; 
    } 
    if (broad[0][4] == broad[1][3] 
    && broad[0][4] == broad[2][2] 
    && broad[0][4] == broad[3][1] 
    && broad[0][4] == broad[4][0] 
    && broad[4][0] != ' ') 
    { 
    return broad[4][0]; 
    } 
    if (Isfull(broad)) 
     { 
     return 'p'; 
     } 
     else
     return ' ';
    }
int main()
{ 
srand((unsigned int)time(0)); 
int input = 0; 
menu(g_broad); //初始化棋盤,將棋盤初始化成' ' 
Init(g_broad); 
scanf("%d", &input); 
char winner = ' '; 
while (input) 
{ 
 //第一次打印棋盤 
 print(g_broad); 
 //玩家輸入,提示玩家輸入一組坐標(biāo),檢查游戲是否結(jié)束 
 playermove(g_broad); 
 winner = checkwinner(g_broad); 
 if (winner != ' ') 
  { 
  break; 
  } 
  //電腦輸入,瞎下,檢查游戲是否結(jié)束 
  computermove(g_broad); 
  winner = checkwinner(g_broad); 
  if (winner != ' ') 
   { 
   break; 
   } 
   } 
   if (winner == 'x') 
   { 
   printf("玩家勝利!\n"); 
   print(g_broad);
   } 
   if (winner == 'o')
  { 
  printf("電腦勝利!\n"); 
  print(g_broad); 
  } 
  if (winner == 'p') 
  { 
  printf("和棋!\n"); 
  print(g_broad); 
  } 
  if (winner == ' ') 
  { 
  printf("游戲結(jié)束!goodbay~\n"); 
  return 0; 
  } 
  return 0;
}

游戲運(yùn)行結(jié)果如下:

注:使用宏定義可以擴(kuò)充棋盤

更多有趣的經(jīng)典小游戲?qū)崿F(xiàn)專題,分享給大家:

C++經(jīng)典小游戲匯總

python經(jīng)典小游戲匯總

python俄羅斯方塊游戲集合

JavaScript經(jīng)典游戲 玩不停

java經(jīng)典小游戲匯總

javascript經(jīng)典小游戲匯總

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于C++實(shí)現(xiàn)信息管理系統(tǒng)

    基于C++實(shí)現(xiàn)信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了基于C++實(shí)現(xiàn)信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++中std::allocator的使用案例詳解

    C++中std::allocator的使用案例詳解

    這篇文章主要介紹了C++中std::allocator的使用案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • C++中如何修改const變量你知道嗎

    C++中如何修改const變量你知道嗎

    這篇文章主要為大家詳細(xì)介紹了C++修改const變量,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • CLOSE_WAIT狀態(tài)解決方案

    CLOSE_WAIT狀態(tài)解決方案

    這篇文章主要介紹了CLOSE_WAIT狀態(tài)解決方案,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C++計(jì)算圖任意兩點(diǎn)間的所有路徑

    C++計(jì)算圖任意兩點(diǎn)間的所有路徑

    這篇文章主要為大家詳細(xì)介紹了C++求圖任意兩點(diǎn)間的所有路徑 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • COLORREF,COLOR,RGB,CString的轉(zhuǎn)化總結(jié)分析

    COLORREF,COLOR,RGB,CString的轉(zhuǎn)化總結(jié)分析

    實(shí)際的軟件開發(fā)過(guò)程中,常需要用到非.net平臺(tái)的代碼。這時(shí)候就可能碰到ColorRef(也就是以int類型代表的顏色值或是以DWORD值表示的顏色)。這跟.net平臺(tái)下的顏色的相互轉(zhuǎn)換MS并沒有直接實(shí)現(xiàn)
    2013-09-09
  • C語(yǔ)言中const和指針的秘密你知道嗎

    C語(yǔ)言中const和指針的秘密你知道嗎

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言中const和指針的秘密,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • C++LeetCode數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)詳解

    C++LeetCode數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)詳解

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode數(shù)據(jù)結(jié)構(gòu),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C語(yǔ)言遞歸:漢諾塔問(wèn)題分析

    C語(yǔ)言遞歸:漢諾塔問(wèn)題分析

    這篇文章主要介紹了C語(yǔ)言遞歸:漢諾塔問(wèn)題分析的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • C語(yǔ)言實(shí)現(xiàn)飛機(jī)票務(wù)系統(tǒng)

    C語(yǔ)言實(shí)現(xiàn)飛機(jī)票務(wù)系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)飛機(jī)票務(wù)系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12

最新評(píng)論