Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 2
Регистрация: 24.02.2018
Сообщений: 6

Необходимо написать функцию, при которой будут отображаться карты и проверяться совпадение

24.02.2018, 22:09. Показов 697. Ответов 0

Студворк — интернет-сервис помощи студентам
Пожалуй, перейду сразу к делу.
Создаю небольшую игру (Найди пару). Имеется 52 карты, рандомно выбирается 9 карт, создаются пары и рандомно располагаются на столе. В качестве блоков я использую ячейки таблицы. Это я смог реализовать, проблема в том, что не могу понять, как написать алгоритм, при котором карты будут раскрываться (можно максимум раскрыть 2 карты) и проверяться условие совпадения. Благодарю за помощь.
Код HTML и JS ниже:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<table class="cards" cellspacing="25">
            <tr>
                 <td id="k1"></td>
                 <td id="k2"></td>
                 <td id="k3"></td>
                 <td id="k4"></td>
                 <td id="k5"></td>
                 <td id="k6"></td>
            </tr>            
            <tr>
                 <td id="k7"></td>
                 <td id="k8"></td>
                 <td id="k9"></td>
                 <td id="k10"></td>
                 <td id="k11"></td>
                 <td id="k12"></td>
            </tr>
                 <td id="k13"></td>
                 <td id="k14"></td>
                 <td id="k15"></td>
                 <td id="k16"></td>
                 <td id="k17"></td>
                 <td id="k18"></td>
            <tr>
            </tr>
        </table>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
function hideme(obj)
{
    obj.parentNode.style.display="none";//Скрыть первую страницу
    idsecondpage.style.display="block";//Показать вторую страницу
    $(document).ready(function () {
        rest();});
}
 
 
function rest(){
 
    //функция, которая перемешивает массив
    function mix(mixArray) {
      var index, valueIndex; 
      for (var i=0; i<=mixArray.length-1; i++) {
        index = Math.floor(Math.random()*i);
        valueIndex = mixArray[index];
        mixArray[index] = mixArray[i];
        mixArray[i] = valueIndex;
      }
      return mixArray;
    }
    var u, g, t;
    var click_flag = 1;
    var count_click = 0; //Кол-во кликов
    var game_array = [];
    var arr;
    var idtr = ['k1', 'k2', 'k3', 'k4', 'k5', 'k6', 'k7', 'k8', 'k9', 'k10', 'k11', 'k12', 'k13', 'k14', 'k15', 'k16', 'k17', 'k18'];//Массив с id ячеек
    var map = [];//Массив для сохранения положения карт
    while(game_array.length < 9) {
            var rando = Math.floor(Math.random() * (52 - 1 + 1)) + 1;//Выбираются рандомные 9 карт из 52
            var found = false;
            for (t = 0; t < game_array.length; t++) {
                if (game_array[t] === rando){ 
                    found = true;
                    break;
                }
            }
            if (!found) { game_array[game_array.length]=rando; }
        }
    for(u=0, g=9; u<9; u++, g++)
        {
            game_array[g]=game_array[u];//Создаем пару для карт
        } 
    mix(game_array); //перемешиваем массив (картинки)
    function rub() {//Функция, котороя закрывает карты
    for(u=0;u<18;u++){
        var l = document.getElementById(idtr[u]);
        l.innerHTML="<img width='120' height='160' src='img/fon.png'>";        
    }
    }    
 
    function raskladka(){//Функция, которая раскладывает карты по ячейкам
    for(u=0, g=0; u<18; u++, g++)
    {    
     var k = document.getElementById(idtr[u]);
     k.innerHTML="<img  width='120' height='160' src='img/"+game_array[g]+".png'>";
        
   }
        function find (arr){
            u=0;
            while (game_array[u]!=arr)
                {
                    u++;
                }
            return u;
        }        
    }
    //function startSlidek1() { $('#k1 img').attr('src', 'img/'+ game_array[0] +'.png');  }
    rub();
    setTimeout(raskladka, 1700);
    setTimeout(rub, 6700);    
    //$('#k1').click(startSlidek1);    
}
$(document).ready(function () {
    $('#idrest').click(rest);//Начать заново
 });
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.02.2018, 22:09
Ответы с готовыми решениями:

Необходимо написать пользовательскую функцию MS Ехсе1, которой в качестве аргументов передаются диапазоны ячеек с исходными данными.
Необходимо написать пользовательскую функцию MS Ехсеl, которой в качестве аргументов передаются диапазоны ячеек с исходными данными, записи...

Сравнить каждый элемент с каждым, если есть совпадение, то соединить всю строку, в которой найдено совпадение
Доброго времени суток! Есть два массива строк разного размера (элементы массива разделены запятой). Необходимо сравнить каждый элемент с...

Написать функцию, при выполнении которой происходит построение однополостного гиперболоида
Доброго времени суток. Нужно написать функцию, при выполнении которой происходит построение однополостного гиперболоида(код прилагается)....

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.02.2018, 22:09
Помогаю со студенческими работами здесь

В выпадающем списке должны отображаться наименования продуктов, при выборе необходимо извлечь их значения
Здравствуйте! В выпадающий список ComboBox необходимо добавить следующие элементы со значениями: Сосиска = 0 Колбаса = 2 Торт =...

Написать программу, в которой будут объявлены структуры Points и Line
1. Написать программу, в которой будут объявлены структуры Points и Line, создан динамический массив объектов Line и нарисованы все...

Написать программу, в которой будут объявлены структуры Points и Ellipse
Написать программу, в которой будут объявлены структуры Points и Ellipse, создан динамический массив объектов Ellipse и нарисованы все...

Как написать функцию, при вызове которой будет изменено свойство объекта, его вызвавшего
Предположим, мы создали формовое приложение, добавили к проекту файл ex.cs и написали в нём класс, а внутри класса функцию. ...

Написать программу для создания матрицы, в которой будут числа от 0 до 1 с шагом 0,5
Необходимо написать программу для создания матрицы, в которой будут числа от 0 до 1 с шагом 0,5 Размерность матрицы варьируется ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru