智慧型三子棋小遊戲(簡單 困難模式版)

2021-08-11 13:07:35 字數 2644 閱讀 1599

在編寫三子棋時最好採用中建立專案方式,將原始檔和標頭檔案分開建立

以後標頭檔案放在game.h中就可以在其他原始檔直接呼叫game.h標頭檔案就行

game.h中放的**如下:

#ifndef _game_h_

#define _game_h_

#include#include#include#define row 3

#define col 3

enum ed

;void initboard(char board[row][col],int row,int col);//初始化棋盤函式

void displayboard(char board[row][col],int row,int col);//列印棋盤函式

void competereasy(char board[row][col],int row,int col);//簡單電腦走函式

int competerdiff(char board[row][col],int row,int col);//困難電腦走函式

void competerstartmove(char board[row][col],int row,int col,int input2);//電腦先走函式

void playermove(char board[row][col],int row,int col,int input2);//人先走函式

void competerselect(char board[row][col],int row,int col,int input2);//電腦選擇模式函式

char iswin(char board[row][col],int row,int col); //判斷誰贏函式

#endif

game.c中主要放的是遊戲中所需要的的功能
#define  _crt_secure_no_warnings 1

#include"game.h"

void initboard(char board[row][col],int row,int col)//初始化棋盤

else

}else

}    

}void competerstartmove(char board[row][col],int row,int col,int input2)

playermove(board,row,col);//玩家走

displayboard(board,row,col);

ret = iswin(board,row,col);

if(ret != '#')

}while(ret == '#');

if(ret == 'd')

else if(ret == '*')

else if(ret == 'q')

}void playerstartmove(char board[row][col],int row,int col,int input2)

}competerselect(board,row,col,input2);

displayboard(board,row,col);

ret = iswin(board,row,col);}}

if('*'==ret)

else if('d' == ret)

else if('q'== ret)

}void competerselect(char board[row][col],int row,int col,int input2)//選擇電腦簡單還是困難模式

if(diff == input2)}}

test.c中放的是main函式以及選單的列印和呼叫game.c中功能的函式

#define  _crt_secure_no_warnings 1

#include"game.h"

void menu1()

void menu2()

void menu3()

void game()

;    menu2();

fflush(stdin);

printf("請選擇模式\n");

scanf("%d",&input2);

system("cls");

menu3();

fflush(stdin);

printf("請選擇誰先手\n");

scanf("%d",&input3);

switch(input3)

}void test()

}while(input1);

}int main()

在編寫這個程式時我出現的問題有:

1.每行相等時==寫成了=,這樣判斷值一直有問題;

2.在返回return 'q ' 時,我多給q後面打了乙個空格,然後就會出現邏輯錯誤;

ret = iswin(board,row,col);

} 3.每次列印棋盤都是要判斷是否有人獲勝

4.在你編寫遊戲時,你要一步一步編寫,乙個功能實現後再加另乙個功能,有錯誤了慢慢除錯

小遊戲 三子棋

c語言 實現最簡單的三子棋 無人工智慧,介面簡單,手動輸入座標x x 如下 環境 vs2015 game.h pragma once ifndef game h define game h include include include include define row 3 define col...

三子棋小遊戲

簡單版的三子棋遊戲並不難,就只是運用二維陣列和呼叫各個函式。現在來分析遊戲的思路,首先在螢幕上列印乙個選擇遊戲的選單,這個簡單,就只需要呼叫乙個函式輸出就可以了,玩家選擇開始遊戲就進入遊戲函式,首先要初始化二維陣列,可以用memset 來進行初始化,然後在螢幕上列印出三子棋的棋盤,這個也簡單,知識簡...

三子棋小遊戲

game.h define crt secure no warnings ifndef game h define game h include include include include define rows 3 行數 define cols 3 列數void initboard char ...