Javascript.RU

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

Создание функции
Начал изучать JS, подскажите как создать функцию "выбор правильного окончания", не хочется каждый раз писать в функции "для нажатия кнопки" одно и тоже 3 раза. А заодно и подскажите что неверно в коде, как можно сделать проще и лучше?

<html>

<head>
    <script type="text/javascript">
        var arr = ["Камень", "Ножницы", "Бумага"];//Объявление массива
            var kamen = function(){//Объявление функции для нажатия кнопки камень
            var rand = Math.floor( Math.random() * arr.length );//объявление переменной рандом, равной случайному значению из массива "arr"
            if(arr[rand]=="Бумага")//Выбор правильного окончания выпал/а/и
                var okonchanie="а";
            if(arr[rand]=="Ножницы")//  -//-
                var okonchanie="и";
            if(arr[rand]=="Камень")//  -//-
                var okonchanie="";
            alert('У компьютера выпал' + okonchanie + " " + arr[rand]);//  -//-
                if(arr[rand]=="Камень")//Условие для ничьей
                    alert("Ничья, Камень на Камень");
                if (arr[rand]=="Ножницы")//Условие для победы
                    alert("Вы победили, камень бъёт ножницы");
                if (arr[rand]=="Бумага")//Условие для поражения
                    alert("Вы проиграли, бумага накрывает камень");

        };
            var nojnici = function(){
            var rand = Math.floor( Math.random() * arr.length );
            if(arr[rand]=="Бумага")
                var okonchanie="а";
            if(arr[rand]=="Ножницы")
                var okonchanie="и";
            if(arr[rand]=="Камень")
                var okonchanie="";
            alert('У компьютера выпал' + okonchanie + " " + arr[rand]);
            if(arr[rand]=="Ножницы")
                alert("Ничья, Ножницы на Ножницы");
            if(arr[rand]=="Камень")
                alert("Вы проиграли, Камень бьет Ножницы ");
            if(arr[rand]=="Бумага")
                alert("Вы выйграли, Ножницы режут Бумагу");

        };
            var bumaga = function(){
            var rand = Math.floor( Math.random() * arr.length );
            if(arr[rand]=="Бумага")
                var okonchanie="а";
            if(arr[rand]=="Ножницы")
                var okonchanie="и";
            if(arr[rand]=="Камень")
                var okonchanie="";
            alert('У компьютера выпал' + okonchanie + " " + arr[rand]);
            if(arr[rand]=="Бумага")
                alert("Ничья, Бумага на Бумагу");
            if(arr[rand]=="Ножницы")
                alert("Вы проиграли, Ножницы режут бумагу");
            if(arr[rand]=="Камень")
                alert("Вы выйграли, Бумага накрывает Камень");

        };
    </script>
</head>

<body>
<FORM>
    <INPUT TYPE=button VALUE="Камень" onClick="kamen()";/>
    <INPUT TYPE=button VALUE="Ножницы" onClick="nojnici()";/>
    <INPUT TYPE=button VALUE="Бумага" onClick="bumaga()";/>
</FORM>
</body>

</html>
Ответить с цитированием
  #2 (permalink)  
Старый 07.08.2013, 23:36
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<html>

<head>
    <script type="text/javascript">

//Массив Вариантов:
var arrOut=[];

//Элементы массива Вариантов:
//массив из вариантa результата + ответа компа; 
//0 - Камень; 1 - Ножницы; 2 - Бумага;

arrOut[0]=[0,0,"Ничья, Камень на Камень"];
arrOut[1]=[0,1,"Вы победили, камень бьёт ножницы"];
arrOut[2]=[0,2,"Вы проиграли, бумага накрывает камень"];

arrOut[3]=[1,0,"Вы проиграли, Камень бьет Ножницы"];
arrOut[4]=[1,1,"Ничья, Ножницы на Ножницы"];
arrOut[5]=[1,2,"Вы выиграли, Ножницы режут Бумагу"];

arrOut[6]=[2,0,"Вы выиграли, Бумага накрывает Камень"];
arrOut[7]=[2,1,"Вы проиграли, Ножницы режут бумагу"];
arrOut[8]=[2,2,"Ничья, Бумага на Бумагу"];
    
    
var startFunc = function(items){
//items//То, что Выбрали по кнопке //items=0 - Камень; items=1 - Ножницы;items=2 - Бумага;

var arr0 = [0,1,2]; //Массив выбора компа:

var rand = Math.floor( Math.random() * arr0.length );	//alert(rand)
var strStart = 'У компьютера выпа'			//Начало;
var arr1 = ['л:  Камень','ли: Ножницы','ла: Бумага']; 	//Ответ компа - концовка
var str = strStart + arr1[rand];			//Итоговая строка

alert(str); //Ответ компа;

  var arrNew =[items,rand]; //Массив результата событий;
  
  //Ищем его cоответствие в возможных Вариантах перебором списка arrOut
  
  var otwet = '';
  for(var i=0;i<arrOut.length; i++) {
    if(arrOut[i][0]==arrNew[0]){ //Если Первый элемент в массиве совпал с items

     if(arrOut[i][1]==arrNew[1]){otwet=arrOut[i][2];break;} //Совпали оба элемента;

    }
  }

  alert(otwet);  
}
</script>

</head>

<body>
<FORM>
    <INPUT TYPE=button VALUE="Камень"	onClick="startFunc(0)";/>
    <INPUT TYPE=button VALUE="Ножницы"	onClick="startFunc(1)";/>
    <INPUT TYPE=button VALUE="Бумага"	onClick="startFunc(2)";/>
</FORM>
</body>

</html>

Последний раз редактировалось Deff, 08.08.2013 в 02:43.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание примитива с таким же именем как у уже существующего свойства функции lancer Общие вопросы Javascript 7 29.07.2013 20:23
Динамическое создание функции FINoM Общие вопросы Javascript 15 19.05.2012 15:15
как предотвратить повторное создание функции kichSman jQuery 3 06.09.2011 13:49
arguments вызвавшей функции mister_maxim Общие вопросы Javascript 4 12.10.2010 16:21
создание функции из исходного кода из userscript KOLANICH Общие вопросы Javascript 0 03.08.2010 22:48