Javascript
function diamond(input) { const blank = " " const full = "*" let output = "" if (input%2 === 0) {return null;} for (let i=1;i<input;i+=2) { spacing = blank.repeat((input-i)/2) output += spacing + full.repeat(i) + spacing + "\n" } output += full.repeat(input) + output.split("").reverse().join("") console.log(output) }
You can change the characters which are considered blank and full to create different effects.
normal output -
* *** ***** ******* ***** *** *
with blank="*" and full="@" -
***@*** **@@@** *@@@@@* @@@@@@@ *@@@@@* **@@@** ***@***
If you mess with the fill/blank values, you get some nice art -
________shaurya________ _______shauryashauryashaurya_______ ______shauryashauryashauryashauryashaurya______ _____shauryashauryashauryashauryashauryashauryashaurya_____ ____shauryashauryashauryashauryashauryashauryashauryashauryashaurya____ ___shauryashauryashauryashauryashauryashauryashauryashauryashauryashauryashaurya___ __shauryashauryashauryashauryashauryashauryashauryashauryashauryashauryashauryashauryashaurya__ _shauryashauryashauryashauryashauryashauryashauryashauryashauryashauryashauryashauryashauryashauryashaurya_ shauryashauryashauryashauryashauryashauryashauryashauryashauryashauryashauryashauryashauryashauryashauryashauryashaurya _ayruahsayruahsayruahsayruahsayruahsayruahsayruahsayruahsayruahsayruahsayruahsayruahsayruahsayruahsayruahs_ __ayruahsayruahsayruahsayruahsayruahsayruahsayruahsayruahsayruahsayruahsayruahsayruahsayruahs__ ___ayruahsayruahsayruahsayruahsayruahsayruahsayruahsayruahsayruahsayruahsayruahs___ ____ayruahsayruahsayruahsayruahsayruahsayruahsayruahsayruahsayruahs____ _____ayruahsayruahsayruahsayruahsayruahsayruahsayruahs_____ ______ayruahsayruahsayruahsayruahsayruahs______ _______ayruahsayruahsayruahs_______ ________ayruahs________
11 111111 1111111111 11111111111111 111111111111111111 1111111111111111111111 11111111111111111111111111 111111111111111111111111111111 1111111111111111111111111111111111 111111111111111111111111111111 11111111111111111111111111 1111111111111111111111 111111111111111111 11111111111111 1111111111 111111 11
>>>> >>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>> >>>>
--> -->-->--> -->-->-->-->--> -->-->-->-->-->-->--> -->-->-->-->-->-->-->-->--> -->-->-->-->-->-->-->-->-->-->--> -->-->-->-->-->-->-->-->-->-->-->-->--> -->-->-->-->-->-->-->-->-->-->-->-->-->-->--> -->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->--> >-->-->-->-->-->-->-->-->-->-->-->-->-->-->-- >-->-->-->-->-->-->-->-->-->-->-->-->-- >-->-->-->-->-->-->-->-->-->-->-- >-->-->-->-->-->-->-->-->-- >-->-->-->-->-->-->-- >-->-->-->-->-- >-->-->-- >--
aaaaaaaaaaaaaaaa-aaaaaaaaaaaaaaaa aaaaaaaaaaaaaa---aaaaaaaaaaaaaa aaaaaaaaaaaa-----aaaaaaaaaaaa aaaaaaaaaa-------aaaaaaaaaa aaaaaaaa---------aaaaaaaa aaaaaa-----------aaaaaa aaaa-------------aaaa aa---------------aa ----------------- aa---------------aa aaaa-------------aaaa aaaaaa-----------aaaaaa aaaaaaaa---------aaaaaaaa aaaaaaaaaa-------aaaaaaaaaa aaaaaaaaaaaa-----aaaaaaaaaaaa aaaaaaaaaaaaaa---aaaaaaaaaaaaaa aaaaaaaaaaaaaaaa-aaaaaaaaaaaaaaaa
********************* ********************* ****************** ****************** *************** *************** ************ ************ ********* ********* ****** ****** *** *** *** *** ****** ****** ********* ********* ************ ************ *************** *************** ****************** ****************** ********************* ********************* ************************ ************************
lallallallallallallallal lallallallallallallallal lallallallallallallal lallallallallallallal lallallallallallal lallallallallallal lallallallallal lallallallallal lallallallal lallallallal lallallal lallallal lallal lallal lal lal lal lal lallal lallal lallallal lallallal lallallallal lallallallal lallallallallal lallallallallal lallallallallallal lallallallallallal lallallallallallallal lallallallallallallal lallallallallallallallal lallallallallallallallal
lalallalallalallalallalallalallalallalal lalallalallalallalallalallalallalallalal lalallalallalallalallalallalallalal lalallalallalallalallalallalallalal lalallalallalallalallalallalal lalallalallalallalallalallalal lalallalallalallalallalal lalallalallalallalallalal lalallalallalallalal lalallalallalallalal lalallalallalal lalallalallalal lalallalal lalallalal lalal lalal lalal lalal lalallalal lalallalal lalallalallalal lalallalallalal lalallalallalallalal lalallalallalallalal lalallalallalallalallalal lalallalallalallalallalal lalallalallalallalallalallalal lalallalallalallalallalallalal lalallalallalallalallalallalallalal lalallalallalallalallalallalallalal lalallalallalallalallalallalallalallalal lalallalallalallalallalallalallalallalal
Did this in rust too:
fn main() { let diamond_size = 17; println!("{}", gen_diamond(diamond_size)); } fn gen_diamond(size: u8) -> String { if size % 2 == 0 || size < 3 { return "i i\nn n\nv p\na u\nl t\ni\nd".to_string(); } let fill = "*"; let blank = " "; let mut output = String::from(""); let mut i = 1; while i <= (size - 2) { let blank_space = blank.repeat(usize::from((size - i) / 2)); let filled_space = fill.repeat(usize::from(i)); let line = format!("{0}{1}{2}\n", &blank_space, &filled_space, &blank_space); output.push_str(&line); i += 2 } output = format!( "{0}{1}{2}", &output, fill.repeat(usize::from(size)), &output.chars().rev().collect::<String>() ); output.to_string() }
On invalid input, it returns -
i i n n v p a u l t i d
Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink.
Hide child comments as well
Confirm
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Javascript
You can change the characters which are considered blank and full to create different effects.
normal output -
with blank="*" and full="@" -
If you mess with the fill/blank values, you get some nice art -
Did this in rust too:
On invalid input, it returns -