如果我们的走廊有两个平行的镜子怎么办?
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
现在,我们向其照射激光...
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \|
| /|
| / |
哦,看。它反弹到最后,在那里。
如果我们绘制两个相反方向的激光器,该怎么办?
| \ / |
| \ / |
| \/ |
| /\ |
| / \ |
| / \ |
| / \ |
|/ \|
|\ /|
| \ / |
嗯,他们似乎没见面。那很方便 如果两个激光器占用相同的空间会怎样?
| \ / |
| \ / |
| \ / |
| X |
| / \ |
| / \ |
| / \ |
| / \|
|/ /|
|\ / |
我想这很明显,是吗?
手工绘制这些图非常费力(请相信我)。也许有些代码可以为我们做?
- 编写一些代码以输出两个平行反射镜,并带有两个相交的反射激光。
- 输入(所有整数):
- 走廊的宽度
- 走廊的长度
- 右行激光的起始位置(零索引,必须小于宽度)
- 左激光的起始位置(零索引,必须小于宽度)
- 处理
- 如果激光向右移动,则会在下一行向右拖动一个空格。
- 如果剩下一束激光,它将在下一行左侧向左拖动一个空间。
- 如果激光束不能横摆,它将改变方向,但不会改变位置。
- 如果两个激光器的索引相同,请在该索引处打印一个大写字母X。
- 输出量
- 多行字符串
- 每行以竖线字符(|)开始和结束
- 右转激光用反斜杠(\)表示
- 左激光用正斜杠(/)表示
- 两个激光器的交点用大写字母X表示。
- 任何语言
- 我想看一下TIO链接
- 尝试以最小的字节数修复它
测试用例
宽度:6长度:10右行:1左行:4
| \ / |
| \/ |
| /\ |
| / \ |
|/ \|
|\ /|
| \ / |
| \/ |
| /\ |
| / \ |
宽度:6长度:10右移:0左移:1
|\/ |
|/\ |
|\ \ |
| \ \ |
| \ \ |
| \ \|
| \/|
| /\|
| / /|
| / / |
宽度:4长度:10右移:2左移:0
|/ \ |
|\ \|
| \ /|
| X |
| / \|
|/ /|
|\ / |
| X |
|/ \ |
|\ \|
宽度:20长度:5右行:5左行:15
| \ / |
| \ / |
| \ / |
| \ / |
| \ / |
宽度:5长度:6右行:2左行:2
| X |
| / \ |
|/ \|
|\ /|
| \ / |
| X |
宽度:1长度:2右移:0左移:0
|X|
|X|