Система слота в JavaScript, проблема с if else

98
18 сентября 2021, 01:00

Я сделаю что-то типа слот аппарата, все у меня работает кроме одного. У меня аппарат показывает выигрыш, когда рядом будут 3 одинаковые картинки. Я хочу еще сделать так, когда например попадут 3 семерки тогда размер выигрыша был другой, когда попадут 3 вишни, размер выигрыша был другим. Как можно это реализовать ? В if else не понимаю как это написать.

Это у меня определяет выигрыш:

if (pic.src == pic2.src && pic2.src == pic3.src) { 
        win.innerHTML = '1000'; 
    } else if (pic4.src == pic5.src && pic5.src == pic6.src) { 
        win.innerHTML = '1000'; 
    } else if (pic7.src == pic8.src && pic8.src == pic9.src) { 
        win.innerHTML = '1000'; 
    } else { 
        winner.innerHTML = '0'; 
    }

Answer 1

Можно делать вообще без else if (хотя конечный результат не поменяется)

/* Объект коэффициентов. Ключи — адреса картинок */
let coefs = {
  "strawberry.png": 1.5,
  "banana.png": 0.8,
  "seven.png": 2,
  "cherry.png": 1.5,
};
let current; /* Адрес выигравшей картинки */
let sum = 0;
updateSumByPics(pic1, pic2, pic3);
updateSumByPics(pic4, pic5, pic6);
updateSumByPics(pic7, pic8, pic9);
winner.textContent = sum;
function updateSumByPics(pic1, pic2, pic3){
  if( pic1.src == pic2.src && pic2.src == pic3.src ){ 
    current = pic1.src;
    sum = 1000 * coefs[current];
    /* Из объекта coefs достается число, в зависимости от значения current = pic1.src 
       и домножается на 1000 */
  }
}

P.s. http://learn.javascript.ru/ — 4-й и 5-й пункты, Объекты и массивы.

Answer 2
var picture = "nopicture";
if (pic.src == pic2.src && pic2.src == pic3.src) {
  picture = pic.src;
} else if (pic4.src == pic5.src && pic5.src == pic6.src) {
  picture = pic4.src;
} else if (pic7.src == pic8.src && pic8.src == pic9.src) {
  picture = pic7.src;
}
var prizes = {};
prizes["nopicture"] = 0;
prizes["cherry.jpg"] = 1000;
prizes["seven.jpg"] = 2000;
win.innerHTML = prizes[picture];
READ ALSO
Base64, HMAC, и Hex на Go

Base64, HMAC, и Hex на Go

Есть код, написанный на JavaScript:

154
Проблема с Rest оператором js

Проблема с Rest оператором js

функция возвращает массив с теми аргументами, которые соответствуют типу данных, переданному в первом аргументе но если я возвращаю не consolelog(...

89
Задача с массивом JS

Задача с массивом JS

// Дан массив числами, например: [10, 20, 30, 50, 235, 3000]// Выведите на экран только те числа из массива, которые начинаются на цифру 1, 2 или 5

242
Отправка фото с камеры IOS на форму сайта

Отправка фото с камеры IOS на форму сайта

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

84