2021-03-26

三子棋小游戏(源码如下)

头文件

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define COL 3
#define ROW 3
void boardplay(char board[ROW][COL],int row,int col);
void initiboard(char board[ROW][COL], int row, int col);
void player(char board[ROW][COL], int row, int col);
void computer(char board[ROW][COL], int row, int col);
char judge(char board[ROW][COL], int row, int col);

主函数

#include"game.h"
game() {
	char ret;
	char board[ROW][COL] = { 0 };
	srand((unsigned int)time(NULL));
	initiboard(board, ROW, COL);//初始化棋盘
	boardplay(board,ROW,COL);//打印棋盘
	while (1) {
		player(board, ROW, COL);//玩家走
		boardplay(board, ROW, COL);//打印棋盘
		ret=judge(board, ROW, COL);
			if (ret!='c') {
				break;
			}
		computer(board, ROW, COL);//电脑走
		boardplay(board, ROW, COL);//打印棋盘

		ret = judge(board, ROW, COL);
		if ( ret != 'c') {
			break;
		}
	}
	if (ret == 'n')printf("平局\n");
	if(ret=='*')printf("%c玩家赢\n",ret);
	if (ret == '#')printf("%c电脑赢\n", ret);
}
menu() {
	printf("****************************************\n");
	printf("*********** 1 开始 0 退出***************\n");
	printf("****************************************\n");
}
tect() {
	int sele;
	do {//先输入,在判断
		menu();
		scanf("%d", &sele);
		switch (sele) {
		case 1: {printf("游戏开始\n"); game(); break; }
		case 0: { printf("退出游戏\n"); break; }
		default:printf("输入非法,重新输入\n");
		}
	} while (sele);
}
int main(void) {
	tect();
}

内部函数实现

#include"game.h"
void boardplay(char board[ROW][COL], int row, int col) {
	int i, j, k;
	
	for (i = 0; i < row; i++) {
		for (j = 0; j < col; j++) {
			printf(" %c ", board[i][j]);
			if (j < col - 1) { printf("|"); }
		}
		printf("\n");
		if (i < row - 1) {
			for (k = 0; k < col; k++) {
				printf("---");
				if (k < col - 1) {
					printf("|");
				}
			}
		}
		printf("\n");
	}
}
void initiboard(char board[ROW][COL], int row, int col) {
	int i, j;
	for (i = 0; i < ROW; i++) {
		for (j = 0; j < COL; j++) {
			board[i][j] = ' ';
		}
	}
}
void player(char board[ROW][COL], int row, int col) {
	int x,y;
	
	while (1) {//如果不能满足条件就一直循环
		printf("请输入坐标\n");
		scanf("%d", &x);
		scanf("%d", &y);
		if (board[x-1][y-1] == ' ') {
			board[x-1][y-1] = '*';
			break;
		}
		else printf("坐标非法,重新输入");
		}
	}
void computer(char board[ROW][COL], int row, int col) {
	int x, y;
	printf("电脑走\n");
		while(1){//如果不能满足条件就一直循环
			x = rand() % col;
			y = rand() % col;
			if (board[x][y] == ' ') {
				board[x][y] = '#';
				break;
			}		
	}
}
int isfull(char board[ROW][COL],int row ,int col) {
	int i, j;
	for (i = 0; i < row; i++) {
		for (j = 0; j < col; j++) {
			if (board[i][j] == ' ')
			{

				return 0;
			}
		}
	}
	return 1;
}
char judge(char board[ROW][COL], int row, int col) {
	int i, j;
	for (i = 0; i < row; i++) {
		if (board[i][0] == board[i][1] && board[i][0] == board[i][2] && board[i][0] != ' ') {
			return board[i][0];
		}
	};
	for (j = 0; j < col; j++) {
		if(board[0][j] == board[1][j] && board[0][j] == board[2][j] &&board[0][j]!=' '){
			return board[0][j];
		}
	}
	if (board[0][0] == board[1][1] && board[1][1] == board[2][2] && board[0][0] != ' ')
		return board[1][1];
	if (board[2][0] == board[1][1] && board[2][0] == board[0][2] && board[2][0] != ' ')
		return board[2][0];
	if (1 == isfull(board, ROW, COL)) {
		return 'n';
	}
	return 'c';
}
2021-03-26 20:54:33,596 - Model - INFO - Epoch 1 (1/200): 2021-03-26 20:57:40,380 - Model - INFO - Train Instance Accuracy: 0.571037 2021-03-26 20:58:16,623 - Model - INFO - Test Instance Accuracy: 0.718528, Class Accuracy: 0.627357 2021-03-26 20:58:16,623 - Model - INFO - Best Instance Accuracy: 0.718528, Class Accuracy: 0.627357 2021-03-26 20:58:16,623 - Model - INFO - Save model... 2021-03-26 20:58:16,623 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 2021-03-26 20:58:16,698 - Model - INFO - Epoch 2 (2/200): 2021-03-26 21:01:26,685 - Model - INFO - Train Instance Accuracy: 0.727947 2021-03-26 21:02:03,642 - Model - INFO - Test Instance Accuracy: 0.790858, Class Accuracy: 0.702316 2021-03-26 21:02:03,642 - Model - INFO - Best Instance Accuracy: 0.790858, Class Accuracy: 0.702316 2021-03-26 21:02:03,642 - Model - INFO - Save model... 2021-03-26 21:02:03,643 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 2021-03-26 21:02:03,746 - Model - INFO - Epoch 3 (3/200): 2021-03-26 21:05:15,349 - Model - INFO - Train Instance Accuracy: 0.781606 2021-03-26 21:05:51,538 - Model - INFO - Test Instance Accuracy: 0.803641, Class Accuracy: 0.738575 2021-03-26 21:05:51,538 - Model - INFO - Best Instance Accuracy: 0.803641, Class Accuracy: 0.738575 2021-03-26 21:05:51,539 - Model - INFO - Save model... 2021-03-26 21:05:51,539 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 我有类似于这样的一段txt文件,请你帮我写一段代码来可视化这些训练结果
最新发布
02-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值