#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define R 3
#define C 3
void game_start()
{
printf("#################################################################\n");
printf("#############################开始游戏############################\n");
printf("##请输入: 1/0 \n");
printf("############1.开始 ###################0.结束 ##############\n");
printf("#################################################################\n");
printf("#################################################################\n");
printf("#################################################################\n");
printf("#################################################################\n");
}
void gezi(int x[R][C])
{
int i, j, k;
for (i = 0; i < R; i++)
{
for (j = 0; j < C; j++)
{
if (x[i][j] == 0)
printf(" |");
else if (x[i][j] ==-1)
printf(" * |");
else if (x[i][j]==1)
printf(" # |");
}
printf("\n");
for (k = 0; k < C; k++)
printf("----");
printf("\n");
}
}
void computer(int arr[R][C])
{
srand(time(NULL));
do
{
if (arr[rand() % (R-1)][rand() % (C-1)] == 0 ) //目前有问题
arr[rand() % (R-1)][rand() % (C-1)] = -1;
} while (arr[rand() % (R-1)][rand() % (C-1)] !=0 );
}
void game()
{
int x, y;
int arr[R][C] = { 0 };
do
{
do
{
printf("请输入棋子的坐标:x,y "); scanf("%d%*c%d", &x, &y);
if(arr[x - 1][y - 1] !=0)
printf("这个格子有棋子了\n");
}while (arr[x - 1][y - 1] !=0);
arr[x - 1][y - 1] = 1;
computer(arr);
gezi(arr);
} while (1);
}
int main()
{
int a;
do
{
game_start();
scanf("%d", &a);
} while (a == 0);
game();
}
我是想 让玩家输入# 电脑输入*
创建一个RC的数组初始化为零
1为# -1为
玩家输入这方面可能没啥问题 就是电脑这里我想利用时间戳来给数组的元素值附上-1 然而 我测试出的有时候可能-1的值会替换1的值
我自己不会函数内部的监控 所以找不出来问题
这个程序也没做完 输赢的判定还没做
先解决打印的这个问题吧