R, (削除) 125 111 (削除ここまで) 111108 bytes
function(x,i,m=array(seq(1:prod(x)),x),n=rbind(m,m,m),o=cbind(n,n,n),p=which(m==i,T)+x-1)o[p[1]+0:2,p[2]+0:2][-5]
14 and 8 bytes golfed by @JayCe and @Mark.
Input is [w, h], i because R populates arrays column first.
Makes the array and then "triples" it row- and column-wise. Then locate i in the original array and find it's neighborhood. Output without i.
R, (削除) 125 (削除ここまで) 111 bytes
function(x,i,m=array(seq(prod(x)),x),n=rbind(m,m,m),o=cbind(n,n,n),p=which(m==i,T)+x-1)o[p[1]+0:2,p[2]+0:2][-5]
14 bytes golfed by @JayCe
Input is [w, h], i because R populates arrays column first.
Makes the array and then "triples" it row- and column-wise. Then locate i in the original array and find it's neighborhood. Output without i.
R, (削除) 125 111 (削除ここまで) 108 bytes
function(x,i,m=array(1:prod(x),x),n=rbind(m,m,m),o=cbind(n,n,n),p=which(m==i,T)+x-1)o[p[1]+0:2,p[2]+0:2][-5]
14 and 8 bytes golfed by @JayCe and @Mark.
Input is [w, h], i because R populates arrays column first.
Makes the array and then "triples" it row- and column-wise. Then locate i in the original array and find it's neighborhood. Output without i.
R, 125(削除) 125 (削除ここまで) 111 bytes
function(x,i,m=array(seq(prod(x)),x),n=rbind(m,m,m),o=cbind(n,n,n),p=which(m==i,T)+x-1,r=o[p[1]:(p[1]+2)o[p[1]+0:2,p[2]p[2]+0:(p[2]+2)])r[2][-5]
1-based.14 bytes golfed by @JayCe
Input is [w, h], i because R populates arrays column first.
Makes the array and then "triples" it row- and column-wise. Then locate i in the original array and find it's neighborhood. Output without i.
R, 125 bytes
function(x,i,m=array(seq(prod(x)),x),n=rbind(m,m,m),o=cbind(n,n,n),p=which(m==i,T)+x-1,r=o[p[1]:(p[1]+2),p[2]:(p[2]+2)])r[-5]
1-based.
Input is [w, h], i because R populates arrays column first.
Makes the array and then "triples" it row- and column-wise. Then locate i in the original array and find it's neighborhood. Output without i.
R, (削除) 125 (削除ここまで) 111 bytes
function(x,i,m=array(seq(prod(x)),x),n=rbind(m,m,m),o=cbind(n,n,n),p=which(m==i,T)+x-1)o[p[1]+0:2,p[2]+0:2][-5]
14 bytes golfed by @JayCe
Input is [w, h], i because R populates arrays column first.
Makes the array and then "triples" it row- and column-wise. Then locate i in the original array and find it's neighborhood. Output without i.
R, 125 bytes
function(x,i,m=array(seq(prod(x)),x),n=rbind(m,m,m),o=cbind(n,n,n),p=which(m==i,T)+x-1,r=o[p[1]:(p[1]+2),p[2]:(p[2]+2)])r[-5]
1-based.
Input is [w, h], i because R populates arrays column first.
Makes the array and then "triples" it row- and column-wise. Then locate i in the original array and find it's neighborhood. Output without i.