You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Exercises.js 1.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. 'use strict'
  2. function makeLine(size, char = '#') {
  3. let str = '';
  4. for (let i = 0; i < size; i++) {
  5. str += char;
  6. }
  7. return str;
  8. }
  9. function makeSquare(size) {
  10. let str = '';
  11. for (let i = 0; i < size; i++) {
  12. str += makeLine(size) + '\n';
  13. }
  14. return str.trim();
  15. }
  16. function makeRectangle(width, height = width) { //height = width zorgt er voor dat de functie ook werkt met maar 1 parameter
  17. let str = '';
  18. for (let i = 0; i < height; i++) {
  19. str += makeLine(width) + '\n';
  20. }
  21. return str.trim();
  22. }
  23. function makeDownwardStairs(size) {
  24. let str = '';
  25. for (let i = 1; i <= size; i++) {
  26. str += makeLine(i) + '\n';
  27. }
  28. return str.trim();
  29. }
  30. function makeSpaceLine(numSpaces, numChars) {
  31. return makeLine(numSpaces, ' ') + makeLine(numChars, '#') + makeLine(numSpaces, ' ');
  32. }
  33. function makeIsoscelesTriangle(height, offset = 0) {
  34. let str = '';
  35. for (let i = 0; i < height; i++) {
  36. str += makeSpaceLine(height - i - 1 + offset, 2 * i + 1) + '\n';
  37. }
  38. return str.trimEnd();
  39. }
  40. function reverseString(str) {
  41. return str.split('').reverse().join('');
  42. }
  43. function makeDiamond(height) {
  44. return makeIsoscelesTriangle(height - 1, 1) + '\n' + reverseString(makeIsoscelesTriangle(height));
  45. }