类五子棋的小游戏(c语言实现)
2008-12-23 19:40
681 查看
需要一些算法才能更智能。。。本着开源的思想希望共同改进。。
#include <stdio.h>
#include <stdlib.h>
char matrix[4][4];
void init_matrix(void);
void disp_matrix(void);
char check(void);
void get_computer_move(void);
void get_player_move(void);
int main(void)
{
char done ;
printf("This is the game is .../n");
printf("You will be playing against the computer./n");
done = ' ';
init_matrix();
do
{
disp_matrix();
get_player_move();
done = check();
if ( done != ' ' ) break;
get_computer_move();
done = check();
}while (done == ' ');
if (done == 'X')
printf("you won!/n");
else
printf("I won!/n");
disp_matrix();
return 0;
}
void init_matrix(void)
{
int i, j;
for (i = 0; i < 4; i++)
for (j = 0; j < 4; j++ )
matrix[i][j] = ' ';
}
void disp_matrix(void)
{
int t;
for (t = 0; t < 4; t++)
{
printf("| %c | %c | %c | %c |",matrix[t][0],matrix[t][1],matrix[t][2],matrix[t][3]);
if (t != 3)
printf("/n|---|---|---|---|/n");
}
printf("/n");
}
void get_player_move(void)
{
int x, y;
printf("Enter X Y coordinates for your move:");
scanf("%d%d",&x,&y);
x--;
y--;
if (matrix[x][y] != ' ')
{
printf("invalid move, try again./n");
get_player_move();
}
else
matrix[x][y] = 'X';
}
void get_computer_move(void)
{
int i, j;
for (i = 0; i < 4; i++)
{
for (j = 0; j < 4; j++)
if (matrix[i][j] == ' ') break;
if (matrix[i][j] == ' ') break;
}
if ( i * j == 9) // max(i) =2 , max(j) == 2
{
printf("draw/n");
exit(0);
}
else
matrix[i][j] = 'O';
}
char check(void)
{
int i;
for (i = 0; i < 4; i++)
if (matrix[i][0] == matrix[i][1]&& matrix[i][0] == matrix[i][2]&&matrix[i][0] == matrix[i][3])
return matrix[i][0];
for(i = 0; i < 4; i++)
if (matrix[0][i] == matrix[1][i]&&matrix[0][i] == matrix[2][i] && matrix[0][i] == matrix[3][i])
return matrix[0][i];
if (matrix[0][0] == matrix[1][1]&&matrix[1][1] == matrix[2][2]&&matrix[2][2] == matrix[3][3])
return matrix[0][0];
if (matrix[0][3] == matrix[1][2]&&matrix[1][2] == matrix[2][1]&&matrix[2][1]== matrix[3][0])
return matrix[0][2];
return ' ';
}
#include <stdio.h>
#include <stdlib.h>
char matrix[4][4];
void init_matrix(void);
void disp_matrix(void);
char check(void);
void get_computer_move(void);
void get_player_move(void);
int main(void)
{
char done ;
printf("This is the game is .../n");
printf("You will be playing against the computer./n");
done = ' ';
init_matrix();
do
{
disp_matrix();
get_player_move();
done = check();
if ( done != ' ' ) break;
get_computer_move();
done = check();
}while (done == ' ');
if (done == 'X')
printf("you won!/n");
else
printf("I won!/n");
disp_matrix();
return 0;
}
void init_matrix(void)
{
int i, j;
for (i = 0; i < 4; i++)
for (j = 0; j < 4; j++ )
matrix[i][j] = ' ';
}
void disp_matrix(void)
{
int t;
for (t = 0; t < 4; t++)
{
printf("| %c | %c | %c | %c |",matrix[t][0],matrix[t][1],matrix[t][2],matrix[t][3]);
if (t != 3)
printf("/n|---|---|---|---|/n");
}
printf("/n");
}
void get_player_move(void)
{
int x, y;
printf("Enter X Y coordinates for your move:");
scanf("%d%d",&x,&y);
x--;
y--;
if (matrix[x][y] != ' ')
{
printf("invalid move, try again./n");
get_player_move();
}
else
matrix[x][y] = 'X';
}
void get_computer_move(void)
{
int i, j;
for (i = 0; i < 4; i++)
{
for (j = 0; j < 4; j++)
if (matrix[i][j] == ' ') break;
if (matrix[i][j] == ' ') break;
}
if ( i * j == 9) // max(i) =2 , max(j) == 2
{
printf("draw/n");
exit(0);
}
else
matrix[i][j] = 'O';
}
char check(void)
{
int i;
for (i = 0; i < 4; i++)
if (matrix[i][0] == matrix[i][1]&& matrix[i][0] == matrix[i][2]&&matrix[i][0] == matrix[i][3])
return matrix[i][0];
for(i = 0; i < 4; i++)
if (matrix[0][i] == matrix[1][i]&&matrix[0][i] == matrix[2][i] && matrix[0][i] == matrix[3][i])
return matrix[0][i];
if (matrix[0][0] == matrix[1][1]&&matrix[1][1] == matrix[2][2]&&matrix[2][2] == matrix[3][3])
return matrix[0][0];
if (matrix[0][3] == matrix[1][2]&&matrix[1][2] == matrix[2][1]&&matrix[2][1]== matrix[3][0])
return matrix[0][2];
return ' ';
}
相关文章推荐
- 小游戏——贪吃蛇(c语言实现)
- 实现语言C语言简单实现五子棋
- java语言,c语言,五子棋的实现(键盘输入坐标)。
- C语言,用EGE图形库实现推箱子小游戏
- C语言实现三子棋小游戏
- C语言小游戏—迷宫游戏的实现
- c语言实现的推箱子小游戏-1
- C语言实现的一个简单的猜数小游戏
- C语言实现2048小游戏
- 猜数字小游戏 C语言实现
- 简单c语言小游戏实现原理
- C语言实现小游戏(二)
- 【扫雷】编写一个小游戏--扫雷的c语言实现
- 小项目 : C语言实现三子棋小游戏[拓展为多子棋]
- C语言实现小游戏(一)
- C语言实现2048小游戏
- BlackJack--C语言实现的小游戏的过程总结
- C语言实现简易2048小游戏
- 小项目 : C语言实现扫雷小游戏
- C语言实现五子棋简单功能