⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gamemapmake.cpp

📁 利用UDP写的一个双人网上对战的迷宫游戏!VC
💻 CPP
字号:
#include "stdafx.h"
#include "Game.h"
#include "GameMapMake.h"

void Createmaze()
{
	int i,j;
	for(i=0;i<LENTH;i++)
	{
		for(j=0;j<WIDTH;j++)
		{
			map[i][j]=1;
		}
	}

	srand((unsigned)time(NULL));

	i=rand()%LENTH;
	j=rand()%WIDTH;

	map[i][j]=0;

	Drawmaze(i,j);
	Tidymaze();

	for(j=1;j<WIDTH-1;j++)
	{
		if(map[1][j]==0)
		{
			map[0][j]=0;
			break;
		}
	}

	for(j=WIDTH-2;j>0;j--)
	{
		if(map[LENTH-2][j]==0)
		{
			map[LENTH-1][j]=3;
			break;
		}
	}
}

void Drawmaze(int i,int j)
{
	int k,l;
	if
    (
      (map[i][j+1]!=1||map[i][j+2]!=1||map[i+1][j+1]!=1||map[i-1][j+1]!=1||j+1>=WIDTH-1)&&
      (map[i+1][j]!=1||map[i+2][j]!=1||map[i+1][j+1]!=1||map[i+1][j-1]!=1||i+1>=LENTH-1)&&
      (map[i][j-1]!=1||map[i][j-2]!=1||map[i+1][j-1]!=1||map[i-1][j-1]!=1||j-1<=0)&&
      (map[i-1][j]!=1||map[i-2][j]!=1||map[i-1][j+1]!=1||map[i-1][j-1]!=1||i-1<=0)
    )
    {
		map[i][j]=4;
		return;
	}

    k=rand()%4+1;
    l=rand()%4+1;

    switch(k)
    {
      case 1:
		  Turnright(i,j,l);
		  break;
      case 2:
		  Turndown(i,j,l);
		  break;
      case 3:
		  Turnleft(i,j,l);
		  break;
      case 4:
		  Turnup(i,j,l);
    }
}

void Turnright(int i,int j,int l)
{
	if(map[i][j+1]==1&&map[i][j+2]==1&&map[i+1][j+1]==1&&map[i-1][j+1]==1&&j+1<WIDTH-1&&l>0)
    {
		map[i][j+1]=0;
		Turnright(i,j+1,l-1);
	}
    Drawmaze(i,j);
}

void Turndown(int i,int j,int l)
{
	if(map[i+1][j]==1&&map[i+2][j]==1&&map[i+1][j+1]==1&&map[i+1][j-1]==1&&i+1<LENTH-1&&l>0)
	{
		map[i+1][j]=0;
		Turndown(i+1,j,l-1);
	}
    Drawmaze(i,j);
}

void Turnleft(int i,int j,int l)
{
	if(map[i][j-1]==1&&map[i][j-2]==1&&map[i+1][j-1]==1&&map[i-1][j-1]==1&&j-1>0&&l>0)
	{
		map[i][j-1]=0;
		Turnleft(i,j-1,l-1);
	}
    Drawmaze(i,j);
}

void Turnup(int i,int j,int l)
{
	if(map[i-1][j]==1&&map[i-2][j]==1&&map[i-1][j+1]==1&&map[i-1][j-1]==1&&i-1>0&&l>0)
	{
		map[i-1][j]=0;
		Turnup(i-1,j,l-1);
	}
    Drawmaze(i,j);
}

void Tidymaze()
{
	int i,j;
	for(i=0;i<LENTH-1;i++)
	{
		for(j=0;j<WIDTH-1;j++)
		{
			if(map[i][j]!=4) continue;
			map[i][j]=0;
		}
	}
}

int Findway(int i, int j)
{
	int h=0;
	if(map[i+1][j] == 3 && i+1<LENTH)
	{
		map[i][j]=5;
		map[i+1][j]=5;
		return(1);
	}
	if(h==1) return (1);

	if(map[i][j+1] == 0 && j+1<WIDTH)
	{
		map[i][j]=5;
		h=Findway(i,j+1);
	}
	if(h==1) return (1);

	if(map[i+1][j] == 0 && i+1<LENTH)
	{
		map[i][j]=5;
		h=Findway(i+1,j);
	}
	if(h==1) return (1);

	if(map[i][j-1] == 0 && j-1>=0)
	{
		map[i][j]=5;
		h=Findway(i,j-1);
	}
	if(h==1) return (1);

	if(map[i-1][j] == 0 && i-1>=0)
	{
		map[i][j]=5;
		h=Findway(i-1,j);
	}
	if(h==1) return (1);

	map[i][j]=4;
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -