index.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359
  1. //Дополнительное задание
  2. //Слепить все задания в один текст, таким образом что бы вначале происходил ввод названия задания, а потом с помощью if запускался код конкретного задания
  3. const exercise = +prompt(`Впишите номер задания и нажмите ОК.
  4. 1. Number: odd
  5. 2. String: lexics
  6. 3. Boolean, Boolean: if
  7. 4. Comparison: sizes
  8. 5. Ternary
  9. 6. Prompt: or
  10. 7. Confirm: or this days
  11. 8. Confirm: if this days
  12. 9. Default: or
  13. 10. Default: if
  14. 11. Login and password
  15. 12. Currency exchange
  16. 13. Scissors
  17. 14. Задание на черный пояс
  18. `)
  19. //Number: odd
  20. /* С помощью prompt узнайте число, введенное пользователем. С помощью if проверьте что число корректно преобразовано из строки. В случае ошибки выведите сообщение Выведите четное число или нет, используя if.*/
  21. //вариант 1. Через regexp
  22. //(дополнительно проверяет на пустую строку с любым кол-вом пробелов, реплейс для убирания пробела между занком - и числом, лишнрие пробелы по бокам, меняет запятую на точку в числе и т.д.)
  23. if (exercise === 1){
  24. const str = prompt('введи любое целое число. Положительное, отрицательное или 0');
  25. const regexp = /^(\s*)(-?)(\s*)(\d+)([\.,]?)(\d*)(\s*)$/;
  26. let strReplaced;
  27. if (str !== null) {
  28. strReplaced = +str.replace(regexp, '$2$4.$60');
  29. }
  30. if(!regexp.test(str)){
  31. alert(`ОШИБКА
  32. 1. нажал отмена
  33. 2. ввел пустую строку или строку с пробелами
  34. 3. ввел не целое число
  35. 4. ввел буквы
  36. 5. поставил пробел между цифрами или знаком -`);
  37. } else if (strReplaced === 0){
  38. alert(`
  39. Число "${strReplaced}" чётное!!!!
  40. Дадада. Ты офигеешь но "0" действительно считается чётным числом.
  41. Проверь сам...:
  42. https://uk.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%BD%D1%96%D1%81%D1%82%D1%8C_%D1%87%D0%B8%D1%81%D0%BB%D0%B0_%D0%BD%D1%83%D0%BB%D1%8C
  43. `)
  44. } else if (strReplaced % 2 === 0){
  45. alert(`
  46. Число "${strReplaced}" чётное.
  47. `)
  48. }else{
  49. alert(`
  50. Число "${strReplaced}" не чётное.
  51. `)
  52. };
  53. };
  54. // Вариант 2. Проверка на число
  55. //(не сработает если пользователь введёт пустую строку с пробелами)
  56. /*
  57. let number = prompt('введи число');
  58. if(number !== "" && +number === +number && number !== null){
  59. alert('vse ok');
  60. }else{
  61. alert("balvan")}
  62. */
  63. //вариант 3. Ппроверка на число
  64. //(не сработает если пользователь введёт пустую строку с пробелами)
  65. /*
  66. let number = prompt('введи число');
  67. if(number == "" || isNaN(number) || number == null){
  68. alert('balvan');
  69. }else{
  70. alert("vse ok")}
  71. */
  72. //____________________________________________________
  73. //String: lexics
  74. /*Спросите у пользователя текст, и проверьте его на наличие некорректного слова или нескольких некорректных слов. Используйте метод indexOf (или includes) строки:*/
  75. if (exercise === 2){
  76. const str = prompt('напиши пару предложений, если будешь говорить "блин" я буду ругаться');
  77. if(str.includes("блин")){
  78. alert("я же предупреждал что узнаю!");
  79. }else {
  80. alert("ты молодец");
  81. }
  82. };
  83. //___________________________________________________
  84. //Boolean
  85. //Напишите код, который спрашивает те или иные вопросы с ответом "да"/"нет" с помощью confirm, и сохраняет ответы в переменных.
  86. //Boolean: if
  87. //Расширьте предыдущее задание условиями по полученным переменным условиями (if else). Например, если вы спрашиваете пол пользователя с помощью confirm, то по условию сделайте alert("Вы женщина") и alert("Вы мужчина")
  88. if (exercise === 3){
  89. const gender = confirm('Мужик?');
  90. if(gender){
  91. alert('мужик')
  92. }else{
  93. alert('не мужик')
  94. }
  95. const age = confirm('пенсия?');
  96. if(age){
  97. alert('пенсия')
  98. }else{
  99. alert('не пенсия')
  100. }
  101. const beer = confirm('пиво пьешь?');
  102. if(beer){
  103. alert('как там живот, растёт?')
  104. }else{
  105. alert('спортсмен или больной?')
  106. }
  107. }
  108. //__________________________________________________
  109. //Comparison: sizes
  110. //Сделайте перевод перевод из нашей системы размеров в американскую или любую на выбор. Используйте prompt, условия сравнения и alert.
  111. if (exercise === 4){
  112. const sizeUA = prompt('введи размер верхней одежды, платья, брюк в системе UA (40, 42, 44, .., 54), а я перевду в буквенную USA')
  113. const sizeUSA =
  114. sizeUA < 40 ? "Детский размер" :
  115. sizeUA <= 41 ? "S" :
  116. sizeUA <= 43 ? "M" :
  117. sizeUA <= 47 ? "L" :
  118. sizeUA <= 51 ? "XL" :
  119. sizeUA <= 55 ? "XXL" :
  120. "XXXL или более";
  121. alert(`ваш размер "${sizeUSA}" в системе USA`);
  122. }
  123. //________________________________________________
  124. //Ternary
  125. //Спросите у пользователя пол (confirm). Выведите с помощью alert "Вы мужчина" или "Вы женщина". Используйте тернарный оператор.
  126. if (exercise === 5){
  127. const gender = confirm("мужик? жми ок!");
  128. gender ? alert("хорош!") : alert("не расстраивайся сильно, тебе еще детей рожать");
  129. }
  130. //_________________________________________________
  131. //Prompt: or
  132. //Для задания Number: age используя ИЛИ || вывести сообщение об ошибке (alert) если пользователь не введет возраст или нажмет отмену (т. е. prompt выдаст пустую строку или null, интерпретируемую как false).
  133. if (exercise === 6){
  134. const age = prompt ("введите ваш возраст");
  135. !(age === ""|| isNaN(age) || age === null) || alert('бокопор');
  136. }
  137. //_________________________________________________
  138. //Confirm: or this days
  139. //C помощью этого же трюка (использование ИЛИ для запуска альтернативы) сделайте капризного робота, который в confirm спрашивает "шопинг?", а в случае отказа - выводить alert "ты - бяка".
  140. if (exercise === 7){
  141. const str = confirm ("шопинг?") || alert('бяка')
  142. }
  143. //_________________________________________________
  144. //Confirm: if this days
  145. //Сделать тоже самое с помощью if.
  146. if (exercise === 8){
  147. const shoping = confirm("шопинг?")
  148. if(!shoping) {
  149. alert('бяка');
  150. }
  151. }
  152. //________________________________________________
  153. // Default: or
  154. // Попросите пользователя ввести ФИО в три разныe переменныe. Используя ИЛИ || добавьте строки по умолчанию, которые будут сохраняться во внутренних переменных если пользователь ввел пустую строку или нажал "Отмена". Например, если вы на шаге ввода Фамилии нажмете Escape, фамилия будет "Иванов"
  155. if (exercise === 9){
  156. let name = prompt("Name");
  157. if (name === ""|| name === null || !isNaN(name)){
  158. name = "user";
  159. }
  160. let lastname = prompt('lastname');
  161. if (lastname === ""|| lastname === null || !isNaN(lastname)){
  162. lastname = "usernameov";
  163. }
  164. alert(`${name} ${lastname}`);
  165. }
  166. //________________________________________________
  167. //Default: if
  168. //Сделайте тоже самое с помощью if и else
  169. if (exercise === 10){
  170. let name = prompt( "Name" );
  171. if ( name === "" ){
  172. name = "user";
  173. }else if ( name === null ){
  174. name = "user";
  175. }else if ( !isNaN(name) ){
  176. name = "user";
  177. }
  178. let lastname = prompt( "LastName" );
  179. if ( lastname === "" ){
  180. lastname = "usernameov";
  181. }else if ( lastname === null ){
  182. lastname = "usernameov";
  183. }else if ( !isNaN(lastname) ){
  184. lastname = "usernameov";
  185. }
  186. alert(`${name} ${lastname}`);
  187. }
  188. //Login and password
  189. //Напишите код, который спрашивает логин, проверяет его на верность, в случае если логин верен, просит ввести пароль и проверяет его. В случае несовпадения логина или пароля выводить alert с текстом ошибки. В случае успешного логина - alert с поздравлением. Правильные логин: admin и пароль: qwerty. Используйте вложенные if и else.
  190. if (exercise === 11){
  191. const loginTrue = "admin";
  192. const passTrue = "qwerty";
  193. const login = prompt("login");
  194. if (login !== loginTrue){
  195. alert("Миша всЁ херня, давай по новой")
  196. }else{
  197. const passs = prompt("pass");
  198. if (passs !== passTrue){
  199. alert("если не вспомнишь пароль, тебе никто денег не даст");
  200. }else{
  201. alert("mission complet")
  202. }
  203. }
  204. }
  205. //____________________________________________________
  206. //Currency exchange
  207. /*Попросите пользователя ввести валюту (например, usd, eur, другие валюты добавить по вкусу) с помощью prompt.
  208. Также поинтересуйтесь купить или продать он желает (используйте confirm).
  209. С помощью нескольких if и тернарного оператора внутри каждого из if задайте переменную rate, определяющую курс конкретной валюты на покупку или продажу. Обратите внимание на место объявления переменной rate - она должна быть доступна в коде после всех этих if.
  210. Попросите пользователя ввести сумму на обмен
  211. Посчитайте и выведите результат путем умножения или деления на rate
  212. Дайте возможность пользователю вводить названия валют в любом регистре (UsD, eUR). Для этого в if используйте toUpperCase (или toLowerCase)*/
  213. if (exercise === 12){
  214. let currency = prompt(`введи валюту из спсика:
  215. USD
  216. EUR`);
  217. if (currency !== null) currency = currency.toUpperCase();
  218. const buy = confirm(`покупаете - "OK"
  219. продаете - "Отмена"`);
  220. let rate;
  221. if (currency === "USD"){
  222. buy ? rate = 41 : rate = 39
  223. }
  224. else if (currency === "EUR"){
  225. buy ? rate = 40 : rate = 38
  226. }else{
  227. alert("тебе стоит быть внимательнее, ты ввёл валюту которой у нас нет.")
  228. }
  229. if(rate){
  230. const summ = prompt ("введите сумму");
  231. if(buy){
  232. alert(`вам потребуется ${summ * rate} грн. для покупки`);
  233. }else{
  234. alert(`вы получите ${summ * rate} грн.`);
  235. }
  236. }
  237. }
  238. //______________________________________________________
  239. //Scissors
  240. //Сделайте игру "камень-ножницы-бумага". Пользователь вводит свой вариант через prompt, программа генерирует свой вариант через Math.random() и выводит через alert. Следующий alert выводит имя победителя или "ничья"
  241. if (exercise === 13){
  242. let userMove = prompt('напиши "камень", "ножницы" или "бумага" и посмотрим кто выиграет');
  243. if (userMove !==null) userMove = userMove.toLowerCase()
  244. if(userMove === "камень" || userMove === "ножницы" || userMove === "бумага"){
  245. let pcMove = Math.random() * 3;
  246. pcMove < 1 ? pcMove = "камень" :
  247. pcMove < 2 ? pcMove = "ножницы" :
  248. pcMove = "бумага";
  249. alert(`а у меня ${pcMove}!`);
  250. userMove === pcMove ? alert("ничья!") :
  251. userMove === "камень" && pcMove === "ножницы" ? alert("Ты выиграл :(") :
  252. userMove === "камень" && pcMove === "бумага" ? alert("Бумага круче камня, а ты неудачник!") :
  253. userMove === "ножницы" && pcMove === "камень" ? alert("Твои ножницы перед камнем ничто! отдыхай") :
  254. userMove === "ножницы" && pcMove === "бумага" ? alert("Ты разрезал меня на куски :(") :
  255. userMove === "бумага" && pcMove === "камень" ? alert("Никогда не понимал почему бумага выигрывает у камня :(") :
  256. userMove === "бумага" && pcMove === "ножницы" ? alert("Я разрезал тебя на куски!") : alert (false);
  257. }else{
  258. alert(`ты должен был ввести "камень", "ножницы" или "бумага". Таковы правила!!!!`)
  259. }
  260. }
  261. //________________________________________________
  262. //Задание на черный пояс
  263. //Сделайте игру "камень-ножницы-бумага", как описано выше, пользуясь логическими операциями (&&, ||, !), не используя if. Задание должно быть решено одним выражением
  264. if (exercise === 14){
  265. const userMove = +prompt (`Игра камень, ножницы бумага
  266. для выбора введи цифру и нажми ОК:
  267. 1 - камень
  268. 2 - ножницы
  269. 3 - бумага`)
  270. const pcMove = Math.ceil(Math.random() * 3);
  271. alert( `у меня выпало ${pcMove === 1 ? "камень" : pcMove === 2 ? "ножницы" : "бумага"} `)
  272. alert(
  273. ( ( userMove === 1 && pcMove == 2 || userMove == 2 && pcMove == 3 || userMove == 3 && pcMove == 1) && "победил человек" ) ||
  274. ( ( userMove === 2 && pcMove == 1 || userMove === 3 && pcMove == 2 || userMove === 1 && pcMove == 3) && "победил компьютер" ) ||
  275. "ничья"
  276. )
  277. }
  278. /* console.log(
  279. ((false || false || false) && "человек") ||
  280. ((false || false || false) && "компьютер") ||
  281. "ничья"
  282. )*/