国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言實現三子棋游戲

2020-01-26 13:46:38
字體:
來源:轉載
供稿:網友

本文實例為大家分享了C語言實現三子棋游戲的具體代碼,供大家參考,具體內容如下

#include<stdio.h> #include<stdlib.h> #include<time.h>  void chess_board(char arr[3][3])   //打印棋盤 {  int i = 0;  int j = 0;  for (i = 0; i < 3; i++)  {   printf( " %c | %c | %c /n", arr [i][0], arr[i][1], arr[i][2]);   if (i<2)   printf( "---|---|---/n");  } }  int success_or_failure(char arr[3][3])  //判斷勝負 {   int i = 0;   int j = 0;   for (i = 0; i < 3; i++)   {   if ((arr [i][0] == arr[i][1]) && ( arr[i][j] == arr [i][2]))    {     if (arr [i][0] == '#')      return 1;    //用戶贏了     else if (arr[i][0] == '0')      return -1;   //電腦贏了    }   }   for (j = 0; j < 3; j++)   {   if ((arr [0][j] == arr[1][j]) && ( arr[1][j] == arr [2][j]))    {    if (arr [0][j] == '#')     return 1;     //用戶贏了    else if (arr[0][j] == '0')     return -1;    //電腦贏了    }   }   if ((arr [0][0] == arr[1][1]) && ( arr[0][0] == arr [2][2]))    {     if (arr [1][1] == '#')      return 1;    //用戶贏了     else if (arr[1][1] == '0')      return -1;    //電腦贏了    }   if ((arr [0][2] == arr[1][1]) && ( arr[0][2] == arr [2][0]))    {     if (arr [1][1] == '#')      return 1;    //用戶贏了     else if (arr[1][1] == '0')      return -1;   //電腦贏了    }   for (i = 0; i < 3; i++)    {     for (j = 0; j < 3; j++)      {       if (arr [i][j] == ' ')        return 0;  //都沒贏      }    }    return -2;     //平局 }  int user_game(char arr[3][3])     //用戶輸入 {   int x = 0;   int y = 0;   while (1)   {    printf( "please user input:(x, y) ");    scanf( "%d%d", &x, &y);    printf( "/n");    if ((x<1 && x>3) || (y<1 && y>3)) //判斷用戶輸入的是否合法    {    printf( "地址無效,請重新輸入/n" );          break;    }    if (arr [x - 1][y - 1] == ' ') //判斷這個位置有沒有被占    {                 arr[x - 1][y - 1] = '#' ;     break;    }    printf( "地址無效,請重新輸入/n" );   }   chess_board( arr);   int ret=success_or_failure(arr );   return ret; }  int computer_game(char arr[3][3])     //電腦輸入 {    printf( "computer input:/n/n");    int x = 0;    int y = 0;    while (1)    {     //產生一個沒有被棋子占用的位置     srand(( unsigned)time(NULL ));     x = rand() % 3;     srand(( unsigned)time(NULL ));     y = rand() % 3;     if (arr [x][y] == ' ')             break;    }   arr[x][y]= '0' ;   chess_board(arr);   int ret=success_or_failure(arr);   return ret; }   void init(char arr[][3])     //初始化棋盤 {    for (int i = 0; i < 3; i++)         {    for (int j = 0; j<3; j++)    {     arr[i][j] = ' ';     }   } }  int main() {   printf( "**********************/n");   //打印菜單   printf( "*******  *******/n");   printf( "*******1.go 0.exit**/n");   printf( "*******  *******/n");   printf( "**********************/n");   printf( "**********************/n/n/n");   char arr[3][3];   while (1)   {   init(arr);      //初始化棋盤   int count = 0;   printf( "/nplease choice:1 or 0 : " );   scanf( "%d", &count);    //選擇功能   if (count == 0)    {    exit( EXIT_FAILURE);    }   else if (count == 1)   {    printf( "/n****游戲開始****/n/n" );    while (1)    { int n1 = user_game(arr);     {     if (n1 == 1)     {      printf( "****恭喜玩家贏了****/n" );      break;     }     }         int n2 = computer_game(arr);               {       if (n2 == -1)      {       printf( "****電腦贏了****/n" );       break;      }     }     if ((n1 == -2) || (n2 == -2))           {     printf( "*****平局******/n" );     break;     }    }      printf( "/n再來一局/n/n" );   }  return 0; } 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 伽师县| 基隆市| 易门县| 太仆寺旗| 顺平县| 洛宁县| 林芝县| 永新县| 高陵县| 咸宁市| 广饶县| 河曲县| 许昌县| 红河县| 讷河市| 抚州市| 乐安县| 福安市| 榆林市| 安仁县| 监利县| 绥江县| 东丽区| 淮滨县| 沽源县| 芒康县| 桃园市| 大邑县| 鹤山市| 红安县| 广平县| 历史| 崇州市| 博野县| 郑州市| 马关县| 漳平市| 宁海县| 湘乡市| 东乡族自治县| 璧山县|