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

首頁 > 編程 > C > 正文

C語言實現三子棋小游戲

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

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

代碼:

#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:繼續(xù)游戲,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;}

效果圖:

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

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

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

圖片精選

主站蜘蛛池模板: 彰武县| 昌都县| 宿州市| 西贡区| 阿合奇县| 德庆县| 乐东| 金门县| 灵台县| 张掖市| 孟州市| 嘉禾县| 惠安县| 湟源县| 张家港市| 咸宁市| 永清县| 沈丘县| 吉木乃县| 金湖县| 溆浦县| 平昌县| 宝坻区| 江西省| 舞阳县| 邵阳市| 高唐县| 沂水县| 太仆寺旗| 繁昌县| 庄河市| 平定县| 德昌县| 禹城市| 金乡县| 无极县| 南和县| 南和县| 景洪市| 盐城市| 综艺|