国家住房建设部网站,如何把自己电脑做网站服务器吗,指数基金排名前十名,营销型企业网站建设策划哈喽大家好#xff0c;今天为大家带来一个用C语言写的小游戏--三子棋#xff0c;就是大家小时候用树枝和石子玩的那种游戏#xff0c;这个小项目可以用于大家的C语言期末设计作业#xff0c;不会很难#xff0c;都是C语言基本的操作
下面是游戏截图#xff1a; 完全可以…哈喽大家好今天为大家带来一个用C语言写的小游戏--三子棋就是大家小时候用树枝和石子玩的那种游戏这个小项目可以用于大家的C语言期末设计作业不会很难都是C语言基本的操作
下面是游戏截图 完全可以应付大家的期末作业话不多说直接上代码
game.c
#define _CRT_SECURE_NO_WARNINGS 1
#include game.hvoid InitBoard(char board[ROW][COL], int row, int col)
{int i 0;for (i 0; i row; i){int j 0;for (j 0; j col; j){board[i][j] ;}}//memset(board[0][0], , row*col*sizeof(board[0][0]));
}void DisplayBoard(char board[ROW][COL], int row, int col)
{int i 0;int j 0;for (i 0; i row; i){int j 0;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 PlayerMove(char board[ROW][COL], int row, int col)
{int x 0;int y 0;printf(玩家下棋:\n);while (1){printf(请输入要下棋的坐标:);scanf(%d %d, x, y);if (x 1 x row y 1 y col){if (board[x - 1][y - 1] ){board[x - 1][y - 1] *;break;}else{printf(坐标被占用重新输入\n);}}else{printf(坐标非法请重新输入\n);}}
}//电脑随机下棋
void ComputerMove(char board[ROW][COL], int row, int col)
{int x 0;int y 0;printf(电脑下棋:\n);while (1){x rand() % row;y rand() % col;if (board[x][y] ){board[x][y] #;break;}}
}int IsFull(char board[ROW][COL], int row, int col)
{int i 0;int j 0;for (i 0; i row; i){for (j 0; j col; j){if (board[i][j] ){return 0;}}}return 1;
}//判断输赢
//玩家赢 - *
//电脑赢 - #
//平局 - Q
//继续 - Cchar IsWin(char board[ROW][COL], int row, int col)
{int i 0;for (i 0; i row; i){if (board[i][0] board[i][1] board[i][1] board[i][2] board[i][0] ! ){return board[i][0];}}for (i 0; i col; i){if (board[0][i] board[1][i] board[1][i] board[2][i] board[0][i] ! ){return board[0][i];}}if (board[0][0] board[1][1] board[1][1] board[2][2] board[1][1] ! ){return board[1][1];}if (board[0][2] board[1][1] board[1][1] board[2][0] board[1][1] ! ){return board[1][1];}//判断是否平局if (IsFull(board, row, col)){return Q;}//游戏继续return C;
}test.c
#define _CRT_SECURE_NO_WARNINGS 1#include game.hvoid menu()
{printf(*******************************\n);printf(******** 1. play ******\n);printf(******** 0. exit ******\n);printf(*******************************\n);
}void game()
{//存放数据需要一个3*3的二维数组char board[ROW][COL] { 0 };//初始化棋盘InitBoard(board, ROW, COL);//显示棋盘DisplayBoard(board, ROW, COL);char ret 0;while (1){//玩家下棋PlayerMove(board, ROW, COL);DisplayBoard(board, ROW, COL);//判断输赢ret IsWin(board, ROW, COL);if (ret ! C){break;}//电脑下棋ComputerMove(board, ROW, COL);DisplayBoard(board, ROW, COL);//判断输赢ret IsWin(board, ROW, COL);if (ret ! C){break;}}if (* ret){printf(玩家赢\n);}else if (# ret){printf(电脑赢\n);}else if (Q ret){printf(平局\n);}
}int main()
{int input 0;srand((unsigned int)time(NULL));do{menu();printf(请选择:);scanf(%d, input);switch (input){case 1:game();break;case 0:printf(退出游戏\n);break;default:printf(选择错误重新选择\n);break;}} while (input);return 0;
}game.h
#pragma once//头文件的包含
#include string.h
#include stdio.h
#include stdlib.h
#include time.h#define ROW 3
#define COL 3//函数的声明//初始化棋盘
void InitBoard(char board[ROW][COL], int row, int col);//打印棋盘
void DisplayBoard(char board[ROW][COL], int row, int col);//玩家下棋
void PlayerMove(char board[ROW][COL], int row, int col);//电脑下棋
void ComputerMove(char board[ROW][COL], int row, int col);//判断输赢
char IsWin(char board[ROW][COL], int row, int col); 以上就是这个小游戏的完整代码不是很难但是也有博主的心血如果有用的话希望大家可以多多点赞多多收藏祝大家都学业有成进入大厂
更多有趣代码锁定我的giteefirst blood: 人类历史上开天辟地的第一步