Square rings
Statement
Print a grid containing concentric squares around a center point, with the following rules:
1. Each squares are separated by 1 character from each other.
2. The squares are hollow, one-character thick, and they gradually increase in size, starting from 3x3, to 7x7, 11x11, 15x15, and so on.
3. In the grid, empty spaces are represented by a space character, while spaces occupied by a square are represented by a {{#}}.
3. The program is given the size of the grid ([[width]] and [[height]]) and the coordinates of the center point of the squares ([[x]], [[y]]) as input.
<<Notes:>>
1. The grid coordinates are zero-indexed, meaning that they start at {{(0, 0)}} instead of {{(1, 1)}}.
2. Positive-y values go downwards instead of upwards; the coordinate {{(0, 0)}} represents the top-left corner of the grid.
3. The center of the rings can be located outside the grid!
Input description
Line 1: Two integers [[width]] and [[height]] for the size of the grid.
Line 2: Two integers [[x]] and [[y]] corresponding to the center of the squares.
Output description
[[height]] lines for each row of the grid.
Constraints
0 < [[width]], [[height]] < 128
-128 < [[x]], [[y]] < 128
Game modes
Fastest
Test cases
Simple Test
Input
7 7
3 3
Output
#######
# #
# ### #
# # # #
# ### #
# #
#######
Donut Validator
Input
5 5
2 2
Output
###
# #
###
Asymmetrical Test
Input
8 8
6 3
Output
# #####
# #
# # ###
# # # #
# # ###
# #
# #####
#
Asymmetrical 2 Validator
Input
7 7
2 2
Output
#
### #
# # #
### #
#
######
Rainbow Test
Input
11 6
5 5
Output
###########
# #
# ####### #
# # # #
# # ### # #
# # # # # #
Asymmetrical 3 Validator
Input
14 22
8 9
Output
##############
#############
#
# ###########
# # #
# # ####### #
# # # # #
# # # ### # #
# # # # # # #
# # # ### # #
# # # # #
# # ####### #
# # #
# ###########
#
#############
##############
##############
Off-grid center Test
Input
13 6
3 -4
Output
# # #
######### # #
# #
########### #
#
#############
Off-grid center 2 Validator
Input
11 11
-1 11
Output
###########
#
######### #
# #
####### # #
# # #
##### # # #
# # # #
### # # # #
# # # # #
# # # # # #
Stripes Test
Input
21 11
-5 5
Output
# # # # # # # # # # #
# # # # # # # # # # #
# # # # # # # # # # #
# # # # # # # # # # #
# # # # # # # # # # #
# # # # # # # # # # #
# # # # # # # # # # #
# # # # # # # # # # #
# # # # # # # # # # #
# # # # # # # # # # #
# # # # # # # # # # #
Bars Validator
Input
25 25
12 49
Output
#########################
#########################
#########################
#########################
#########################
#########################
#########################
#########################
#########################
#########################
#########################
#########################
#########################
Large grid Test
Input
40 16
25 8
Output
# # # # # # # # # # # #
# # # # # # # # # ############### # # #
# # # # # # # # # # # # # #
# # # # # # # # # # ########### # # # #
# # # # # # # # # # # # # # # #
# # # # # # # # # # # ####### # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # ### # # # # # #
# # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # ### # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # ####### # # # # #
# # # # # # # # # # # # # # # #
# # # # # # # # # # ########### # # # #
# # # # # # # # # # # # # #
# # # # # # # # # ############### # # #
A very tall "i" Validator
Input
1 31
17 19
Output
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
Almost as much characters as CodinGame would let me have as an output Test
Input
39 25
30 4
Output
# # # # # # # # # # # # # # #
# # # # # # # # # # # # # ####### # #
# # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # ### # # #
# # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # ### # # #
# # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # ####### # #
# # # # # # # # # # # # # # #
# # # # # # # # # # # # ########### #
# # # # # # # # # # # # #
# # # # # # # # # # # ###############
# # # # # # # # # # #
# # # # # # # # # # ##################
# # # # # # # # # #
# # # # # # # # # ####################
# # # # # # # # #
# # # # # # # # ######################
# # # # # # # #
# # # # # # # ########################
# # # # # # #
# # # # # # ##########################
# # # # # #
# # # # # ############################
# # # # #
Exactly as much characters as CodinGame would let me have as an output Validator
Input
76 13
30 4
Output
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # ####### # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # ### # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # ### # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # ####### # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # ########### # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # ############### # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
Random 1 Test
Input
19 41
28 4
Output
# # # # # # # # #
# # # # # # # # #
# # # # # # # # #
# # # # # # # # #
# # # # # # # # #
# # # # # # # # #
# # # # # # # # #
# # # # # # # # #
# # # # # # # # #
# # # # # # # # #
# # # # # # # # #
# # # # # # # # #
# # # # # # # # #
# # # # # # # # #
# # # # # # # # #
# # # # # # # # ##
# # # # # # # #
# # # # # # # ####
# # # # # # #
# # # # # # ######
# # # # # #
# # # # # ########
# # # # #
# # # # ##########
# # # #
# # # ############
# # #
# # ##############
# #
# ################
#
##################
###################
###################
###################
###################
Random 4 Validator
Input
22 42
-30 -53
Output
######################
######################
######################
######################
######################
######################
######################
######################
######################
######################
######################
######################
######################
######################
######################
######################
######################
######################
######################
######################
######################
Random 2 Test
Input
29 33
4 22
Output
#
########################## #
# #
######################## # #
# # #
###################### # # #
# # # #
#################### # # # #
# # # # #
################## # # # # #
# # # # # #
################ # # # # # #
# # # # # # #
############## # # # # # # #
# # # # # # # #
############ # # # # # # # #
# # # # # # # # #
########## # # # # # # # # #
# # # # # # # # # #
####### # # # # # # # # # #
# # # # # # # # # # # #
# ### # # # # # # # # # # #
# # # # # # # # # # # # # #
# ### # # # # # # # # # # #
# # # # # # # # # # # #
####### # # # # # # # # # #
# # # # # # # # # #
########## # # # # # # # # #
# # # # # # # # #
############ # # # # # # # #
# # # # # # # #
############## # # # # # # #
# # # # # # #
Random 5 Validator
Input
38 21
-92 -83
Output
# # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # #
## # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
#### # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # #
###### # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # #
######## # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # #
########## # # # # # # # # # # # # # #
# # # # # # # # # # # # # #
############ # # # # # # # # # # # # #
Random 3 Test
Input
31 28
7 11
Output
################### # # # # # #
# # # # # # #
################# # # # # # # #
# # # # # # # #
############### # # # # # # # #
# # # # # # # # # #
# ########### # # # # # # # # #
# # # # # # # # # # # #
# # ####### # # # # # # # # # #
# # # # # # # # # # # # # #
# # # ### # # # # # # # # # # #
# # # # # # # # # # # # # # # #
# # # ### # # # # # # # # # # #
# # # # # # # # # # # # # #
# # ####### # # # # # # # # # #
# # # # # # # # # # # #
# ########### # # # # # # # # #
# # # # # # # # # #
############### # # # # # # # #
# # # # # # # #
################# # # # # # # #
# # # # # # #
################### # # # # # #
# # # # # #
##################### # # # # #
# # # # #
####################### # # # #
# # # #
Random 6 Validator
Input
26 17
6 19
Output
##########################
#
######################## #
# #
###################### # #
# # #
#################### # # #
# # # #
################## # # # #
# # # # #
################ # # # # #
# # # # # #
############## # # # # # #
# # # # # # #
########### # # # # # # #
# # # # # # # # #
# ####### # # # # # # # #
Solution language
Solution
Stub generator input