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

首頁 > 編程 > C++ > 正文

C語言實現三子棋小游戲

2020-05-23 13:31:10
字體:
來源:轉載
供稿:網友

在這里我們要寫出一個三子棋的小游戲,能夠實現所需要的三字連珠的功能,并且可以使得游戲讓玩家進行選擇是否繼續的功能。

代碼:

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<time.h>#define ROW 3#define COL 3void init_board(char arr[ROW][COL]){  int i=0;  int j=0;  for (i = 0; i < ROW; i++)  {    for (j = 0; j < COL; j++)    {      arr[i][j] = ' ';    }  }}void display_board(char arr[ROW][COL]){  int i = 0;  for (i = 0; i < ROW; i++)  {    printf(" %c|%c |%c/n", arr[i][0], arr[i][1], arr[i][2]);    if (i < 2)    {      printf("--|--|--");    }    printf("/n");  }}void player_chess(char arr[ROW][COL]){  int x = 0;  int y = 0;  while (1)  {    printf("請輸入你所要下棋的方位:");    scanf("%d%d", &x, &y);    x--;    y--;    if (arr[x][y] == ' ')    {      arr[x][y] = '#';      break;    }    else    {      printf("這個位置已經被占,請重新下棋。/n");      continue;    }  }}void computer_chess(char arr[ROW][COL]){  srand((unsigned)time(NULL));  while (1)  {    int x = 0;    int y = 0;    srand((unsigned)time(NULL));    x = rand() % 3;    y = rand() % 3;    if (arr[x][y] == ' ')    {      arr[x][y] = '@';      break;    }    else    {      if (check_full(arr) == 0)      {        continue;      }      else      {        break;      }    }  }}int check_full(char arr[ROW][COL]){  int i = 0;  int j = 0;  for (i = 0; i < ROW; i++)  {    for (j = 0; j < COL; j++)    {      if (arr[i][j] == ' ')      {        return 0;      }    }  }  return 1;}char check_win(char arr[ROW][COL]){  int i = 0;  int ret = 0;  for (i = 0; i < ROW; i++)  {    if ((arr[i][0] == arr[i][1]) && (arr[i][2] == arr[i][1]))    {      return arr[i][0];    }  }  for (i = 0; i < COL; i++)  {    if ((arr[0][i] == arr[1][i]) && (arr[2][i] == arr[1][i]))    {      return arr[0][i];    }  }  if ((arr[0][0] == arr[1][1]) && (arr[1][1] == arr[2][2]))  {    return arr[0][0];  }  if ((arr[0][2] == arr[1][1]) && (arr[1][1] == arr[2][0]))  {    return arr[2][0];  }  ret = check_full(arr);  if (ret == 1)  {    return 'q';  }  return ' ';}int main(){  char arr[ROW][COL] = { 0 };  int input = 1;  while (input)  {    printf("請選擇是否開始游戲:");    printf("1:繼續游戲,0:結束游戲");    scanf("%d", &input);    switch (input)    {    case 1:{      char ret = 0;      init_board(arr);      do      {        display_board(arr);        player_chess(arr);        display_board(arr);        if (check_win(arr) != ' ')        {          ret = check_win(arr);          break;        }        computer_chess(arr);        ret = check_win(arr);      } while (ret == ' ');      display_board(arr);      if (ret == '#')      {        printf("玩家贏的游戲/n");      }      else if (ret == '@')      {        printf("電腦贏的游戲/n");      }      else if (ret == 'q')      {        printf("游戲平局/n");      }    }      break;    case 0:      break;    }  }  system("pause");  return 0;}

效果圖:

C語言,三子棋,游戲

程序如果有不足之處,希望大家能夠多多指出來。

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西乌珠穆沁旗| 泸定县| 洪泽县| 长武县| 灵石县| 安溪县| 云林县| 兴文县| 新巴尔虎右旗| 乌什县| 辉县市| 修水县| 安福县| 波密县| 烟台市| 姚安县| 罗山县| 丽水市| 梓潼县| 电白县| 秦皇岛市| 堆龙德庆县| 屯门区| 丹江口市| 延川县| 门头沟区| 鱼台县| 昌吉市| 美姑县| 新泰市| 饶平县| 乐平市| 临朐县| 清苑县| 巴里| 吴江市| 罗江县| 乐至县| 浮山县| 阿克陶县| 林西县|