Javascript.RU

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

Скрипт, угадывающий число от 1 до 100.
Новичёк в js, только учу. Просмотрев начальный курс, балуюсь программками мелкими. У кого есть интерес, или кто может помочь, напишите программку которая угадывает число от 1 до 100 (1<num<100) либо (1<=num<=100). Алгоритм:
1. Загадываешь число в уме. // 1<num<100
2. Запускаешь скрипт.
3. Появляется вопрос "Ваше число 57?" // рандомное число от 1 до 100
4. Если ваше число меньше 57, пишешь smaller.
5. Появляется вопрос "Ваше число 32?"
6. Если ваше число больше 32, пишешь bigger.
7. И так пока он не спросит ваше загаданное число, ответом на вопрос будет yes. Обычно цикл из 5-7 вопросов чтобы угадать, зависит от того как работает рандом...

Просто хочу сравнить код опытных разработчиков и свой, может что то интересное, либо новое подчеркнуть...
Написана для ConEmu, желательно увидеть ваш код, без анализа моего, дабы увидеть проблемы, ньюансы, и нейкие решения людей знающих js.
var x, y, r, num, answer;
function myFirstProgramm(x, y) {
	function rnd(x, y){
		r = Math.floor(Math.random() * (y - x)) + x;
		switch(r){
			case x: r++; break;
			case y: r--; break;
		};
		return r;
	};
	do {
		num = rnd(x, y);
		putstr("Your number " + num + "? y/b/s : ");
		answer = readline();
		switch(answer) {
			case "b": x = num; break;
			case "s": y = num; break;
		};
	}
	while (answer != "y") {
		print("Your number " + num + ".");
	};
};
myFirstProgramm(1, 100);
Ответить с цитированием
  #2 (permalink)  
Старый 19.04.2017, 15:06
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от SplaTT
балуюсь программками мелкими. У кого есть интерес, или кто может помочь, напишите программку которая угадывает число от 1 до 100
Баловство заключается в убеждении других делать маленькие задачки?
Ответить с цитированием
  #3 (permalink)  
Старый 19.04.2017, 15:29
Новичок на форуме
Отправить личное сообщение для SplaTT Посмотреть профиль Найти все сообщения от SplaTT
 
Регистрация: 18.04.2017
Сообщений: 6

Сообщение от ksa Посмотреть сообщение
Баловство заключается в убеждении других делать маленькие задачки?
Выучить циклы, методы, объекты функции и тд это одно, а всё это згребсти в кучу и заставить работать - другое. Например на задачку эту у меня ушло часов 4-5 вроде бы и понимаешь как работает, а нет, есть нюансы, короче, кому я объясняю)) Вот и хочу узнать как можно было бы сделать по другому, понять какие либо нюансы в работе моего скрипта и тд, вообщем, кому не лень и кому интересно... Дабы переходить к DOM BOM урокам.
Ответить с цитированием
  #4 (permalink)  
Старый 19.04.2017, 17:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

Сообщение от SplaTT
(1<=num<=100).
function fn(b, d) {
    function e() {
        var a = b + Math.random() * (d + 1 - b) | 0,
            c = prompt("Ваше число " + a + "?", "smaller/bigger/yes");
        "yes" == c ? alert(a + "!!!") : ("bigger" == c && (b = a), "smaller" == c && (d = a), e())
    }
    e()
};
fn(1,100)
Ответить с цитированием
  #5 (permalink)  
Старый 19.04.2017, 18:23
Новичок на форуме
Отправить личное сообщение для SplaTT Посмотреть профиль Найти все сообщения от SplaTT
 
Регистрация: 18.04.2017
Сообщений: 6

Сообщение от рони Посмотреть сообщение
function fn(b, d) {
    function e() {
        var a = b + Math.random() * (d + 1 - b) | 0,
            c = prompt("Ваше число " + a + "?", "smaller/bigger/yes");
        "yes" == c ? alert(a + "!!!") : ("bigger" == c && (b = a), "smaller" == c && (d = a), e())
    }
    e()
};
fn(1,100)
24 против 9 строк, а смысл тотже.
Забавная штука программирование)) Спасибо!
Ответить с цитированием
  #6 (permalink)  
Старый 19.04.2017, 18:53
Новичок на форуме
Отправить личное сообщение для SplaTT Посмотреть профиль Найти все сообщения от SplaTT
 
Регистрация: 18.04.2017
Сообщений: 6

Не понял единственного, что обозначает и как называется вот это часть в 3 строке в конце?
| 0
Ответить с цитированием
  #7 (permalink)  
Старый 19.04.2017, 19:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

SplaTT,
замена Math.floor на Побитовое ИЛИ (отрезание дробной части числа)
Ответить с цитированием
  #8 (permalink)  
Старый 19.04.2017, 19:25
Новичок на форуме
Отправить личное сообщение для SplaTT Посмотреть профиль Найти все сообщения от SplaTT
 
Регистрация: 18.04.2017
Сообщений: 6

Сообщение от рони Посмотреть сообщение
SplaTT,
замена Math.floor на Побитовое ИЛИ (отрезание дробной части числа)
Разобрался, спасибо.
Ответить с цитированием
  #9 (permalink)  
Старый 19.04.2017, 19:55
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,672

SplaTT, стоит еще отметить, что побитовые операторы не только обрезают дробную часть, но и обрезают двоичное представление числа до 32 бит, поэтому такое округление актуально только в диапазоне чисел [-2147483648, 2147483647]
Ответить с цитированием
  #10 (permalink)  
Старый 19.04.2017, 20:23
Новичок на форуме
Отправить личное сообщение для SplaTT Посмотреть профиль Найти все сообщения от SplaTT
 
Регистрация: 18.04.2017
Сообщений: 6

Сообщение от Rise Посмотреть сообщение
SplaTT, стоит еще отметить, что побитовые операторы не только обрезают дробную часть, но и обрезают двоичное представление числа до 32 бит, поэтому такое округление актуально только в диапазоне чисел [-2147483648, 2147483647]
Главное я узнал что есть побитовые операторы, а разобраться с в них дело другое. Будем осиливать, спасибо.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему скрипт не работает с данными, которые вернул другой скрипт? Rooner jQuery 3 20.09.2012 14:56
Изменить скрипт Изучаю_JS Общие вопросы Javascript 0 12.02.2012 22:05
Скрипт отслеживающий подгрузку контента на страницу. psqs Events/DOM/Window 2 23.01.2012 21:29
помогите доработать скрипт Medvedoc Javascript под браузер 0 18.10.2011 16:09
А как зделать скрипт, чтобы например скрипт 1 заменялся скриптом 2? yura371 Общие вопросы Javascript 3 06.01.2009 22:40