1. 程式人生 > >C實現三子棋

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)顯示棋盤
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"); 
}   
(3)電腦走
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)玩家走

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("輸入座標錯誤");
	}
}
(5)判斷輸贏
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 ' ';
}
(6)判斷棋盤是否已滿
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、電腦走棋,列