Guest User

Untitled

a guest
Jun 21st, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.08 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <script type="text/javascript" src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
  5. <title></title>
  6. <style type="text/css">
  7. body {
  8. margin: 30px;
  9. }
  10. .values {
  11. width: 30px;
  12. float: left;
  13. margin-right:1px;
  14. }
  15. .clear {
  16. clear: both;
  17. }
  18. #hat {
  19. height: 271px;
  20. position: relative;
  21. display: inline;
  22. left: 133px;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <div id="input" style="font-family: 'Arial';">Array's dimensions:
  28. <input type="text" id="dimensions"/>
  29. <button id="submit">submit</button>
  30. </div>
  31. <pre id="output" style="font-family:'Arial';"></pre>
  32.  
  33. <div class="clear"></div>
  34. <script type="text/javascript">
  35. $(function () {
  36. var output = $('#output');
  37. $('#submit').click(function () {
  38. //get the number of subarrays
  39. var dm = $("#dimensions").val();
  40. output.html('');
  41. //generating value input fields
  42. for (i = 0; i < dm; i++) {
  43. for (j = 0; j < dm; j++) {
  44. output.append('<input type="text" class="values"/>');
  45. }
  46. output.append('<div class="clear"></div>');
  47. }
  48. output.append('<button id="submitVal">submit</button>');
  49. $("#submitVal").click(function () {
  50. generateArray(dm);
  51. });
  52. });
  53. //allow dimensions submit by pressing 'ENTER' (keyCode = 13)
  54. $('#dimensions').keypress(function (e) {
  55. if (typeof e == 'undefined' && window.event) {
  56. e = window.event;
  57. }
  58. if (e.keyCode == 13) {
  59. $('#submit').click();
  60. }
  61. });
  62. });
  63. //build array with subarrays
  64. function generateArray(dm) {
  65. var output = $('#output');
  66. var values = $('.values');
  67. var arr = [];
  68. for (i = 0; i < dm; i++) {
  69. var subArr = [];
  70. for (j = 0; j < dm; j++) {
  71. subArr.push(parseInt(values.get(i * dm + j).value));
  72. }
  73. arr.push(subArr);
  74. }
  75. //print array
  76. output.append('<div class="clear"></div>');
  77. output.append("<br>Array: [[" + arr.join("],[") + "]]<br><br>");
  78. //initiate magic
  79. var isMagic = true;
  80. var magicSum = 0;
  81. var sum = 0;
  82.  
  83. //find the sum that makes the square magic
  84. for (c = 0; c < dm; c++) {
  85. magicSum += arr[0][c];
  86. }
  87. //check if every row makes the magic sum
  88. for (r = 1; r < dm; r++) {
  89. for (c = 0; c < dm; c++) {
  90. sum += arr[r][c];
  91. }
  92. if (sum != magicSum) isMagic = false;
  93. sum = 0;
  94. }
  95. //check if every column makes the magic sum
  96. for (c = 0; c < dm; c++) {
  97. for (r = 0; r < dm; r++) {
  98. sum += arr[r][c];
  99. }
  100. if (sum != magicSum) isMagic = false;
  101. sum = 0;
  102. }
  103. //check the sum of the diagonals
  104. for (i = 0; i < dm; i++) {
  105. sum += arr[i][i];
  106. }
  107. if (sum != magicSum) isMagic = false;
  108. sum = 0;
  109. for (i = 0; i < dm; i++) {
  110. sum += arr[i][dm - i - 1];
  111. }
  112. if (sum != magicSum) {
  113. isMagic = false;
  114. }
  115. sum = 0;
  116. //print result
  117. if (isMagic) {
  118. output.append("Abracadabra! It's a magic square!" + '<br><img id="hat" src="http://elizabethfais.files.wordpress.com/2012/04/magic-hat-photo22.jpg">');
  119. } else {
  120. output.append("No magic here!");
  121. }
  122. }
  123. </script>
  124. </body>
  125. </html>
Add Comment
Please, Sign In to add comment