Как сделать судоку html css js

Как сделать — аккордеон (разборный контент)

Аккордеоны полезны, когда нужно переключаться между скрытием и отображением большого количества содержимого:

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Создание аккордеона

Шаг 1) добавить HTML:

Пример

Шаг 2) добавить CSS:

Пример

/* Style the buttons that are used to open and close the accordion panel */
.accordion <
background-color: #eee;
color: #444;
cursor: pointer;
padding: 18px;
width: 100%;
text-align: left;
border: none;
outline: none;
transition: 0.4s;
>

/* Add a background color to the button if it is clicked on (add the .active class with JS), and when you move the mouse over it (hover) */
.active, .accordion:hover <
background-color: #ccc;
>

/* Style the accordion panel. Note: hidden by default */
.panel <
padding: 0 18px;
background-color: white;
display: none;
overflow: hidden;
>

Шаг 3) добавить JavaScript:

Пример

var acc = document.getElementsByClassName("accordion");
var i;

for (i = 0; i < acc.length; i++) <
acc[i].addEventListener("click", function() <
/* Toggle between adding and removing the "active" class,
to highlight the button that controls the panel */
this.classList.toggle("active");

/* Toggle between hiding and showing the active panel */
var panel = this.nextElementSibling;
if (panel.style.display === "block") <
panel.style.display = "none";
> else <
panel.style.display = "block";
>
>);
>

Анимированный аккордеон (скользить вниз)

Чтобы сделать анимированный аккордеон, Add max-height: 0 overflow: hidden и a transition для свойства Max-Height, в panel класс.

Затем используйте JavaScript для понижения содержания, установив вычисляемый, в max-height зависимости от высоты панели на различных размерах экрана:

Пример

<style>
.panel <
padding: 0 18px;
background-color: white;
max-height: 0;
overflow: hidden;
transition: max-height 0.2s ease-out;
>
</style>

<script>
var acc = document.getElementsByClassName("accordion");
var i;

for (i = 0; i < acc.length; i++) <
acc[i].addEventListener("click", function() <
this.classList.toggle("active");
var panel = this.nextElementSibling;
if (panel.style.maxHeight) <
panel.style.maxHeight = null;
> else <
panel.style.maxHeight = panel.scrollHeight + "px";
>
>);
>
</script>

Добавить значки

Добавьте символ к каждой кнопке, чтобы указать, является ли складное содержимое открытым или закрытым:

Пример

.accordion:after <
content: ‘\02795’; /* Unicode character for "plus" sign (+) */
font-size: 13px;
color: #777;
float: right;
margin-left: 5px;
>

.active:after <
content: "\2796"; /* Unicode character for "minus" sign (-) */
>

Судоку в JS и HTML годах

Я пытаюсь случайным образом заполнить 2-мерный массив в JS, но я хочу, чтобы числа, сгенерированные в каждой строке и столбце, были unique.Here-это мой progression.This может сделать это для сетки 3×3, я имею в виду случайно сгенерированные числа, но я хочу размер 9×9, как настоящий sudoku.Thanx.

4 ответа

Поворот в классическом решателе судоку , с которым я недавно столкнулся, — это (довольно сумасшедший) inequality судоку , который является вашей классической головоломкой судоку с добавленным поворотом, что есть inequality условий, добавленных в каждую коробку. Теперь мне удалось вычеркнуть.

Я создаю игру судоку для удовольствия, написанную в Javascript году. Все работает нормально, плата генерируется полностью с одним решением каждый раз. Моя единственная проблема , и это то, что удерживает меня от публикации моего проекта , заключается в том , что я не знаю, как оценивать свои доски.

Я бы рассмотрел другой подход.

Создайте простую доску судоку, которая выглядит так, как показано ниже, в основном сдвигая первую строку на 3 позиции вправо (каждые 3 строки ).

Назовите выше базовую доску судоку.

Теперь вы можете перетасовать столбцы и строки и по-прежнему иметь законное формирование доски судоку. Но тебе нужно быть осторожным. Назовем строки 1-3 rowblock1, строки 4-6 rowblock2 и последние 3 строки rowblock 3. То же самое касается колонок. Мы можем поменять местами блоки строк с другими блоками строк, и мы можем поменять местами блоки столбцов с другими блоками столбцов, и у нас все еще есть набор инвариантов судоку.

Вы можете поменять местами столбцы в одном блоке.

Вы можете менять местами строки в одном блоке.

Вы можете поменять местами столбцы, в которых индекс столбца кратен 3 столбцам (например, столбцы 1 и 4, столбцы 1 и 7, столбцы 3 и 9. etc)

Пожалуйста, проверьте код ниже:

Я надеюсь, что это может быть полезно. Спасибо

У меня есть проект для курса сложности и решения проблем, и я решил основать его на судоку. Судя по моим исследованиям, судоку-это NP-полная задача (которая необходима для проекта), и я нашел несколько способов создания алгоритмов для нее. Я планирую использовать метод решения методом грубой силы.

Я начинаю разрабатывать одностраничные приложения с .NET и Durandal JS, и мне интересно, как защитить файлы HTML и JS приложения. Я говорю о файлах в папке приложения, к этим файлам в настоящее время можно получить прямой доступ через URL, и я хотел бы предотвратить это. Конечно, поскольку HTML.

Сначала создайте массив из 81 объекта позиции.

Пройдитесь по массиву (возможно, несколько раз) и создайте 3 массива массивов; вертикальные линии горизонтальные линии и 9 секций

Каждый из этих массивов, конечно, должен иметь 9 массивов. Заполните их ссылками на объекты позиции в переменной board.

Пусть каждая позиция в переменной платы ссылается на свою горизонтальную/вертикальную линию и массивы сечений.

теперь вы сможете генерировать числа, зная, какие из них уже приняты.

Профессиональный совет: генерируйте по одной горизонтальной линии за раз (когда вы достигнете 3-й, для каждого раздела будет только 3 возможных цифры)

Способ сделать это состоит в том, чтобы

  1. создайте переменную, представляющую пустой массив 9×9. используйте нули, такие как [[0, 0, 0, 0, 0, 0, 0, 0, 0, ], . и т.д.]
  2. напишите функцию, которая будет получать все числа в той же строке, что и заданная координата, при вызове, например, same_row(x_coord, y_coord), возвращая список
  3. напишите одну и ту же функцию, чтобы получить все числа в одном столбце
  4. пройдитесь по пустому массиву, случайным образом выбирая число из[1, 2, 3, 4, 5, 6, 7, 8, 9] это не находится ни в одной строке, ни в одном столбце, и заполнение позиции этим номером

Функция, которая вернет список чисел в той же строке, что и квадрат, может выглядеть примерно так:

После того, как вы сами закодировали его, отправьте этот вопрос снова в code golf и используйте ответы, чтобы улучшить свой собственный код 🙂

Похожие вопросы:

Я делаю решатель судоку в html/css/js макет, который я собираюсь использовать, таков: основной контейнер div . . . конец основного контейнера div Я зашел так далеко в zen code.

Делая решатель судоку для задания, я столкнулся с проблемой при решении пустых ячеек судоку. Я могу легко решать ячейки с уникальными решениями, но когда я сталкиваюсь с ячейками с несколькими.

Я играю в судоку. Моя проблема-это генерация вопросов судоку. Я хочу генерировать вопросы в трех трудностях. Есть ли какая-нибудь идея сгенерировать 3-уровневые вопросы?

Поворот в классическом решателе судоку , с которым я недавно столкнулся, — это (довольно сумасшедший) inequality судоку , который является вашей классической головоломкой судоку с добавленным.

Я создаю игру судоку для удовольствия, написанную в Javascript году. Все работает нормально, плата генерируется полностью с одним решением каждый раз. Моя единственная проблема , и это то, что.

У меня есть проект для курса сложности и решения проблем, и я решил основать его на судоку. Судя по моим исследованиям, судоку-это NP-полная задача (которая необходима для проекта), и я нашел.

Я начинаю разрабатывать одностраничные приложения с .NET и Durandal JS, и мне интересно, как защитить файлы HTML и JS приложения. Я говорю о файлах в папке приложения, к этим файлам в настоящее.

У меня есть простая таблица HTML, которая выглядит как доска судоку. Каждая ячейка — это вход с типом = число. Я хочу использовать jQuery, чтобы извлечь все числа из каждой ячейки и сгенерировать.

Я работаю над личным проектом подбрасывания монет в HTML и Javascript годах. Есть ли способ сделать изменение изображения на основе результата flip? Например, если он приземляется на головы , он.

Итак, у меня есть генератор судоку, при доступе через API он генерирует доску судоку (массив JSON), которая затем с помощью AngularJS и ng-repeat в таблице я отображаю доску судоку на странице. Пока.

Как сделать — Слайд-шоу

Узнать, как создать адаптивное слайд-шоу с помощью CSS и JavaScript.

Слайд-шоу / Карусель

Слайд-шоу используется для циклического перебора элементов:

Создание слайд-шоу

Шаг 1) Добавить HTML:

Пример

<!— Контейнер слайд-шоу —>
<div >
<!— Полноразмерные изображения с числом и текстом подписи —>
<div fade">
<div / 3</div>
<img src="img1.jpg" style="width:100%">
<div текст</div>
</div>

Шаг 2) Добавить CSS:

Стиль следующей и предыдущей кнопок, текста заголовка и точек:

Пример

/* Контейнер слайд-шоу */
.slideshow-container <
max-width: 1000px;
position: relative;
margin: auto;
>

/* Скрыть изображения по умолчанию */
.mySlides <
display: none;
>

/* Вперед иназад кнопки */
.prev, .next <
cursor: pointer;
position: absolute;
top: 50%;
width: auto;
margin-top: -22px;
padding: 16px;
color: white;
font-weight: bold;
font-size: 18px;
transition: 0.6s ease;
border-radius: 0 3px 3px 0;
user-select: none;
>

/* Положение "next кнопки" справа */
.next <
right: 0;
border-radius: 3px 0 0 3px;
>

/* При наведении курсора добавьте черный цвет фона с немного прозрачным */
.prev:hover, .next:hover <
background-color: rgba(0,0,0,0.8);
>

/* Подпись текст */
.text <
color: #f2f2f2;
font-size: 15px;
padding: 8px 12px;
position: absolute;
bottom: 8px;
width: 100%;
text-align: center;
>

/* Номер текста (1/3 и т.д.) */
.numbertext <
color: #f2f2f2;
font-size: 12px;
padding: 8px 12px;
position: absolute;
top: 0;
>

/* Точки/пули/индикаторы */
.dot <
cursor: pointer;
height: 15px;
width: 15px;
margin: 0 2px;
background-color: #bbb;
border-radius: 50%;
display: inline-block;
transition: background-color 0.6s ease;
>

.active, .dot:hover <
background-color: #717171;
>

/* Исчезающая анимация */
.fade <
-webkit-animation-name: fade;
-webkit-animation-duration: 1.5s;
animation-name: fade;
animation-duration: 1.5s;
>

Шаг 3) Добавить JavaScript:

Пример

var slideIndex = 1;
showSlides(slideIndex);

// Вперед/назад элементы управления
function plusSlides(n) <
showSlides(slideIndex += n);
>

// Элементы управления миниатюрами изображений
function currentSlide(n) <
showSlides(slideIndex = n);
>

function showSlides(n) <
var i;
var slides = document.getElementsByClassName("mySlides");
var dots = document.getElementsByClassName("dot");
if (n > slides.length)
if (n < 1)

for (i = 0; i < slides.length; i++) <
slides[i].style.display = "none";
>
for (i = 0; i < dots.length; i++) <
dots[i].className = dots[i].className.replace(" active", "");
>
slides[slideIndex-1].style.display = "block";
dots[slideIndex-1].className += " active";
>

Автоматическое Слайд-шоу

Чтобы отобразить автоматическое слайд-шоу, используйте следующий код:

Пример

var slideIndex = 0;
showSlides();

function showSlides() <
var i;
var slides = document.getElementsByClassName("mySlides");
for (i = 0; i < slides.length; i++) <
slides[i].style.display = "none";
>
slideIndex++;
if (slideIndex > slides.length)
slides[slideIndex-1].style.display = "block";
setTimeout(showSlides, 2000); // Меняйте изображение каждые 2 секунды
>

Несколько Слайд-шоу

Пример

var slideIndex = [1,1];
/* Класс чисел каждой группы слайд-шоу с различными классами CSS */
var slideId = ["mySlides1", "mySlides2"]
showSlides(1, 0);
showSlides(1, 1);

function plusSlides(n, no) <
showSlides(slideIndex[no] += n, no);
>

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *