Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let builder = {
- // Main method for initializing logo rows
- buildLogo: function (number) {
- if (builder.validateNumber(number) === true) {
- let symbols = builder.getSymbols();
- builder.generateTopPart(number, symbols);
- builder.generateBottomPart(number, symbols);
- } else {
- //Throw error message
- console.log('Oops, wrong number value');
- }
- },
- generateTopPart: function (number, symbols) {
- let rowLength = (number + 1) / 2;
- let outerBackground = number;
- let innerForeground = number;
- let middleBackground = number;
- for (let row = rowLength; row > 0; row--) {
- let halfTopPartLogo =
- symbols.background.repeat(outerBackground) + symbols.foreground.repeat(innerForeground) +
- symbols.background.repeat(middleBackground) + symbols.foreground.repeat(innerForeground) +
- symbols.background.repeat(outerBackground);
- console.log(halfTopPartLogo.repeat(2));
- outerBackground--;
- innerForeground += 2;
- middleBackground -= 2;
- }
- },
- generateBottomPart: function (number, symbols) {
- let rowLength = Math.floor((number + 1) / 2);
- let middleBackground = 1;
- let middleForeground = (number * 2) - 1;
- for (let row = rowLength; row > 0; row--) {
- let halfBottomPart =
- symbols.background.repeat(row - 1) + symbols.foreground.repeat(number) +
- symbols.background.repeat(middleBackground) + symbols.foreground.repeat(middleForeground) +
- symbols.background.repeat(middleBackground) + symbols.foreground.repeat(number) + symbols.background.repeat(row - 1);
- console.log(halfBottomPart.repeat(2));
- middleBackground += 2;
- middleForeground -= 2;
- }
- },
- validateNumber: function(number) {
- if (number % 2 !== 0 && number > 2 && number < 10000) {
- return true;
- }
- return false;
- },
- getSymbols: function () {
- return {
- background: '-',
- foreground: '*'
- };
- }
- };
- builder.buildLogo(7);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement