本期将我们代码发送给大家,有条件可以运行一下
首先自定义这几个模块,一个存头文件和函数声明之类,一个放功能函数,一个是主函数
负责运行。
game.h以下代码(可以自己写写别的花样)
#pragma once
//文件包含
#define row 3
#define col 3
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
//函数声明
void initboard(char board[][col],int m,int n);
void displayboard(char board[][col], int m, int n);
char Iswhen(char board[][col], int m, int n);
void player(char board[][col],int m,int n);
void computer(char board[][col], int m, int n);
game1,cpp以下代码
//初始化棋盘
#include "game.h"
void initboard(char board[][col], int m, int n)
{
int i, j;
for (i = 0; i < m; i++)
for (j = 0; j < n; j++)
board[i][j] = ' ';
}
//打印棋盘
void displayboard(char board[][col], int m, int n)
{
int i, j;
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
printf(" %c ", board[i][j]);
if (j < n - 1)
printf("|");
}printf("\n");
if(i<m-1)
for (j = 0; j < m; j++)
{
printf("---");
if (j < m - 1)
printf("|");
}printf("\n");
}
}
void player(char board[][col], int m, int n)
{
printf("玩家输入\n");
int x, y; int i, j;
while (1)
{
scanf_s("%d%d", &x, &y);
if (x <= m && y <= n)break;
else printf("重新输入");
}
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
if (x-1 == i && y-1 == j&&board[i][j]==' ')
board[i][j] = '*';
}
}
}
void computer(char board[][col], int m, int n)
{
printf("电脑输入\n");
while (1) {
int x = rand() % m;
int y = rand() % n;
if (board[x][y] == ' ')
{
board[x][y] = '#'; break;
}
}
}
char Iswhen(char board[][col],int m, int n)
{//玩家赢返回*
//电脑赢返回#
//平局返回Q
//没下完返回C
int i, j;
for (i = 0; i < m; i++)
{
if (board[i][0] == board[i][1]&& board[i][1] == board[i][2] && board[i][1] != ' ')
return board[i][0];
}
for (i = 0; i < m; 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[0][0] != ' ')
return board[0][0];
if (board[0][2] == board[1][1]&& board[1][1] == board[2][0] && board[0][2] != ' ')
return board[0][2];
for (i = 0; i < m; i++)
for (j = 0; j < n; j++)
{
if (board[i][j] == ' ')return 'C';
}return 'Q';
}
上面是完成游戏功能的函数,也就是将我们游戏功能分若干模块
主函数代码段是以下:
#include "game.h"
void memu()
{
printf("****************************\n");
printf("****************************\n");
printf("*** 1.玩游戏 ******\n");
printf("*** 2.退出游戏 ******\n");
printf("****************************\n");
printf("****************************\n");
}
void init()
{
char board[row][col]; char n;
initboard(board,row,col);//初始化棋盘
displayboard(board,row,col);//打印棋盘
while (1)
{
//玩家输入
player(board, row, col);
displayboard(board, row, col);//打印棋盘
n=Iswhen(board, row, col);
if (n != 'C')break;
computer(board, row, col);
displayboard(board, row, col);//打印棋盘
n = Iswhen(board, row, col);
if (n != 'C')break;
}
if (n == '*') {
printf("玩家赢\n");
}
else if(n=='#') {
printf("电脑赢\n");
}
else if (n=='Q') {
printf("平局");
}
displayboard(board, row, col);//打印棋盘
}
void main()
{
srand((unsigned int)time(NULL));
int input=0;
memu();
do
{
printf("\n输入信息");
scanf_s("%d", &input);
printf("\n");
switch (input)
{
case 1:init();break;
case 0:printf("退出游戏\n"); break;
default:printf("重新输入\n"); break;
}
} while (input);
system("pause");
}
下面就是游界面
感兴趣的可以下载一个C编译器,下载路径如下:
https://pan.baidu.com/s/1T1t2bK3Drqd1SXrR2uxaeQ
[提取码]:wupq
生活当中我们离不开我们的程序,你无时无刻用它,一部手机也是经过一堆代码来完成相应的
功能 ,更不用说别的,如果你感兴趣对编程,关注我,带你进入编程世界