Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.06.2014, 00:11
Профессор
Отправить личное сообщение для Blondinka Посмотреть профиль Найти все сообщения от Blondinka
 
Регистрация: 21.03.2014
Сообщений: 173

Как и где задать цикл?
Добрый день. У меня есть код
<html>
<head>
<script type='text/javascript'>
//Программа для тренировки счёта, позволяющая выбирать количество
//переменных, их разрядность и тип операции.
function start() {//Функция, определяющая программу. Запускается при загрузке страницы.


var varn, n, t, f, th, s, fi, se, te, cont;//Объявление переменных.
n = prompt('Choose the difficulty level by pressing 1, 2, 3, 4, 5, 6 or 7 number button. Then bigger number, then more difficult level you get.', '');

var m = Math.pow(10,n);//Возведение 10 в степень n


f= Math.round(Math.random()* m); //Создание случайного числа (переменной)
th = Math.round(Math.random()* m); //и последующее его преобразование
s = Math.round(Math.random()* m);  //путём умножения на m.
fi = Math.round(Math.random()* m);
se = Math.round(Math.random()* m);
te = Math.round(Math.random()* m);
var operation = prompt('What kind of operation would you like to use?', '');
varn = prompt('How many variables would you like to use? Enter the number of them.','');
switch(varn){//Определение используемой формулы, количества переменных и выводимого текста.
    case '2':
      switch(operation){
           case '+':
           {var t = f+s;//Используемая формула и количество переменных.
            var numbers = [f, s];
            document.write(numbers.join("+"))};
             break;
            
           case '-':
           {var t = f-s;//Используемая формула и количество переменных.
            var numbers = [f, s];
            document.write(numbers.join("-"))};
             break;

           case '*':
           {var t = f*s;//Используемая формула и количество переменных.
            var numbers = [f, s];
            document.write(numbers.join("*"))};
             break;
            
           case '/':
           {var t = f/s;//Используемая формула и количество переменных.
            var numbers = [f, s];
            document.write(numbers.join("/"))};
             break;

                default:
                {var t = f+s;
                 var numbers = [f, s];
                 document.write(numbers.join("+"))};     
    };
    break;

    case '3':
      switch(operation){
           case '+':
           {var t = f+s+th;//Используемая формула и количество переменных.
            var numbers = [f, s, th];
            document.write(numbers.join("+"))};
             break;
            
           case '-':
           {var t = f-s-th;//Используемая формула и количество переменных.
            var numbers = [f, s, th];
            document.write(numbers.join("-"))};
             break;

           case '*':
           {var t = f*s*th;//Используемая формула и количество переменных.
            var numbers = [f, s, th];
            document.write(numbers.join("*"))};
             break;
            
           case '/':
           {var t = f/s/th;//Используемая формула и количество переменных.
            var numbers = [f, s, th];
            document.write(numbers.join("/"))};
             break;         
    
                default:
                {var t = f+s+th;
                 var numbers = [f, s, th];
                 document.write(numbers.join("+"))}; 
    };break;

    case '4':
      switch(operation){
           case '+':
           {var t = f+s+th+fi;//Используемая формула и количество переменных.
            var numbers = [f, s, th, fi];
            document.write(numbers.join("+"))};
             break;
            
           case '-':
           {var t = f-s-th-fi;//Используемая формула и количество переменных.
            var numbers = [f, s, th, fi];
            document.write(numbers.join("-"))};
             break;

           case '*':
           {var t = f*s*th*fi;//Используемая формула и количество переменных.
            var numbers = [f, s, th, fi];
            document.write(numbers.join("*"))};
             break;
            
           case '/':
           {var t = f/s/th/fi;//Используемая формула и количество переменных.
            var numbers = [f, s, th, fi];
            document.write(numbers.join("/"))};
             break;         
    
                default:
                {var t = f+s+th+fi;
                 var numbers = [f, s, th, fi];
                 document.write(numbers.join("+"))}; 
    };break;

    case '5':
      switch(operation){
           case '+':
           {var t = f+s+th+fi+se;//Используемая формула и количество переменных.
            var numbers = [f, s, th, fi, se];
            document.write(numbers.join("+"))};
             break;
            
           case '-':
           {var t = f-s-th-fi-se;//Используемая формула и количество переменных.
            var numbers = [f, s, th, fi, se];
            document.write(numbers.join("-"))};
             break;

           case '*':
           {var t = f*s*th*fi*se;//Используемая формула и количество переменных.
            var numbers = [f, s, th, fi, se];
            document.write(numbers.join("*"))};
             break;
            
           case '/':
           {var t = f/s/th/fi/se;//Используемая формула и количество переменных.
            var numbers = [f, s, th, fi, se];
            document.write(numbers.join("/"))};
             break;         
    
                default:
                {var t = f+s+th+fi+se;
                 var numbers = [f, s, th, fi, se];
                 document.write(numbers.join("+"))};
    };break; 

    case '6':

      switch(operation){
           case '+':
           {var t = f+s+th+fi+se+te;//Используемая формула и количество переменных.
            var numbers = [f, s, th, fi, se, te];
            document.write(numbers.join("+"))};
             break;
            
           case '-':
           {var t = f-s-th-fi-se-te;//Используемая формула и количество переменных.
            var numbers = [f, s, th, fi, se, te];
            document.write(numbers.join("-"))};
             break;

           case '*':
           {var t = f*s*th*fi*se*te;//Используемая формула и количество переменных.
            var numbers = [f, s, th, fi, se, te];
            document.write(numbers.join("*"))};
             break;
            
           case '/':
           {var t = f/s/th/fi/se/te;//Используемая формула и количество переменных.
            var numbers = [f, s, th, fi, se, te];
            document.write(numbers.join("/"))};
             break;         
    
                default:
                {var t = f+s+th+fi+se+te;
                 var numbers = [f, s, th, fi, se, te];
                 document.write(numbers.join("+"))};
    };break; 

    default:
    {var t = f+s;
     var numbers = [f, s];
     document.write(numbers.join("+"));
     break;
    }; 
}

var sum=prompt('Result?', '');//Запрос суммы.
 if(true){setTimeout(perf, 3000)//Правильное решение, функция perf.
    if (sum==t){document.write('='+t+' '+'perfect')}//Правильное решение, функция perf. 
//Выполняет те же функции, что и предыдущая строка, но по 
//отдельности они не работают.
    else{alert('try again');prompt('Last chance.', '')}//Дополнительный запрос решения, в случае неправильного ответа, его отсутствия или невалидности.
               if(true){(unperf)//Запуск функции правильного ответа.
               if (sum==t){perf}//Запуск функции неправильного ответа.
               else{document.write('='+t)}};};
function perf(){document.write('='+t+' '+'perfect')}//Печать решения + perfect.

function unperf(){
document.write('='+t)}//Печать решения.
 }


</script>
</head>
<body onload='start()'>
</body>
</html>



Он работает корректно, но я хочу сделать так, чтоб пользователю не приходилось каждый раз выбирать настройки: вид операции(+,-,*,/), кол-во переменных и длину переменных. Чтоб можно было задать параметры один раз и использовать их, допустим, десять раз. Как это можно сделать, не переписывая код, а лишь дополнив его?

P.S. Если у вас есть какие-нибудь замечания или свои комментарии к коду, пишите. Заранее спасибо)
Ответить с цитированием
  #2 (permalink)  
Старый 10.06.2014, 08:03
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Создать объект, в котором хранить настройки. Если он пуст - заполнять(первый ввод), если заполнен, то брать настройки из объекта. И не забыть кнопку "сброс". А куда - это тебе лучше знать.
Ответить с цитированием
  #3 (permalink)  
Старый 10.06.2014, 15:29
Профессор
Отправить личное сообщение для Blondinka Посмотреть профиль Найти все сообщения от Blondinka
 
Регистрация: 21.03.2014
Сообщений: 173

Спасибо.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как правильно задать цикл wadim Общие вопросы Javascript 4 05.03.2014 21:19
Как подчинить себе цикл wreder jQuery 16 20.11.2013 22:17
как сделать чтобы цикл не запускался второй раз Brook Events/DOM/Window 5 12.05.2013 21:43
Как ввести в поле ввода значение где есть javascript MOZG Общие вопросы Javascript 8 19.04.2013 10:28
Как обработать бесконечный цикл? Iktash Элементы интерфейса 3 16.11.2012 10:26