miskson 2 سال پیش
والد
کامیت
2e86597de4
2فایلهای تغییر یافته به همراه91 افزوده شده و 41 حذف شده
  1. 2 2
      hw3/index2.html
  2. 89 39
      hw3/script2.js

+ 2 - 2
hw3/index2.html

@@ -4,10 +4,10 @@
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <title>hw2.2</title>
+    <title>hw3</title>
 </head>
 <body>
-    <h1>Homework 2: part2</h1>
+    <h1>Homework 3</h1>
     <script src="./script2.js"></script>
 </body>
 </html>

+ 89 - 39
hw3/script2.js

@@ -1,7 +1,20 @@
-//while(true) {
+function truncateFraction (number) {
+    try {
+        let strNum = String(number).split('.')
+        if(strNum[1].length > 2) {
+            strNum[1] = strNum[1].slice(0, 2)
+        }
+        return Number(strNum.join('.'))
+    } catch (e) {
+        return number
+    }
+}
+
+var loop = true
+
+while(loop) {
     switch(prompt('input task name:', '')) {
         case 'switch: sizes':
-            //switch: sizes
             let usSize = [
                 {
                     number: [6],
@@ -69,19 +82,10 @@
                     break;
             }
             break;
-
+     
         case 'switch: if':
             let color = prompt("Введите цвет","");
-            // switch (color){
-            //     case "red": document.write("<div style='background-color: red;'>красный</div>");
-            //     case "black": document.write("<div style='background-color: black; color: white;'>черный</div>");
-            //                 break;
-            //     case "blue": document.write("<div style='background-color: blue;'>синий</div>");
-            //     case "green": document.write("<div style='background-color: green;'>зеленый</div>");
-            //                 break;
-            //     default: document.write("<div style='background-color: gray;'>Я не понял</div>");
-            // }
-
+    
             if(color === 'red') {
                 document.write("<div style='background-color: red;'>красный</div>");
                 document.write("<div style='background-color: black; color: white;'>черный</div>");    
@@ -95,8 +99,11 @@
             } else {
                 document.write("<div style='background-color: gray;'>Я не понял</div>");
             }
+            alert('aborting execution to make changes. Reload page to return to select mode')
+            loop = false
+            
             break;
-
+    
         case 'prompt: or':
             let age = prompt('Введите свой возраст', '') || alert('Вы не ввели ничего!')
             if (age && isNaN(age) || age > 200 || age < 0){
@@ -107,7 +114,7 @@
                 alert(`Исходя из введенного вами возраста вы родились в ${res}г. либо ${res-1}г.`)
             }
             break;
-
+    
         case 'confirm: or this days':
             confirm('шоппинг') || alert('ты-бяка')
             break;
@@ -117,26 +124,26 @@
                 alert('ты-бяка')
             }
             break;
-
+    
         case 'triple prompt':
             let Name = prompt('your Name:','')
             let surname = prompt('your Surname:','')
             let patronymic = prompt('your Patronymic:','')
             alert(`${surname} ${Name} ${patronymic}`)
             break;
-
+    
         case 'default: or':
             let defaultName = prompt('your Name:','') || 'Иван'
             let defaultSurname = prompt('your Surname:','') || 'Иванов'
             let defaultPatronymic = prompt('your Patronymic:','')  || 'Иванович'
             alert(`${defaultSurname} ${defaultName} ${defaultPatronymic}`)
             break;
-
+    
         case 'default: if':
             let NameIf = prompt('your Name:','')
             let surnameIf = prompt('your Surname:','')
             let patronymicIf = prompt('your Patronymic:','')
-
+    
             if(NameIf) {
                 NameIf = NameIf
             } else {
@@ -155,7 +162,7 @@
             
             alert(`"if else" to add default values:
             ${surnameIf} ${NameIf} ${patronymicIf}`)
-
+    
             break;
         
         case 'login and password':
@@ -172,18 +179,6 @@
             break;
         
         case 'currency calc':
-            function truncateFraction (number) {
-                try {
-                    let strNum = String(number).split('.')
-                    if(strNum[1].length > 2) {
-                        strNum[1] = strNum[1].slice(0, 2)
-                    }
-                    return Number(strNum.join('.'))
-                } catch (e) {
-                    return number
-                }
-            }
-            
             let curr = prompt('type currency: "eur" or "usd"','')
             let transferLog = {
                 initial: 'hrn',
@@ -207,7 +202,6 @@
             }
             
             if(curr) {
-            
                 // switch(curr.toLowerCase()) {
                 //     case 'eur':
                 //         transferLog.to = 'eur'
@@ -219,7 +213,6 @@
                 //         break;
                 // }
             
-            
                 if(curr.toLowerCase() === 'eur') {
                     transferLog.to = 'eur'
                     confirm('Sell  press "Ok" | Buy press "Cancel"')? transferLog.curr = [transferLog.ratios['sold']['usd'], 'sold'] : transferLog.curr = [transferLog.ratios['bought']['usd'], 'bought']
@@ -231,6 +224,7 @@
                 
                 if(transferLog.to === 'eur' || transferLog.to === 'usd') {
                     transferLog.money = prompt('input amount of money to give', '')
+    
                     if(!+transferLog.money) {
                         alert('invalid input')
                     } else {
@@ -242,7 +236,7 @@
                         } else if(transferLog.curr[1] === 'bought') {
                             transferLog.money = truncateFraction(transferLog.given * transferLog.curr[0])
                             transferLog.message = `You've ${transferLog.curr[1]} ${transferLog.money}${transferLog.to} for ${transferLog.given}${transferLog.initial}`
-                        }  
+                        }
                         transferLog.money > 0? alert(transferLog.message) : alert(`Looks like there is too little amount of hrn given to translate to ${transferLog.to}`)
                     }
                 } else {
@@ -252,7 +246,7 @@
                 alert('No input.')
             }
             break;
-
+    
         case 'scissors':
             let combos = {
                 paper: {
@@ -289,11 +283,67 @@
                 alert('user disqualified! Compuer wins!')
             }
             break;
-
+    
+            
+        case 'real data':
+            let currReal = prompt('type currency: "eur" or "usd"','')
+            
+            if(currReal && currReal.toLowerCase() === 'eur' || currReal.toLowerCase() === 'usd') {
+                currReal = currReal.toLowerCase()
+                let sellReal = confirm('Sell  press "Ok" | Buy press "Cancel"')
+                let operationReal = sellReal? 'sold' : 'bought'
+                let givenReal = prompt('input amount of money you give:','')
+                
+                if(givenReal && !isNaN(givenReal)) {
+                    givenReal = truncateFraction(Number(givenReal))
+    
+                    fetch(`https://open.er-api.com/v6/latest/${currReal.toUpperCase()}`).then(res => res.json())
+                        .then(data => {
+                            let got = sellReal ? truncateFraction(givenReal * data.rates.UAH) : truncateFraction(givenReal / data.rates.UAH)
+                            if(got > 0) {
+                                sellReal ? 
+                                    alert(`You've ${operationReal} ${givenReal}${currReal} for ${got}hrn`):
+                                    alert(`You've ${operationReal} ${got}${currReal} for ${givenReal}hrn`)
+                            } else {
+                                alert(`Looks like there is too little amount of money been given to make such operation`)
+                            }
+                        })
+                } else {
+                    alert('invalid input')
+                }
+    
+            } else {
+                alert('invalid input')
+            }
+            break;
+    
+        case 'black belt':
+            let combos2 = {
+                paper: {
+                    conter: 'scissors'
+                },
+                scissors: {
+                    conter: 'rock'
+                },
+                rock: {
+                    conter: 'paper'
+                }
+            }
+            let user2 = prompt('rock, paper, scissors?').toLowerCase()
+            let computer2 = Math.random() >= 0.6 ? 'scissors' : (Math.random() <= 0.3 ? 'paper' : 'rock')
+            alert(`computer: ${computer2}`)
+    
+            user2 === 'rock' || user2 === 'paper' || user2 === 'scissors'? (computer2 === user2? alert('TIE') : combos2[computer2].conter === user2 ? alert('USER WINS.') : alert('COMPUTER WINS.')) : alert('user disqualified! Compuer wins!')
+            
+            break;
+        
+        case null:
+            loop = false
+            break;
+        
         default:
             alert('no matches found:(')
-            break;
     }
-//}
+}