pku 1099

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <map>
#include <set>
#include <string>
#include <cstring>
#include <list>
#include <queue>
#include <stack>
#include <cmath>

using namespace std;

#define PF(x) (scanf("%d",&x))
#define PT(x,y) (scanf("%d%d",&x,&y))
#define PR(x) (printf("%d\n",x))
#define PRT(x,y)(printf("%d %d\n",x,y))
#define PB(x)(scanf("%I64d",&x))
#define PRB(x)(printf("%I64d\n",(x)))
#define For(i,n) for(int i=0;i<(n);i++)
#define CLR(ar) (memset(ar,0,sizeof(ar)))
#define CLR1(ar) (memset(ar,-1,sizeof(ar)))
#define Max(x,y) (x)>(y)?(x):(y)
#define Min(x,y) (x)>(y)?(y):(x)
#define L(x) (x<<1)
#define R(x) ((x<<1)|1)
#define Mid(x,y) ((x+y)>>1)

typedef __int64 LL;
#define N 100005
#define M 105
#define Mod 1000
#define Inf 0x7fffffff

char ar[M][M];
int dist[4][2] ={0,-2,-2,0,0,2,2,0};
int d[4][2] ={0,-1,-1,0,0,1,1,0};
int maps[M][M];

int n,m;

void deal(int x,int y,int var,int mainx,int mainy )
{
	ar[mainx][mainy]='O';
	if(var == 1)
	{
		ar[mainx][mainy-1]='-';
		ar[mainx][mainy-2]='H';
		ar[mainx][mainy+1]='-';
		ar[mainx][mainy+2]='H';
		return ;
	}
	else if(var == -1)
	{
		ar[mainx-1][mainy]=ar[mainx+1][mainy]='|';
		ar[mainx-2][mainy]=ar[mainx+2][mainy]='H';
		return ;
	}
	else
	{
		for(int i=0;i<2;i++)
		{ 
			int dectectx = mainx+dist[i][0];
			int dectecty = mainy+dist[i][1];


			if(dectectx<0 ||dectecty<0||dectectx>=n ||dectecty>=m) 
			{
				dectectx = mainx+dist[i+2][0];
				dectecty = mainy+dist[i+2][1];
				ar[dectectx][dectecty]='H';
				ar[mainx+d[i+2][0]][mainy+d[i+2][1]]= (i==0)?'-':'|';
				continue;
			}
			if(ar[dectectx][dectecty]==' ')
			{
					ar[dectectx][dectecty]='H';
					if(i==0)ar[mainx+d[i][0]][mainy+d[i][1]]='-';
					else ar[mainx+d[i][0]][mainy+d[i][1]]='|';
					
			}
			else
			{
				dectectx = mainx+dist[i+2][0];
				dectecty = mainy+dist[i+2][1];
				ar[dectectx][dectecty]='H';
				ar[mainx+d[i+2][0]][mainy+d[i+2][1]]= (i==0)?'-':'|';
			}
			
		}
	}

}
void init()
{
	int t;
	int k = 1;
	while(scanf("%d",&t)!=EOF && t)
	{
		
		for(int i=1;i<=t;i++)
			for(int j=1;j<=t;j++)
				PF(maps[i][j]);

		n = 5*t-(t-1);
		m = n;
		for(int i=0;i<=n;i++)
			for(int j=0;j<=m;j++)
			{
				if(j==m ) ar[i][j]='\0';
				else ar[i][j]=' ';
			}
		for(int i=1;i<=t;i++)
			for(int j=1;j<=t;j++)
				deal(i,j,maps[i][j],4*(i-1),2+4*(j-1));

		printf("Case %d:\n\n",k++);
		for(int i=-1;i<=n-4;i++)
		{
			if(i==-1 || i== n-4)
			{
				for(int j=0;j<m+2;j++) printf("*");
				printf("\n");
			}
			else
			{
				printf("*");
				printf("%s",ar[i]);
				printf("*\n");
			}
		}
		printf("\n");
	}
	return ;
}

int main()
{
	init();
	return 0;
}



weixin295微信小程序选课系统+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值