首页
/
每日頭條
/
遊戲
/
python井字棋遊戲思路
python井字棋遊戲思路
更新时间:2025-12-15 08:40:46

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

本項目為C語言零基礎小項目,可供C語言入門者學習。

效果圖:

python井字棋遊戲思路(CC編程筆記)1

代碼:

#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("這個位置已經被占,請重新下棋。\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/C 編程難度很大,不妨和一些志同道合的小夥伴一起學習成長!

C語言C 編程學習交流圈子,關注 私信【C/C 編程】C語言編程學習基地

有一些源碼和資料分享,歡迎轉行也學習編程的夥伴,和大家一起交流成長會比自己琢磨更快哦!

python井字棋遊戲思路(CC編程筆記)2

python井字棋遊戲思路(CC編程筆記)3

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
王者榮耀體驗服8月31更新内容(王者榮耀體驗服大更新)
王者榮耀體驗服8月31更新内容(王者榮耀體驗服大更新)
  在4.1号體驗服迎來了一次大更新,新英雄、新裝備、新模式,一起來看看吧~文末有小編的新版本分析哦!      親愛的召喚師:為了增加體驗服内容的豐富性和版本的穩定性,我們計劃2018年4月1日22:10-4月2日00:10對《王者榮耀》體驗服進行停機更新。   更新完成時間将根據工作進度提前或延期,期間您将無法登錄遊戲。對于給您帶來的不便,我們深表歉意!...
2025-12-15
王者榮耀各個英雄天花闆都是誰(峽谷中英雄們有趣的外号)
王者榮耀各個英雄天花闆都是誰(峽谷中英雄們有趣的外号)
  劉備      劉備的外号是劉三槍,到後期,隻要三槍就可以收掉一個脆皮的人頭。   曹操      曹操的外号和劉備很像,之前曹操的最強大的時候,被叫做曹三刀,3刀能掃死一個脆皮。   成吉思汗      這個大家應該最熟悉不過了,猴子的外号是猴三棒,之前的猴子3棒就能敲死脆皮,現在也是這樣。   楊戬      楊戬的一技能是放一隻哮天犬,這個技能也被...
2025-12-15
最強蝸牛怎樣提升戰力
最強蝸牛怎樣提升戰力
1、在最強蝸牛手遊中戰力分為本體戰力和其他戰力。2、蝸牛基因進化、器官進化會提升戰力。3、蝸牛DNA...
2025-12-15
steam現在哪款遊戲最值得入手(各大遊戲史低和平史低介紹)
steam現在哪款遊戲最值得入手(各大遊戲史低和平史低介紹)
  我就在想有沒有大佬已經全綠了!!!!!!      Eidos Anthology   ¥319 -91%off      古墓麗影系列Tomb Raider I(古墓麗影1)   ¥3 -89%off 平史低 進包1次   Tomb Raider II(古墓麗影2:西安匕首)   ¥3 -89%off 平史低 進包1次   Tomb Raider II...
2025-12-15
王者榮耀6.19kpl(O2O2O王者榮耀正向KPL開放核心産品資源)
王者榮耀6.19kpl(O2O2O王者榮耀正向KPL開放核心産品資源)
     出品|人民電競   作者|王哲玮   編輯|Kevin   題圖|KPL   對關注KPL的人來說,新年第一個周末的信息量之大,堪稱溢出。   第二屆冬季冠軍杯總決賽中,QGhappy以4:3力克老對手eStarPro,捧起隊史第五座冠軍獎杯,同時隊中選手FLY也拿下了史無前例的第五個FMVP稱号。   而在第二日的《王者榮耀》年度電競戰略發布會中...
2025-12-15
Copyright 2023-2025 - www.tftnews.com All Rights Reserved