cpu.c

来自「三子棋」· C语言 代码 · 共 90 行

C
90
字号
/*cpu.c - CPU Moving Copyright (C) 2006 Obada Denis (obadadenis@gmail.com)Project home page : http://tictactoegtk.sourceforge.netThis library is free software; you can redistribute it and/ormodify it under the terms of the GNU Lesser General PublicLicense as published by the Free Software Foundation; eitherversion 2.1 of the License, or (at your option) any later version.This library is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNULesser General Public License for more details.You should have received a copy of the GNU Lesser General PublicLicense along with this library; if not, write to the Free SoftwareFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA*//*Description of Interface :When game need a CPU move it call cpumove() function.Variables to access of function cpumove() :grid[3][3] - array 3x3 of char, contain position of players charscpuchar - type : char, CPU player charusrchar - type : char, Player charImportant :CPU need to make ONE  move of CPU Player*/#ifndef cpu_c#define cpu_c//Codevoid cpumove(void){gint i,j=0;#if debugg_printf("CPU move \n");#endif//Added by Timur Salikhov aka Tim (Tima-S@yandex.ru)for (i=0; i<3; i++) {	if ((grid[i][0]==cpuchar) && (grid[i][1]==cpuchar) && (grid[i][2]==' ')) { j=2; goto CreateMove;}	if ((grid[i][0]==cpuchar) && (grid[i][2]==cpuchar) && (grid[i][1]==' ')) { j=1; goto CreateMove;}	if ((grid[i][2]==cpuchar) && (grid[i][1]==cpuchar) && (grid[i][0]==' ')) { j=0; goto CreateMove;}		if ((grid[0][i]==cpuchar) && (grid[1][i]==cpuchar) && (grid[2][i]==' ')) { j=i; i=2; goto CreateMove;}	if ((grid[0][i]==cpuchar) && (grid[2][i]==cpuchar) && (grid[1][i]==' ')) { j=i; i=1; goto CreateMove;}	if ((grid[2][i]==cpuchar) && (grid[1][i]==cpuchar) && (grid[0][i]==' ')) { j=i; i=0; goto CreateMove;}	}if ((grid[0][0]==cpuchar) && (grid[1][1]==cpuchar) && (grid[2][2]==' ')) { i=2; j=2; goto CreateMove;}if ((grid[2][2]==cpuchar) && (grid[1][1]==cpuchar) && (grid[0][0]==' ')) { i=0; j=0; goto CreateMove;}if ((grid[0][0]==cpuchar) && (grid[2][2]==cpuchar) && (grid[1][1]==' ')) { i=1; j=1; goto CreateMove;}if ((grid[0][2]==cpuchar) && (grid[1][1]==cpuchar) && (grid[2][0]==' ')) { i=2; j=0; goto CreateMove;}if ((grid[2][0]==cpuchar) && (grid[1][1]==cpuchar) && (grid[0][2]==' ')) { i=0; j=2; goto CreateMove;}if ((grid[0][2]==cpuchar) && (grid[2][0]==cpuchar) && (grid[1][1]==' ')) { i=1; j=1; goto CreateMove;}for (i=0; i<3; i++) {	if ((grid[i][0]==usrchar) && (grid[i][1]==usrchar) && (grid[i][2]==' ')) { j=2; goto CreateMove;}	if ((grid[i][0]==usrchar) && (grid[i][2]==usrchar) && (grid[i][1]==' ')) { j=1; goto CreateMove;}	if ((grid[i][2]==usrchar) && (grid[i][1]==usrchar) && (grid[i][0]==' ')) { j=0; goto CreateMove;}		if ((grid[0][i]==usrchar) && (grid[1][i]==usrchar) && (grid[2][i]==' ')) { j=i; i=2; goto CreateMove;}	if ((grid[0][i]==usrchar) && (grid[2][i]==usrchar) && (grid[1][i]==' ')) { j=i; i=1; goto CreateMove;}	if ((grid[2][i]==usrchar) && (grid[1][i]==usrchar) && (grid[0][i]==' ')) { j=i; i=0; goto CreateMove;}	}if ((grid[0][0]==usrchar) && (grid[1][1]==usrchar) && (grid[2][2]==' ')) { i=2; j=2; goto CreateMove;}if ((grid[2][2]==usrchar) && (grid[1][1]==usrchar) && (grid[0][0]==' ')) { i=0; j=0; goto CreateMove;}if ((grid[0][0]==usrchar) && (grid[2][2]==usrchar) && (grid[1][1]==' ')) { i=1; j=1; goto CreateMove;}if ((grid[0][2]==usrchar) && (grid[1][1]==usrchar) && (grid[2][0]==' ')) { i=2; j=0; goto CreateMove;}if ((grid[2][0]==usrchar) && (grid[1][1]==usrchar) && (grid[0][2]==' ')) { i=0; j=2; goto CreateMove;}if ((grid[0][2]==usrchar) && (grid[2][0]==usrchar) && (grid[1][1]==' ')) { i=1; j=1; goto CreateMove;}// End of Tim's code	//If move was not created then move create rand... do {        i=rand()%3;        j=rand()%3;     } while (grid[i][j]!=' ');        CreateMove: //Added by Tim. This label needs by Tim's code.	grid[i][j]=cpuchar;}#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?