扫雷的简易制作

#include "game.h"

void eaum()
{
	printf("*****************************\n");
	printf("****** 1.game   0.exit ******\n");
	printf("*****************************\n");
}

void play()
{
	char board[length][width] = { 0 };
	char bombboard[lengths][widths] = { 0 };
	Initboard(board);
	Initbombboard(bombboard);
	checkerboard(board);
	bomb(bombboard);
	player(board, bombboard);
}

void select(int a)
{
	switch (a)
	{
	case Exit:
		printf("退出游戏\n");
		break;
	case games:
		printf("游戏开始\n");
		play();
		break;
	default:
		printf("选项错误,请重新选择\n");
		break;
	}
}

int main()
{
	int a;
	do
	{
		srand((unsigned int)time(NULL));
		eaum();
		printf("请输入你的选择:");
		scanf("%d", &a);
		select(a);
	} while (a);
	return 0;
}
#include "game.h"

void Initboard(char board[length][width])
{
	int x, y;
	for (x = 0; x < length; x++)
	{
		for (y = 0; y < width; y++)
		{
			board[x][y] = '0';
		}
	}
}

void Initbombboard(char bombboard[lengths][widths])
{
	int x, y;
	for (x = 0; x < lengths; x++)
	{
		for (y = 0; y < widths; y++)
		{
			bombboard[x][y] = ' ';
		}
	}
}

void checkerboard(char board[length][width])
{
	int x, y;
	for (x = 0; x <= length; x++)
	{
		printf("%d  ", x);
	}
	printf("\n");
	for (x = 0; x < length; x++)
	{
		printf("%d  ", x + 1);
		for (y = 0; y < width; y++)
		{
			printf("%c ", board[x][y]);
			if (y < width - 1)
			{
				printf("|");
			}
		}
		printf("\n");
		if (x < length - 1)
		{
			printf("  ");
			for (y = 0; y < width; y++)
			{
				printf("---");
			}
			printf("\n");
		}
	}
}

void bomb(char bombboard[lengths][widths])
{
	int x, y;
	int z = MAX;
	while (z)
	{
		x = rand() % length + 1;
		y = rand() % width + 1;
		if (bombboard[x][y] == ' ')
		{
			bombboard[x][y] = '*';
			z--;
		}
	}
}

int move(char bombboard[lengths][widths], int x, int y)
{
	if (bombboard[x][y] == '*')
	{
		return -1;
	}
	else
	{
		int a, b, c = 0;
		for (a = x - 1; a <= x + 1; a++)
		{
			for (b = y - 1; b <= y + 1; b++)
			{
				if (bombboard[a][b] == '*')
				{
					c++;
				}
			}
		}
		return c;
	}
}

void flower(char board[length][width], char bombboard[lengths][widths], int x, int y)
{
	int a, b, c;
	for (a = x - 1; a <= x + 1; a++)
	{
		for (b = y - 1; b <= y + 1; b++)
		{
			if ((a > 0 && b > 0) && (a < lengths-1 && b < widths-1))
			{
				if (bombboard[a][b] != '*' && board[a - 1][b - 1] != ' ')
				{
					c = move(bombboard, a, b);
					if (c != 0)
						board[a - 1][b - 1] = c + '0';
					else
					{
						board[a - 1][b - 1] = ' ';
						flower(board, bombboard, a, b);
					}
				}
			}
		}
	}
}

void player(char board[length][width], char bombboard[lengths][widths])
{
	int x, y, z = 0;
	do
	{
		printf("请输入你的坐标:");
		scanf("%d %d", &x, &y);
		if ((x > 0 && x <= length) && (y > 0 && y <= width))
		{
			if (board[x - 1][y - 1] == '0')
			{
				int c = move(bombboard, x, y);
				if (c == -1)
				{
					board[x - 1][y - 1] = '*';
					checkerboard(board);
					printf("游戏失败\n");
					break;
				}
				else if (c == 0)
				{
					board[x - 1][y - 1] = ' ';
					flower(board, bombboard, x, y);
				}
				else
				{
					board[x - 1][y - 1] = '0' + c;
				}
			}
			else
			{
				printf("坐标重复,请重新输入\n");
			}
		}
		else
		{
			printf("坐标错误,请重新输入\n");
		}
		for (x = 0; x < length; x++)
		{
			for (y = 0; y < width; y++)
			{
				if (board[x][y] == '0')
				{
					z++;
				}
			}
		}
		checkerboard(board);
		if (z == MAX)
		{
			printf("游戏胜利\n");
			break;
		}
	} while (1);
}


#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#pragma once
#define length 9
#define width 9
#define lengths length+2
#define widths width+2
#define MAX 10
enum
{
	Exit,
	games
};
void Initboard(char board[length][width]);
void Initbombboard(char bombboard[lengths][widths]);
void checkerboard(char board[length][width]);
void bomb(char bombboard[lengths][widths]);
void player(char board[length][width], char bombboard[lengths][widths]);

### 回答1: 要制作一个扫雷游戏图片,在Excel中可以通过以下步骤实现: 1. 打开Excel,创建一个新的工作表。 2. 在表格中选择合适的大小,可以根据实际需要自行调整。 3. 使用表格工具栏中的“绘图”功能,在工作表中绘制游戏地图的框架。你可以使用矩形工具来绘制游戏的每个方块。 4. 然后,使用其他绘图工具(如画笔、线条、填充)在方块中绘制雷和数字等游戏元素。可以使用不同的颜色和样式来区分不同类型的方块。 5. 如果需要,可以使用文本工具来添加数字或文字标签,用于显示雷和周围方块中的数字。 6. 当绘制完整的游戏地图后,可以根据自己的喜好进行美化。可以调整方块的大小、颜色、字体样式等等。 总结起来,要制作扫雷游戏图片,你只需要在Excel中利用表格和绘图工具绘制游戏地图的框架,然后使用其他绘图工具绘制游戏元素,如雷和数字。最后,可以美化图片以增加视觉效果。希望这些步骤对你有所帮助! ### 回答2: 要制作Excel中的扫雷游戏,首先需要了解扫雷游戏的基本规则和游戏界面。下面是制作扫雷游戏图片的步骤: 1. 打开Excel并创建一个新的工作表。 2. 使用绘图工具栏上的形状工具,绘制一个正方形或矩形,这将是游戏的主要游戏区域。 3. 在游戏区域中,使用线条工具或形状工具绘制水平和垂直的线条,将游戏区域分割成小方块。这些小方块的数量和大小应根据实际需要进行调整。 4. 在小方块中,使用绘图工具绘制雷的图标。可以使用闪电形状或任何其他形状来表示雷。 5. 使用Excel的插入图片功能,插入不同颜色或图案的旗子图标,用于标记玩家已经发现的雷。 6. 在游戏区域的边缘或其他适当位置,使用绘图工具绘制数字。这些数字将表示相邻方块中的雷的数量。 7. 使用填充颜色或纹理,给游戏区域、雷和数字方格添加一些装饰效果。 8. 可以通过在Excel中添加按钮,为游戏添加重置和退出功能。 9. 最后,根据需要调整游戏区域的大小和比例。 完成上述步骤后,你就可以在Excel中制作一个简单的扫雷游戏图片了。你可以根据实际需要进一步修改和完善游戏界面,添加其他功能,使得游戏更加有趣。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值