C语言:井字棋游戏

阅读: 评论:0

C语言:井字棋游戏

C语言:井字棋游戏

一、头文件

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#define ROW 3
#define COL 3
void InitBoard(char board[ROW][COL]);
void ShowBoard(char board[ROW][COL]);
void Human(char board[ROW][COL]);
void Computer(char board[ROW][COL]);
int Judge(char board[ROW][COL]);

二、游戏

#include"game.h"
void InitBoard(char board[ROW][COL])
{int i = 0;int j = 0;for (i = 0; i < ROW; i++){for (j = 0; j < COL; j++){board[i][j] = ' ';}}
}
void ShowBoard(char board[ROW][COL])
{int i = 0;int j = 0;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 (j = 0; j < COL; j++){printf("___");if (j < COL - 1){printf("|");}}}printf("n");}
}
void Human(char board[ROW][COL])
{int i = 0;int j = 0;printf("your turnn");while (1){printf("input place(1,3):");scanf("%d%d", &i, &j);if ((i > 0 && i <= ROW) && (j > 0 && j <= COL)){if (board[i-1][j-1] != ' '){printf("place fulln");continue;}else{board[i-1][j-1] = '*';break;}}else{printf("input wrongn");}}
}
void Computer(char board[ROW][COL])
{int i = 0;int j = 0;printf("computer turnn");while (1){i = rand() % ROW;j = rand() % COL;if (board[i][j] == ' '){board[i][j] = '+';break;}}
}
int Judge(char board[ROW][COL])
{int i = 0;int j = 0;int h = 0;int c = 0;for (i = 0; i < ROW; i++){for (j = 0,c = 0,h = 0; j < COL; j++){if (board[i][j] == '*'){h++;}if (board[i][j] == '+'){c++;}}if (h == 3){return 1;}if (c == 3){return 2;}}for (j = 0; j < COL; j++){for (i = 0, h = 0, c = 0; i < ROW; i++){if (board[i][j] == '*'){h++;}if (board[i][j] == '+'){c++;}}if (h == 3){return 1;}if (c == 3){return 2;}}for (i = 0, c = 0, h = 0; i < ROW; i++){if (board[i][i] == '*'){h++;}if (board[i][i] == '+'){c++;}}if (h == 3){return 1;}if (c == 3){return 2;}for (i = 0, c = 0, h = 0; i < ROW; i++){if (board[i][ROW-1-i] == '*' ){h++;}if (board[i][ROW-i-1] == '+'){c++;}}if (h == 3){return 1;}if (c == 3){return 2;}for (i = 0,h=0; i < ROW; i++){for (j = 0; j < COL; j++){if (board[i][j] == '*' || board[i][j] == '+'){h++;}}}if (h == ROW * COL){return 0;}
}

三、检测

#include"game.h"
void menu()
{printf("************************n");printf("**********井字棋********n");printf("**1、开始游戏  0、退出**n");printf("************************n");
}void game()
{int ret = 0;srand((unsigned int)time(NULL));char board[ROW][COL] = { 0 };InitBoard(board);ShowBoard(board);//printf("show is okn");while (1){Human(board);ShowBoard(board);ret=Judge(board);if (ret == 1 || ret == 2 || ret == 0 ){break;}Computer(board);ShowBoard(board);ret=Judge(board);if (ret == 1 || ret == 2 || ret == 0){break;}}switch (ret){case 0:printf("pingn");break;case 1:printf("Human winn");break;case 2:printf("Computer winn");break;}
}

本文发布于:2024-02-04 10:08:46,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170704757654629.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:语言   游戏   井字棋
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23