Javascript.RU

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

Помогите с практикой!!!!
Все привет! Ребят, прошу вашей помощи, помогите сделать 6 небольших заданий. Помогите кому не сложно) Сегодня вечером должен уже сдать эти задания

1. Генерация массива и запись в таблицу.
Разработать скрипт, позволяющий генерировать массив случайных чисел от
начального до конечного значения. Элементы сгенерированного массива
подставляются в таблицу.
Начальное и конечное значение диапазона записываются в поля и берутся
оттуда при нажатии на кнопку «Сгенерировать».

2. Простой калькулятор.
Разработать скрипт для калькулятора. Форму калькулятора взять из
предыдущей лабораторной.
Что должен делать калькулятор?
1. Ввод значений только при нажатии на кнопки.
2. Выдавать сообщение об ошибке при делении на 0.
3. Нельзя:
- вводить операцию до ввода числа;
- вводить первым числом 0 (функционал можно дополнить работой с
десятичными числами, но сейчас это не так важно);
- вводить 2 операции подряд.
4. По нажатию на кнопку «С» осуществляется сброс всего введённого и
рассчитанного.
5. Может выполняться только 1 операция. Т.е. конструкции типа 2+2+2 и более
сложные можно не реализовывать.


3. Перемещение блока в указанную область.
Разместить на странице блок div с цветной рамкой.
При нажатии на любую область рабочего пространства этот блок должен
перемещаться туда.
Подсказка: почитать про функцию addEventListener.
Получать блок div можно с помощью функции getElementById.

4. Игра «Крестики – нолики».
Внешний вид примерно такой:

Под игровым полем должна быть кнопка «Очистить», а также указание того,
кто сейчас должен сходить.
Например, игрок «Х» сделал ход, значит ходит игрок «0».
В игре должна отлавливаться победа какого – либо из игроков. После победы
выдаётся соответствующее сообщение.

5. Оповещение при прокрутке.
Вы наверняка не раз видели, что на некоторых сайтах при долгой прокрутке
появляется стрелка, при нажатии на которую вас перебрасывает в верхушку
страницы. Мы сделаем что-то подобное, но вместо стрелки при прокрутке на
определённое число пикселей будет появляться окошечко с каким – нибудь
сообщением.
Сообщение должно появляться при прокрутке на 1000 пикселей.

6. Таймер.
Реализовать таймер на js.
Должны быть следующие функции:
- Запуск таймера по кнопке;
- Приостановка таймера по кнопке. При этом нажатие на кнопку запуска после
нажатия на кнопку приостановки должно запустить продолжение работы
таймера.
Усложнять таймер не будем – в коде будет «зашито» кол-во секунд, после
истечения которых должно на экране должен появиться блок <div> с текстом
«Хватит!».
К стилю требований нет. Можно обойтись без них.
Подсказка: setTimeout()
Ответить с цитированием
  #2 (permalink)  
Старый 08.11.2018, 14:03
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

5-е задание
<body style="height:2000px;">
	<div id="mes" style="display:none; position: fixed; border:1px solid red; padding: 20px">Какое-то сообщение
		<button id="cls">X</button>
	</div>
	<script>
		var fl = 1;
window.onscroll = e => {
	if(window.scrollY >= 1000 && fl) {
		mes.style.display = 'block';
		fl = 0;
	}
};
cls.onclick = e => mes.style.display = 'none';
	</script>
Ответить с цитированием
  #3 (permalink)  
Старый 08.11.2018, 14:26
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,705

Цитата:
1. Генерация массива и запись в таблицу.
Разработать скрипт, позволяющий генерировать массив случайных чисел от
начального до конечного значения. Элементы сгенерированного массива
подставляются в таблицу.
Начальное и конечное значение диапазона записываются в поля и берутся
оттуда при нажатии на кнопку «Сгенерировать».
Сколько раз не перечитываю, все никак не могу понять что нужно.
Вроде как дано минимальное и максимальное значения для значения элемента массива, нужно собрать массив случайных чисел в этом диапазоне.
Для решения задачи недостает, как минимум, длины итогового массива, в противном случае решение задачи займет бесконечно много времени.
Если дано начало диапазона и его конец и нужно найти все значения этого диапазона, то недостает значения шага. И вообще в этом случае ни о каком массиве случайных чисел речи быть не может.

В общем вот, я увидел 2 варианта задачи и для каждого из них недостает данных.
Ответить с цитированием
  #4 (permalink)  
Старый 08.11.2018, 14:40
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

3-е задание

<html>

<head>
  <style>
    html,
    body {
      width: 100%;
      height: 100%;
    }

    .block {
      position: absolute;
      width: 100px;
      height: 100px;
      background-color: antiquewhite;
      border: 1px solid rebeccapurple;
      top: 0;
      left: 0;
      transition: all 0.5s;
    }
  </style>
  <script>
    document.addEventListener('DOMContentLoaded', function () {
      var block = document.getElementById('block')
      document.addEventListener('click', function (e) {
        block.style.top = e.y + 'px'
        block.style.left = e.x + 'px'
      })
    })
  </script>
</head>

<body>
  <div id="block" class="block"></div>
</body>

</html>
Ответить с цитированием
  #5 (permalink)  
Старый 08.11.2018, 14:42
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

Сообщение от Nexus Посмотреть сообщение
Сколько раз не перечитываю, все никак не могу понять что нужно.
Вроде как дано минимальное и максимальное значения для значения элемента массива, нужно собрать массив случайных чисел в этом диапазоне.
Для решения задачи недостает, как минимум, длины итогового массива, в противном случае решение задачи займет бесконечно много времени.
Если дано начало диапазона и его конец и нужно найти все значения этого диапазона, то недостает значения шага. И вообще в этом случае ни о каком массиве случайных чисел речи быть не может.

В общем вот, я увидел 2 варианта задачи и для каждого из них недостает данных.
есть два поля x-y и кнопка
генерируется таблица размера x-y в каждой ячейке рандомное число ,)
я как-то так понял...
Ответить с цитированием
  #6 (permalink)  
Старый 08.11.2018, 14:45
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,705

Сообщение от SuperZen
я как-то так понял
Если вы правильно поняли, то диапазон тут явно лишний, его легко заменить самой длиной массива...
Ответить с цитированием
  #7 (permalink)  
Старый 08.11.2018, 14:47
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

Сорри, не туда куда-то смотрел...
тогда таблица будет размером 1 строка на X колонок
Ответить с цитированием
  #8 (permalink)  
Старый 08.11.2018, 14:51
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,705

Задание №1, пост №5:
<div>
	<div>Диапазон</div>
	<input type="number" id="from">
	<input type="number" id="to">
	<div>
		<input type="button" id="generate" value="Генерировать"/>
	</div>
</div>
<table id="table"></table>
<script>
const table=document.getElementById('table');
document.getElementById('generate').addEventListener('click',function(){
	const arrayLength=Math.abs(
		(document.getElementById('from').value||0)-
		(document.getElementById('to').value||0)
	);
	const result=[];

	while(result.length<arrayLength)
		result.push(Math.random());

	const row=document.createElement('tr');
	row.innerHTML=result.map(function(val){
		return '<td>'+val+'</td>';
	}).join('');

	table.appendChild(row);
});
</script>
Ответить с цитированием
  #9 (permalink)  
Старый 08.11.2018, 14:52
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

4-e задание
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>

body{text-align: center;}

div{
	width: 310px;
	height: 100px;
	position: relative;
	margin: auto;
	font-size: 60px;
}
div>div{
	width: 100px;
	height: 100px;
	outline: 1px solid black;
	border: 1px solid black;
	display: block;
	float: left;
}
p{
	font-size: 40px;
	height: 10px;
}
</style>
</head>
<body>
<div><div></div><div></div><div></div></div>
<div><div></div><div></div><div></div></div>
<div><div></div><div></div><div></div></div>
<p>Ходит: X</p>
<button>ИГРАТЬ ЗАНОВО</button>

<p><span>0</span>-Побед X</p>
<p><span>0</span>-Побед O</p>
<p><span>0</span> - Ничья</p>

</body>
<script>
var i = 0, x = 1, 
pol = document.querySelectorAll('div>div'),
res = document.querySelector('p'),
span = document.querySelectorAll('span'),
combo = [[0,1,2],[3,4,5],[6,7,8],[0,3,6],[1,4,7],[2,5,8],[0,4,8],[2,4,6]];

document.querySelector('button').onclick=e=>{
	pol.forEach(el=>{
		el.textContent = '';
		el.style.backgroundColor = 'white';
	});
	i=0; x=1; res.textContent='Ходит: X';
};

function start(e){
	if(x){
		if(e.target.textContent == "") e.target.textContent = i++%2?'O':'X';
		var arrX=[], arrO=[], arrA=[], arrC=[];
		pol.forEach((el,n)=>{
			el.textContent !== ''&& (el.textContent == 'X'?arrX.push(n):arrO.push(n));
			el.textContent !== '' && arrA.push(n);
			el.textContent == '' && arrC.push(n);
		});

		res.textContent = i%2?i==9?'Ничья':'Ходит: O':'Ходит: X';

		if(win(arrX)) {
			res.textContent =  'Победил: X';
			span[0].textContent++; x=0;
			pol.forEach((el,i)=>{
				if(win(arrX).includes(i)) el.style.backgroundColor = 'red';
			});
		}
		else if(win(arrO)) {
			res.textContent =  'Победил: O';
			span[1].textContent++; x=0;
			pol.forEach((el,i)=>{
				if(win(arrO).includes(i)) el.style.backgroundColor = 'green';
			});
		}
		else if(i==9) span[2].textContent++;
	}
}

pol.forEach(el=>el.onclick = start);
var win=(a)=>combo.find(el=>el.every((el)=>a.includes(el)));

</script>
</html>

могу бота дописать если надо.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с функцией .height() kos0760 Элементы интерфейса 2 24.05.2017 23:51
Помогите соединить теорию с практикой slader2654 Общие вопросы Javascript 0 21.06.2016 18:30
переключатель css помогите Алексей777555 Ваши сайты и скрипты 1 06.10.2015 09:34
Помогите! Многоуровневые вкладки! sergeeeeee Элементы интерфейса 2 02.08.2010 23:50
Люди, ПОМОГИТЕ! Bel666 jQuery 11 27.04.2010 15:38