在这里绝对是虚构的乡村,我们有很多好东西,但道路不是很好。有很多洞,只有一半能修好。即使如此,只有一半的修复工作做得很好。你的任务是拥抱这个国家糟糕的道路,并为我画出它们。
您将收到两个正整数作为输入。一个代表道路的长度,第二个代表每个方向的车道数。这条路的长度保证是偶数。
输出或返回一个ASCII-艺术形象的道路上有尽可能多的洞将适合。阅读接下来的两个部分,看看道路和洞应该如何产生。
道路实例:
Road with one lane in both sides:
--------------
==============
--------------
Road with two lanes in both sides:
--------------
- - - - - - -
==============
- - - - - - -
--------------在本例中,我们有14个孔,其中4个孔修复得很差,2个孔被修复得很好:
------------------
OO HH OO
- - - - - - - - -
## OO
- - - - - - - - -
## OO
==================
OO OO
- - - - - - - - -
OO ## HH
- - - - - - - - -
## OO
------------------在这个例子中,我们有9个洞,它不是7的倍数。因此,您要使用的洞池大小为14,包含8 (OO)、4(##)、2(HH)。你可以用它上的任何洞来填路。
------------------
OO OO OO OO OO
==================
OO OO OO ##
------------------另一个角落的例子。道路只能有三个洞。池为7: 4(OO),2(##),1(HH)。同样,任何人都可以使用:
------
##
- - -
##
======
HH
- - -
------发布于 2017-03-24 11:04:02
f=
(w,l)=>[...Array(l*4+1)].map((_,i)=>[...Array(w)].map((_,j)=>i%2?(i>>1)-j&3?` `:s[n%7]+s[n++%7]:i/2%l?`- `:i-l-l?`--`:`==`).join``,n=0,s=`O#OHO#O`).join`\n`<div oninput=o.textContent=f(+w.value,+l.value)><input id=w type=number min=1 value=1><input id=l type=number min=1 value=1><pre id=o>--
OO
==
--发布于 2017-03-24 10:03:18
@echo off
set h=O#OHO#O
set r=
for /l %%i in (1,1,%1)do call set r=--%%r%%
set/an=%2*2-1
for /l %%j in (0,1,%n%)do call:c %1 %2 %%j
echo %r%
exit/b
:c
if %3==0 (echo %r%)else if %3==%2 (echo %r:-==%)else echo %r:--=- %
set s=
for /l %%i in (1,1,%1)do set/an=%3-%%i^&3&call:l
echo(%s%
exit/b
:l
if %n%==3 (set s=%s%%h:~,1%%h:~,1%&set h=%h:~1%%h:~,1%)else set s=%s% https://codegolf.stackexchange.com/questions/113658
复制相似问题