最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

C/C++編程筆記:C語言實現(xiàn)“井字棋”小游戲,零基礎(chǔ)項目(含源碼)

2020-08-13 21:43 作者:C語言編程__Plus  | 我要投稿

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

本項目為C語言零基礎(chǔ)小項目,可供C語言入門者學(xué)習(xí)。

效果圖:


代碼:

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

#define ROW 3

#define COL 3

void 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("這個位置已經(jīng)被占,請重新下棋。\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:結(jié)束游戲");

? ? 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;

}

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

以上就是本文的全部內(nèi)容,也希望對大家的學(xué)習(xí)有所幫助!

學(xué)習(xí)C/C++編程知識,提升C/C++編程能力,歡迎關(guān)注UP一起來成長!
另外,UP在主頁上傳了一些學(xué)習(xí)C/C++編程的視頻教程(含C語言入門全套),有興趣或者正在學(xué)習(xí)的小伙伴一定要去看一看哦!會對你有幫助的~


C/C++編程筆記:C語言實現(xiàn)“井字棋”小游戲,零基礎(chǔ)項目(含源碼)的評論 (共 條)

分享到微博請遵守國家法律
海丰县| 隆昌县| 满洲里市| 平安县| 慈溪市| 迁安市| 太原市| 灵寿县| 浪卡子县| 罗江县| 信丰县| 汪清县| 报价| 屏山县| 菏泽市| 宁武县| 华坪县| 汤阴县| 壶关县| 神木县| 无棣县| 民丰县| 新竹市| 双柏县| 祁东县| 大城县| 宜城市| 镇沅| 芒康县| 嵊泗县| 炉霍县| 保德县| 介休市| 十堰市| 玉门市| 佛冈县| 封开县| 比如县| 江永县| 蓬溪县| 宁陕县|