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

首頁 > 編程 > C > 正文

C語言實現簡單三子棋程序

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

使用C語言實現簡單的三子棋程序,主要是對二維數組的運用,我們需要一個頭文件,兩個源文件來實現。

game.h //包含函數的聲明,宏定義
test.c //包含主函數,函數調用
game.c //包含函數的定義

整體思路

1.要完成一個簡單的三子棋程序,首先需要創建一個二維數組,并完成數組初始化。

//使用宏定義定義常量,方便之后對數組的使用#define ROW 3 //行#define COL 3 //列char arr[ROW][COL] = { 0 };Arr_init(arr, ROW, COL); //數組初始化

2.完成數組的初始化后,我們需要將三子棋所需要的棋盤打印出來。

void Print_che(char arr[ROW][COL], int row, int col) //打印棋盤{ int i, j; for(i = 0; i < row; i++) { for(j = 0; j < col; j++) {  printf(" %c ", arr[i][j]);  if (j < col - 1)  printf("|"); } printf("/n"); for(j = 0; j < col ; j++) {  if (i < row - 1)  printf("___");  else  printf(" ");  if (j < col - 1)   printf("|"); } printf("/n"); }}

3.打印完棋盤后,我們就要開始下棋了,為了增加游戲的難度,我們讓電腦先走,電腦走的字符為'0'。

void Computer_walk(char arr[ROW][COL], int row, int col) //電腦走{ int x, y; printf("請電腦輸入坐標/n"); while(1) { x = rand() % row; //生成隨機數 y = rand() % col; if (arr[x][y] == ' ') //判斷坐標正確性 {  arr[x][y] = '0';  break; } }}

4.電腦走完后,輪到玩家走,玩家走的字符為'X'。

void Player_go(char arr[ROW][COL], int row, int col) //玩家走{ int x, y; printf("請玩家輸入坐標:"); while (1) { scanf("%d %d", &x, &y); if ((x > 0 && x <= row + 1) && (y > 0 && y <= col + 1)) //判斷坐標正確性 {  if (arr[x - 1][y - 1] == ' ')  {  arr[x - 1][y - 1] = 'X';  break;  }  else  printf("輸入錯誤,請重新輸入:"); } else  printf("輸入錯誤,請重新輸入:"); }}

5.電腦和玩家每走一次,都需要判斷一次輸贏。

char Judge_win(char arr[ROW][COL], int row, int col) //判斷輸贏{ int i, j; int count = 0; for (i = 0; i < row; i++) { if (arr[i][0] == arr[i][1] && arr[i][1] == arr[i][2] && arr[i][0] != ' ') //行相等  return arr[i][1]; if (arr[0][i] == arr[1][i] && arr[1][i] == arr[2][i] && arr[0][i] != ' ') //列相等  return arr[1][i]; if (arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2] && arr[1][1] != ' ') //正斜相等  return arr[1][1]; if (arr[0][2] == arr[1][1] && arr[1][1] == arr[2][0] && arr[1][1] != ' ') //反斜相等  return arr[1][1]; } for (i = 0; i < row; i++)//平局 { for (j = 0; j < col; j++) {  if (arr[i][j] == 'X' || arr[i][j] == '0') //遍歷數組,查看是否還有沒有走的地方  {  count++;  if (count == 9)   return 'Q';  } } } return 'A';}

確定大致思路后,我們完成程序的流程部分,放入我們所創建的文件中。

代碼如下:

game.h //包含函數的聲明,宏定義

#ifndef _GAME_H__#define _GAME_H__#include <stdio.h>#include <windows.h>#include <stdlib.h>#include <time.h>#define ROW 3 //行#define COL 3 //列void Arr_init(char arr[ROW][COL], int row, int col); //數組初始化void Print_che(char arr[ROW][COL], int row, int col);//打印棋盤void Player_go(char arr[ROW][COL], int row, int col);//玩家走void Computer_walk(char arr[ROW][COL], int row, int col);//電腦走char Judge_win(char arr[ROW][COL], int row, int col);//判斷輸贏#endif // GAME_H__test.c //包含主函數,函數調用#define _CRT_SECURE_NO_WARNINGS 1#include "game.h"void menu() //菜單函數{ printf("********************/n"); printf("**** 1.play ****/n"); printf("**** 0.exit ****/n"); printf("********************/n");}void game() //游戲函數{ char arr[ROW][COL] = { 0 }; Arr_init(arr, ROW, COL); //數組初始化 Print_che(arr, ROW, COL); //打印棋盤 while(1) { char n; Computer_walk(arr, ROW, COL); //電腦走 Print_che(arr, ROW, COL); n = Judge_win(arr, ROW, COL); //判斷輸贏 if (n == 'X') //根據判斷輸贏函數所返回的值做出不同的選擇 {  printf("玩家贏/n");  break; } else if (n == '0') {  printf("電腦贏/n");  break; } else if (n == 'Q') {  printf("平局/n");  break; } else  printf("----------------/n"); Player_go(arr, ROW, COL);//玩家走 Print_che(arr, ROW, COL); n = Judge_win(arr, ROW, COL);//判斷輸贏 if (n == 'X') {  printf("玩家贏/n");  break; } else if (n == '0') {  printf("電腦贏/n");  break; } else if (n == 'Q')  printf("平局/n"); else  printf("------------------/n"); }}void test() //游戲流程函數{ int input = 0; srand((unsigned)time(NULL)); do { menu(); printf("請輸入選擇:"); scanf("%d", &input); switch (input) { case 1:  game();  break; case 0:  break; default:  printf("輸入錯誤,請重新輸入。/n"); } } while (input);}int main(){ test(); system("pause"); return 0;}

game.c //包含函數的定義

#include "game.h"void Arr_init(char arr[ROW][COL], int row, int col)//數組初始化{ int i = 0; int j = 0; for(i = 0; i < row; i++) { for(j = 0; j < col; j++)  arr[i][j] = ' '; }}void Print_che(char arr[ROW][COL], int row, int col)//打印棋盤{ int i, j; for(i = 0; i < row; i++) { for(j = 0; j < col; j++) {  printf(" %c ", arr[i][j]);  if (j < col - 1)  printf("|"); } printf("/n"); for(j = 0; j < col ; j++) {  if (i < row - 1)  printf("___");  else  printf(" ");  if (j < col - 1)   printf("|"); } printf("/n"); }}void Player_go(char arr[ROW][COL], int row, int col) //玩家走{ int x, y; printf("請玩家輸入坐標:"); while (1) { scanf("%d %d", &x, &y); if ((x > 0 && x <= row + 1) && (y > 0 && y <= col + 1)) //判斷坐標正確性 {  if (arr[x - 1][y - 1] == ' ')  {  arr[x - 1][y - 1] = 'X';  break;  }  else  printf("輸入錯誤,請重新輸入:"); } else  printf("輸入錯誤,請重新輸入:"); }}void Computer_walk(char arr[ROW][COL], int row, int col) //電腦走{ int x, y; printf("請電腦輸入坐標/n"); while(1) { x = rand() % row; //生成隨機數 y = rand() % col; if (arr[x][y] == ' ') //判斷坐標正確性 {  arr[x][y] = '0';  break; } }}char Judge_win(char arr[ROW][COL], int row, int col) //判斷輸贏{ int i, j; int count = 0; for (i = 0; i < row; i++) { if (arr[i][0] == arr[i][1] && arr[i][1] == arr[i][2] && arr[i][0] != ' ') //行相等  return arr[i][1]; if (arr[0][i] == arr[1][i] && arr[1][i] == arr[2][i] && arr[0][i] != ' ') //列相等  return arr[1][i]; if (arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2] && arr[1][1] != ' ') //正斜相等  return arr[1][1]; if (arr[0][2] == arr[1][1] && arr[1][1] == arr[2][0] && arr[1][1] != ' ') //反斜相等  return arr[1][1]; } for (i = 0; i < row; i++)//平局 { for (j = 0; j < col; j++) {  if (arr[i][j] == 'X' || arr[i][j] == '0') //遍歷數組,查看是否還有沒有走的地方  {  count++;  if (count == 9)   return 'Q';  } } } return 'A';}

到這里,我們的程序已經完成了,我們看看程序的效果

這里寫圖片描述

這里寫圖片描述

以上就是一個簡單的三子棋程序,多有不足之處,還望指教。

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

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

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
88xx成人精品| 欧美成人一二三| 日韩美女视频在线观看| 日本一欧美一欧美一亚洲视频| 日韩一区二区欧美| 日韩精品日韩在线观看| 永久免费精品影视网站| 亚洲va电影大全| 欧美一级视频在线观看| 一区二区在线免费视频| 国内精品久久影院| 在线看福利67194| 国产精品狠色婷| 日韩av快播网址| 亚洲欧美激情一区| 国产精品第3页| 久久久成人的性感天堂| 在线精品国产成人综合| 日韩欧美在线观看| 欧美激情xxxx性bbbb| 日本三级韩国三级久久| 欧美综合国产精品久久丁香| 国产精品aaa| 狠狠躁夜夜躁人人爽超碰91| 欧美成人免费播放| 欧美电影免费观看高清完整| 日韩av影视在线| 欧美色道久久88综合亚洲精品| 亚洲人成电影网站色| 成人深夜直播免费观看| 亚洲最大的网站| 国产亚洲精品久久久久久| 成人免费直播live| 日韩精品亚洲视频| 欧美一区在线直播| 91九色视频导航| 日韩在线观看免费高清完整版| 久久久久久久久久久免费| 国产精品久久久久77777| 久久露脸国产精品| 日韩在线免费高清视频| 91精品视频专区| 欧洲亚洲免费视频| 国模视频一区二区三区| 亚洲男人天堂久| 欧美日韩一区二区免费在线观看| 亚洲色图综合久久| 欧美激情视频在线免费观看 欧美视频免费一| 久久国产天堂福利天堂| 国产精品欧美激情在线播放| 国产精品视频一区二区三区四| 国产精品成人aaaaa网站| 亚洲精品美女在线观看| 国产一区二区三区在线| 精品色蜜蜜精品视频在线观看| 日本三级久久久| 亚洲第一网中文字幕| 欧美日韩国产在线播放| 日韩欧美第一页| 国产精品久久久久久久久男| 国产狼人综合免费视频| 欧美国产精品日韩| 姬川优奈aav一区二区| 国产精品久久久久77777| 欧美色另类天堂2015| 亚洲精品av在线| 午夜精品福利在线观看| 欧美午夜无遮挡| 日韩经典一区二区三区| 国产精品国内视频| 亚洲人成在线一二| 亚洲午夜女主播在线直播| 亚洲国产99精品国自产| 亚洲视频在线观看| 色综合伊人色综合网站| 欧美成年人视频网站| www.精品av.com| 国内久久久精品| 亚洲国产欧美一区二区三区同亚洲| 狠狠久久五月精品中文字幕| 亚洲美女福利视频网站| 亚洲成人网在线观看| 国产精品777| 精品夜色国产国偷在线| 97在线免费观看视频| 亚洲国产中文字幕久久网| 久久这里只有精品视频首页| 不卡av电影院| 久久久影视精品| 国产精品欧美一区二区| 久久久久久久一区二区| 国产成人精品在线| 欧美日韩国产综合视频在线观看中文| 黄色精品一区二区| 国产综合视频在线观看| 激情成人中文字幕| 国产视频精品免费播放| www.欧美三级电影.com| 亚洲aⅴ男人的天堂在线观看| 日韩国产一区三区| 亚洲成人a**站| 精品呦交小u女在线| 丰满岳妇乱一区二区三区| 欧美激情欧美激情在线五月| 欧美日韩国产页| 欧美成在线观看| 久久精品国产96久久久香蕉| 国产一区二区三区直播精品电影| 国产精品国语对白| 亚洲欧美中文另类| 综合136福利视频在线| 亚州精品天堂中文字幕| 亚洲天堂男人天堂女人天堂| 久久久久在线观看| 在线视频中文亚洲| 91国产精品视频在线| 久久精品男人天堂| 久久精品在线播放| www.久久撸.com| 国产亚洲欧洲在线| 在线日韩日本国产亚洲| 亚洲国产日韩欧美在线99| 亚洲精品美女网站| 欧美性极品xxxx做受| 奇米一区二区三区四区久久| 国产精品第一页在线| 伊人久久久久久久久久久| 在线播放日韩av| 91超碰中文字幕久久精品| 日本免费一区二区三区视频观看| 91av中文字幕| 亚洲理论在线a中文字幕| 欧美成人精品不卡视频在线观看| 国外色69视频在线观看| 国产性色av一区二区| 国产成人精品免高潮在线观看| 久久精品人人爽| 国产精品一区二区三区久久久| 国产亚洲精品综合一区91| 欧美精品生活片| 国产欧美一区二区三区在线看| 91精品久久久久久久久中文字幕| 亚洲精品第一国产综合精品| 精品视频偷偷看在线观看| 国产日韩欧美电影在线观看| 少妇高潮久久久久久潘金莲| 欧美日在线观看| 欧美一区二区大胆人体摄影专业网站| 91九色综合久久| 国产精品国模在线| 中文在线资源观看视频网站免费不卡| 1769国产精品| 国产三级精品网站| 国产精品扒开腿做爽爽爽男男| 91网在线免费观看| 欧美日韩国产丝袜另类| 国产精品视频自在线| 国产91精品不卡视频| 色狠狠久久aa北条麻妃| 亚洲国产日韩欧美在线动漫| 亚洲在线免费看| 亚洲欧洲在线视频| 精品免费在线观看| 亚洲精品videossex少妇|