Advertisement
dimipan80

Exams - Plane (drawn on JavaScript)

Dec 30th, 2014
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* You will be given an integer N. The width of the rocklq is (3*N).
  2.  The height of the plane is ((N * 3) – (N / 2)) and the width is (N * 3).
  3.  You must print at the console a picture of size N. */
  4.  
  5. "use strict";
  6.  
  7. function draw(args) {
  8.     var n = parseInt(args[0]);
  9.     var width = n * 3;
  10.  
  11.     var outerDots = parseInt((width - 1) / 2);
  12.     console.log("%s*%s", new Array(outerDots + 1).join('.'),
  13.         new Array(outerDots + 1).join('.'));
  14.  
  15.     var innerDots = 1;
  16.     do {
  17.         outerDots -= 1;
  18.         printDotsAndAsterisk(outerDots, innerDots);
  19.         innerDots += 2;
  20.     } while (innerDots <= (n + 2));
  21.  
  22.     outerDots -= 2;
  23.     innerDots += 2;
  24.     do {
  25.         printDotsAndAsterisk(outerDots, innerDots);
  26.         outerDots -= 2;
  27.         innerDots += 4;
  28.     } while (outerDots >= 1);
  29.  
  30.     outerDots = n - 2;
  31.     innerDots = n;
  32.     console.log("*%s*%s*%s*", new Array(outerDots + 1).join('.'),
  33.         new Array(innerDots + 1).join('.'), new Array(outerDots + 1).join('.'));
  34.  
  35.     var middleDots = 1;
  36.     for (var i = 1; i < parseInt(n / 2); i += 1) {
  37.         outerDots -= 2;
  38.         console.log("*%s*%s*%s*%s*%s*", new Array(outerDots + 1).join('.'),
  39.             new Array(middleDots + 1).join('.'), new Array(innerDots + 1).join('.'),
  40.             new Array(middleDots + 1).join('.'), new Array(outerDots + 1).join('.'));
  41.         middleDots += 2;
  42.     }
  43.  
  44.     outerDots = n - 1;
  45.     innerDots = n;
  46.     do {
  47.         printDotsAndAsterisk(outerDots, innerDots);
  48.         outerDots -= 1;
  49.         innerDots += 2;
  50.     } while (outerDots >= 1);
  51.  
  52.     console.log(new Array(width + 1).join('*'));
  53.  
  54.     function printDotsAndAsterisk(outer, inner) {
  55.         console.log("%s*%s*%s", new Array(outer + 1).join('.'),
  56.             new Array(inner + 1).join('.'), new Array(outer + 1).join('.'));
  57.     }
  58. }
  59.  
  60. draw(['5']);
  61. draw(['7']);
  62. draw(['9']);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement