C實現三子棋
三子棋實現的步驟如下:
(1)初始化棋盤;
(2)玩家走;
(3)電腦走;
(4)判斷輸贏;
(5)判斷棋盤是否已滿。
具體程式碼如下:
(1)將棋盤初始化為" ";
void init_board(char board[ROW][COL],int row,int col)
{
// int i=0;
// int j=0;
// for(i=0;i<row;i++)
// {
// for(j=0;j<col;j++)
// {
// board[i][j]=' ';
// }
// }
memset(board,' ',row*col*sizeof(board[0][0]));
}
(2)顯示棋盤(3)電腦走void display_board(char board[ROW][COL],int row,int col) { int i=0; for (i=0;i<row;i++) { printf(" — — —\n"); printf("|%c |%c |%c |\n", board[i][0],board[i][1],board[i][2]); } printf(" — — —\n"); }
computerMove(char board[ROW][COL])
{
int x=0;
int y=0;
while(1)
{
x=rand()%3;
y=rand()%3;
if(board[x][y]==' ')
{
board[x][y]='*';
break;//while中的break是用於永久終止迴圈
}
}
}
(4)玩家走
(5)判斷輸贏playMove(char board[ROW][COL],int row,int col) { int x=0; int y=0; while(1) { printf("請輸入座標:>"); scanf("%d%d",&x,&y); x--; y--; if(((x>=0)&&(x<=2))&&((y>=0)&&(y<=2))) { if(board[x][y]==' ') { board[x][y]='o'; break; //return; } } printf("輸入座標錯誤"); } }
(6)判斷棋盤是否已滿Iswin(char board[ROW][COL],int row,int col) { int i=0; for(i=0;i<row;i++) { if((board[i][0]==board[i][1])&&board[i][1]==board[i][2]!=' ') return board[i][1]; } for(i=0;i<row;i++) { if((board[i][0]==board[i][1])&&board[i][1]==board[i][2]!=' ') return board[i][1]; } if((board[0][0]==board[1][1])&&board[1][1]==board[2][2]!=' ') return board[1][1]; if((board[0][2]==board[1][1])&&board[1][1]==board[2][0]!=' ') return board[1][i]; if(IsFull(board,ROW,COL)) { return 'q'; } return ' '; }
IsFull(char board[ROW][COL],int row,int col)
{
int i=0;
int j=0;
for(i=0;i<row;i++)
{
for(j=0;j<col;j++)
{
if(board[i][j]==' ')
return 0;
}
}
return 1;
}
(7)測試程式碼
#define _CRT_SECURE_NO_WARNINGS 1
#include"sanziqi.h"
menu()
{
printf("****************\n");
printf("*****1.play*****\n");
printf("*****0.exit*****\n");
printf("****************\n");
}
game()
{
char board[ROW][COL];
char ret;
init_board(board,ROW,COL);
display_board(board,ROW,COL);
do
{
printf("電腦走>..........\n");
computerMove(board);
display_board(board,ROW,COL);
printf("玩家走>..........\n");
playMove(board,ROW,COL);
display_board(board,ROW,COL);
ret=Iswin(board,ROW,COL);
if(ret!=' ')
{
break;
}
}while(ret==' ');
if(ret=='*')
printf("電腦贏\n");
else if(ret=='o')
printf("玩家贏\n");
else if(ret=='q')
printf("平局\n");
}
test()
{
int input=0;
srand((unsigned)time(NULL));
do
{
menu();
printf("請選擇:>");
scanf("%d",&input);
switch(input)
{
case 1:
game();
break;
case 0:
printf("退出遊戲\n");
break;
default:
printf("選擇錯誤,請重新輸入\n");
break;
}
}
while(input);
}
int main()
{
test();
return 0;
}
相關推薦
C++實現——三子棋遊戲
/* 題目描述: 兩個人玩三子棋遊戲,即在3*3的矩陣上下棋,一個人畫叉一個人畫圈,誰先出現成行或成列或成對角線三個相同的棋子就算誰贏。編寫演算法實現,判斷給定棋局的狀態,用1代表先手,
C實現三子棋
三子棋實現的步驟如下: (1)初始化棋盤; (2)玩家走; (3)電腦走; (4)判斷輸贏; (5)判斷棋盤是否已滿。 具體程式碼如下: (1)將棋盤初始化為" "; void init_board(char board[ROW][COL],int row,int c
用C語言實現三子棋遊戲
game.h #ifndef __GAME_H__ #define __GAME_H__ #define _CRT_SECURE_NO_WARNINGS #include <string.h> #include <s
c語言實現 **三子棋小遊戲**
| 備註都寫在程式碼中 標頭檔案 game.h #ifndef __GAME_H_ #define __GAME_H_ #define ROW 3 #define COL 3 #define _CRT_SECURE_NO_WARNINGS #include&
今天定個小目標,用C語言實現三子棋的玩法。裡面有精彩情景故事幫助你更快理解程式碼內容,不進來了解一下嗎?(內附程式碼)
如標題所示,今天我們要用C語言來實現三子棋的遊戲。相信大家都玩過這個遊戲。我們來回憶一下游戲步驟。 一、今天你在家裡看書,你的朋友小紅邀請你和她一起玩三子棋。這時你有兩個選擇。 1.接受她的邀請,在玩遊戲的同手,促進你們的感情。 0.殘忍
c語言實現三子棋
分析 玩法分析:將正方形對角線連起來,相對兩邊依次擺上三個雙方棋子,只要將自己的三個棋子走成一條線,對方就算輸了。 思路 遊戲流程:遊戲初始化 棋盤初始化 棋盤由二位陣列模擬,且初始化陣列 棋盤列
C語言實現三子棋遊戲
先直接上程式碼: #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> //2.實現三子棋遊戲。 #include<Windows.h> //Sleep
C語言:3*3棋盤實現三子棋
三子棋的實現功能: 通過輸入座標確認下棋地點,與電腦對戰,電腦產生隨機數(隨機座標)。 輸出棋盤,並判斷玩家與電腦的輸贏,輸出贏家。 #include<stdio.h> #include<stdlib.h> #include"game.h" #in
C語言實現三子棋遊戲(意義版)
我還會再遇到ta。所以,這並不算是真正意義上得離別。雖然從近幾個月幾乎每天都跟ta走的頗近。每次得相遇都會讓我恍惚。我想躲著ta的一些,但是每次提起思緒卻總會跟ta不期而遇。遇時苦惱,別時著迷。昨日又與ta相遇,這一聚,就是六個多時辰。從正午窗外得鳴笛到回頭時到卷閘門刺耳的伸
C語 三子棋小遊戲
splay ret int def 選擇 種子 define tdi rand() 1 #include <stdio.h> 2 #include <Windows.h> 3 #include<time.h> 4 #de
編寫程式—實現三子棋(五子棋)遊戲
編寫程式,實現三子棋(五子棋)遊戲 將define定義的Row、Col改為5即可實現5*5棋盤的五子棋遊戲 程式程式碼如下: game.h #ifndef __GAME_H__ #define __GAME_H__ #include<stdi
C語言------三子棋
三子棋是一個很簡單的遊戲,用C語言實現,就是實現以下功能: 1.初始化介面(棋盤); 2.顯示介面; 3.玩家和電腦交替走棋; 4.在每次走棋之後判斷是否有人勝利; 5.判斷棋盤是否已下滿棋子。 注:此程式玩家下棋時的座標,就是棋盤實際上顯示的座標,並不需要再進
實現三子棋遊戲
1. 首先在game.c中構建一個選單,供玩家選擇,提供兩個選項:1.play 0.exit ,簡單測試一下能否編譯除錯。 #define _CRT_SECURE_NO_WARNINGS #inclu
[C]專案--三子棋遊戲
三子棋 楔子: 三子棋是我們小時候經常玩的遊戲,那麼我們今天嘗試用C語言實現一下這個小遊戲.需要用到的主要知識就是函式封裝和陣列. 以下為程式主體: #define _CRT_SECURE_NO_WARNINGS #include <stdio
博弈演算法實現三子棋
用博弈樹演算法實現井字棋遊戲。 井字棋遊戲是一種簡單的棋類遊戲,在3*3的棋盤上,兩人輪流下子,誰的棋子先連成3顆一條直線,誰就贏了,可以橫著、豎著、斜著。博弈樹演算法是用搜索來解決這類問題的演算法,井字棋遊戲步數較少,很容易用博弈樹演算法實現 #incl
c語言 三子棋/井字棋 演算法原始碼並講解
用了這好幾天的時間在閒暇時間寫了一個小時候玩的井字棋,或者叫三子棋的小遊戲,來娛樂娛樂,雖然是黑白框,並且電腦有點傻之外,一切良好。 首先寫之前就要先明白思路,這個棋盤要放到一個二維數組裡面這樣才能更好的顯示出來,並且方便操作,先打印出來棋盤這是必須的,
C語言實現的三子棋遊戲
oid operation endif while oar ini line 重新 被占用 頭文件 #ifndef __game_h__ #define __game_h__ #include <stdio.h> #include <stdlib.h>
詳解!C語言程式設計實現小遊戲“三子棋”
今天我們來程式設計實現一個充滿童趣的小遊戲“三子棋” 先來說一下三子棋的規則: 三子棋又叫九宮棋、圈圈叉叉、一條龍等。 將正方形對角線連起來,或相對兩邊依次擺上三個雙方棋子, 總之只要將自己的三個棋子走成一條線, 對方就算輸了。 不用再過多解釋了,相信大家一定都玩過! 那麼,該
C語言實現簡單的三子棋小遊戲
函式實現的基本功能: 1.初始化棋盤:用空字元初始化 2.列印棋盤:控制列印九宮格來表示棋盤 3.玩家下棋:用P表示玩家的棋子 4.電腦隨機下棋:隨機生成座標,用0表示玩家的棋子 5.判斷輸贏:玩家贏,電腦贏,平局,繼續遊戲四種情況 多檔案實現: 測試部分test.
小遊戲——三子棋(C語言實現)
一、遊戲步驟 三子棋的實現其實很簡單,只要思路理清,然後按照步驟一步一步的用程式碼實現就可以了。具體步驟如下: 1、遊戲開始。(列印一個遊戲選單) 2、列印遊戲棋盤。 3、玩家走棋,判斷該座標是否有效,無效,提示重新輸入。有效,列印棋盤;然後判贏,贏,遊戲結束; 4、電腦走棋,列