main.js 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  1. //html tree
  2. let body = {
  3. tagName: 'body',
  4. subTags: [
  5. {
  6. tagName: 'div',
  7. subTags: [
  8. {
  9. tagName: 'span',
  10. text: 'Enter a data please: '
  11. },
  12. {
  13. tagName: 'br'
  14. },
  15. {
  16. tagName: 'input',
  17. attrs: {
  18. type: 'text',
  19. id: 'name'
  20. }
  21. },
  22. {
  23. tagName: 'input',
  24. attrs: {
  25. type: 'text',
  26. id: 'surname'
  27. }
  28. }
  29. ]
  30. },
  31. {
  32. tagName: 'div',
  33. subTags: [
  34. {
  35. tagName: 'button',
  36. attrs: {
  37. id: 'ok'
  38. },
  39. text: 'OK'
  40. },
  41. {
  42. tagName: 'button',
  43. attrs: {
  44. id: 'cancel'
  45. },
  46. text: 'Cancel'
  47. },
  48. ]
  49. }
  50. ]
  51. }
  52. body.subTags[1].subTags[1].text
  53. body.subTags[1].subTags[1].attrs.id
  54. //declarative fields
  55. // let laptop = {
  56. // brand: prompt('Enter a brand of the laptop'),
  57. // type: prompt('Enter a type of the laptop'),
  58. // model: prompt('Enter a model of the laptop'),
  59. // ram: +prompt('Enter a ram size of the laptop'),
  60. // size: prompt('Enter a size of the laptop'),
  61. // weight: +prompt('Enter a weight of the laptop'),
  62. // resolution: {
  63. // width: +prompt('Enter a display resolution (width) of the laptop'),
  64. // height: +prompt('Enter a display resolution (height) of the laptop'),
  65. // },
  66. // }
  67. // let phone = {
  68. // brand: prompt('Enter a brand of the phone'),
  69. // model: prompt('Enter a model of the phone'),
  70. // ram: +prompt('Enter a ram size of the phone'),
  71. // color: prompt('Enter a color of the phone'),
  72. // }
  73. // let person = {
  74. // name: prompt('Enter the person\'s name'),
  75. // surname: prompt('Enter the person\'s surname'),
  76. // married: confirm('Is this person married?'),
  77. // }
  78. //object links
  79. // person.laptop = laptop
  80. // person.smartphone = phone
  81. // laptop.owner = person
  82. // phone.owner = person
  83. //imperative array fill 3
  84. // let array = []
  85. // for (let i = 0; i < 3; i++) {
  86. // array[i] = prompt('?')
  87. // }
  88. //while confirm
  89. // let counter = 0
  90. // while (!confirm('Нажмите отмена')){
  91. // counter++
  92. // if (counter == 5) {
  93. // alert('Еще не надоело?')
  94. // }
  95. // };
  96. //array fill
  97. // let zoo = []
  98. // while(true) {
  99. // let newAnimal = prompt('Введите название зверушки')
  100. // if(newAnimal == null) {
  101. // break;
  102. // }
  103. // zoo.push(newAnimal);
  104. // }
  105. //array fill nopush
  106. // let zoo = []
  107. // let i = 0
  108. // while(true) {
  109. // let newAnimal = prompt('Введите название зверушки')
  110. // if(newAnimal == null) {
  111. // break;
  112. // }
  113. // zoo[i] = newAnimal
  114. // i++
  115. // }
  116. //infinite probability
  117. // let counter = 0
  118. // while (true) {
  119. // counter++
  120. // if (Math.random() > 0.9) {
  121. // alert(counter)
  122. // break
  123. // }
  124. // }
  125. //empty loop
  126. // while (prompt('Скинь сотку на карту плез') == null);
  127. //progression sum
  128. // let n = +prompt('До какого числа хотите считать?')
  129. // let sum = 0
  130. // for (let i = 1; i < n; i += 3) {
  131. // sum += i;
  132. // }
  133. // alert(sum)
  134. //chess one line
  135. // let length = prompt ('Укажите длину строки пожалуйста прошу вас')
  136. // let line = '';
  137. // for (let i = 0; i < length; i++) {
  138. // if (i % 2 == 0) {
  139. // line += ' '
  140. // } else {
  141. // line += '#'
  142. // }
  143. // }
  144. // console.log(`"${line}"`)
  145. //numbers
  146. // let string = ''
  147. // for (let i = 0; i < 10; i++) {
  148. // for (let j = 0; j < 10; j++) {
  149. // string += j
  150. // }
  151. // string += '\n'
  152. // }
  153. //chess
  154. // let length = +prompt ('Укажите размер поля (x)')
  155. // let height = +prompt ('Укажите размер поля (y)')
  156. // let line = '';
  157. // for (let i = 0; i < height; i++ ) {
  158. // for (let j = 0; j < length; j++) {
  159. // if (i % 2 == 0) {
  160. // if (j % 2 == 0) {
  161. // line += '.'
  162. // } else {
  163. // line += '#'
  164. // }
  165. // } else {
  166. // if (j % 2 == 0) {
  167. // line += '#'
  168. // } else {
  169. // line += '.'
  170. // }
  171. // }
  172. // }
  173. // line += '\n'
  174. // }
  175. // console.log(line)
  176. //cubes
  177. // let n = +prompt('Сколько элементов в массиве?')
  178. // let arr = [];
  179. // for (let i = 0; i < n; i++) {
  180. // arr[i] = i**3
  181. // }
  182. //multiply table
  183. let multiplyTable = []
  184. for (let i = 0; i <=10; i++) {
  185. multiplyTable[i] = []
  186. for (let j = 0; j <=10; j++) {
  187. multiplyTable[i][j] = i * j
  188. }
  189. }
  190. //matrix to html table
  191. document.write('<table>')
  192. for (let i = 0; i < multiplyTable.length; i++) {
  193. document.write('<tr>')
  194. if (i == 0) {
  195. document.write ('<td>&#9959;</td>')
  196. } else {
  197. document.write('<td>' + i + '</td>')
  198. }
  199. for (let j = 1; j < multiplyTable[i].length; j++) {
  200. if (i == 0) {
  201. document.write('<td>' + multiplyTable[1][j] + '</td>')
  202. } else {
  203. document.write('<td>' + multiplyTable[i][j] + '</td>')
  204. }
  205. }
  206. document.write('</tr>')
  207. }
  208. document.write('</table>')
  209. //Задание на синий пояс: Треугольник
  210. let triangleHeight = +prompt('Высота треугольника: ')
  211. let triangle = ''
  212. for (let i = 0; i < triangleHeight; i ++) {
  213. let row = ''
  214. let dot = ''
  215. let hash = ''
  216. for (let j = triangleHeight - (i + 1); j > 0; j--) {
  217. dot += '.'
  218. }
  219. for (let j = 0; j < 2 * i + 1; j++) {
  220. hash += '#'
  221. }
  222. row += (dot + hash + dot + '\n')
  223. triangle += row;
  224. }
  225. console.log(triangle)
  226. //Задание на черный пояс: Электронная гадалка
  227. //комментарии пишу чисто для себя, чтобы не запутаться
  228. let predictArray = [];
  229. for (let f = 0; f <=1; f++) {
  230. predictArray[f] = [];
  231. for (let u = 0; u <= 1; u++) {
  232. predictArray[f][u] = [];
  233. for (let c = 0; c <= 1; c++) {
  234. predictArray[f][u][c] = [];
  235. for (let k = 0; k <= 1; k++) {
  236. predictArray[f][u][c][k] = -1;
  237. }
  238. }
  239. }
  240. }
  241. let history = [1, 1, 1, 1,]
  242. let points = 0;
  243. let counter = 0;
  244. while (true) {
  245. //Делаем предсказание, выводим его в консоль
  246. if (predictArray[history[0]][history[1]][history[2]][history[3]] === -1) {
  247. console.log('Предсказание гадалки: ' + (predictArray[history[0]][history[1]][history[2]][history[3]] = Math.round(Math.random())))
  248. } else {
  249. console.log('Предсказание гадалки: ' + predictArray[history[0]][history[1]][history[2]][history[3]])
  250. }
  251. //просим пользователя сделать его ход и выводим в консоль
  252. let userNumber = prompt('Введите 0 или 1')
  253. if (userNumber === null || userNumber === '') {
  254. break
  255. }
  256. console.log('Ввод пользователя: ' + userNumber)
  257. counter++
  258. //если предсказание было правдивым, то отнимаем очки у пользователя
  259. if (predictArray[history[0]][history[1]][history[2]][history[3]] == userNumber) {
  260. points--
  261. } else {
  262. points++
  263. }
  264. alert('Ваш счёт: ' + points)
  265. //записываем ввод пользователя в массив предсказаний и в историю
  266. predictArray[history[0]][history[1]][history[2]][history[3]] = +userNumber
  267. history.shift()
  268. history.push(+userNumber)
  269. }
  270. //выводим кол-во набранных (ну или потерянных) очков и кол-во ходов
  271. alert('Количество ходов: ' + counter + '. Ваш счёт: ' + points)