Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Камень, ножницы, бумага. (https://javascript.ru/forum/misc/51546-kamen-nozhnicy-bumaga.html)

bes 10.11.2014 22:23

моя версия :)
<p>Камень? Ножницы? Бумага?</p>
<select>
	<option>Не выбрано</option>
	<option>Камень</option>
	<option>Ножницы</option>
	<option>Бумага</option>
</select>

<script>
document.querySelector("select").onchange = function () {
	var rndnubmer = Math.random();

	if ( rndnubmer < 0.34 ) {
		rndnubmer = "Камень";
	} else if ( rndnubmer <= 0.67 ) {
		rndnubmer = "Ножницы";
	} else {
		rndnubmer = "Бумага";
	}
	
	var choice1 = this.options[this.selectedIndex].text;
	var choice2 = rndnubmer;
	
	var mas = [ "Камень", "Бумага", "Ножницы" ]
	var index1 = mas.indexOf(choice1);
	var index2 = mas.indexOf(choice2);
	var dif =  index1 - index2;
	console.log(index1 + " ты - " + choice1 + " : " + index2 + " компьютер - " + choice2);
	
	var result;
	if (dif == 0) {
		result = "Ничья!";
	} else if (dif == 1 || dif == -2) {
		result = choice1 + " : " + choice2 + " - ты победил!";
	} else {
		result = choice1 + " : " + choice2 + " - ты проиграл!";
	}
	console.log(result);
	this.selectedIndex = 0;
}
</script>


<p>Камень? Ножницы? Бумага?</p>
<script>
(function () {
	var mas = [ "Камень", "Бумага", "Ножницы" ];
	
	var select = document.createElement("select");
	select.innerHTML = "<option>Не выбрано</option>"
	for ( var i = 0, len = mas.length; i < len; i++ ) {
		select.innerHTML += "<option>" + mas[i] + "</option>";
	}
	document.body.appendChild(select);
	
	select.onchange = function () {
		var rndnubmer = Math.random();

		if ( rndnubmer < 0.34 ) {
			rndnubmer = "Камень";
		} else if ( rndnubmer <= 0.67 ) {
			rndnubmer = "Ножницы";
		} else {
			rndnubmer = "Бумага";
		}
		
		var choice1 = this.options[this.selectedIndex].text;
		var choice2 = rndnubmer;
		
		var index1 = mas.indexOf(choice1);
		var index2 = mas.indexOf(choice2);
		var dif =  index1 - index2;
		
		var result = choice1 + " : " + choice2;
		if (dif == 0) {
			result += " - Ничья!";
		} else if (dif == 1 || dif == -2) {
			result += " - ты победил!";
		} else {
			result += " - ты проиграл!";
		}
		console.log(result);
		this.selectedIndex = 0;
	}
})();
</script>

рони 11.11.2014 00:35

bes,
:write:
<p>Камень? Ножницы? Бумага?</p>
<select>
	<option>Не выбрано</option>
	<option value=0>Камень</option>
	<option value=1>Ножницы</option>
	<option value=2>Бумага</option>
</select>
<script>
document.querySelector("select").onchange = function() {
    var mas = ["Камень", "Бумага", "Ножницы"]
    var index1 = Math.floor(3 * Math.random());;
    var index2 = this.value;
    var dif = index1 - index2;
    var result;
    if (dif == 0) {
        result = " Ничья!";
    } else if (dif == 1 || dif == -2) {
        result = " - ты победил!";
    } else {
        result = " - ты проиграл!";
    }
    alert(" ты - " + mas[index1] + " :  компьютер - " + mas[index2] + "\n" + result);
    this.selectedIndex = 0;
}
</script>

tsigel 11.11.2014 06:41

рони,
Ну тогда можно еще результирующие условия в тернарные превратить :)

hhh 11.11.2014 10:56

Супер короткий код!

bes 11.11.2014 18:34

Цитата:

Сообщение от рони
var index1 = Math.floor(3 * Math.random());;

рони, да, я чувствовал, что там что-то не так :)


Часовой пояс GMT +3, время: 02:05.