Javascript: Подсчет карт в Blackjack



  • Написал решение,оно работает только не понятно почему не засчитывается системой.Возможно имелся в виду какой-то дугой способ решения.Скажите что здесь лишнее или использовано не правильно.

    var count = 0;
    
    function cc(card) {
      switch(card)
          case 2:
           count = count + 1;
          break;
        case 3:
          count = count + 1;
          break;
        case "K":
          count = count - 1;
          break;
        case "A":
          count = count -1;
      }
        if(count > 0){
          return count + " Bet";
        }else if(count <= 0){
          return count + " Hold";
        }
    }
    cc(2); cc(3); cc(7); cc('K');  cc('A');
    

  • administrators

    @HallHod пока есть ошибка в том, что пропущена открывающая фигурная скобка после switch(card), вот так должна выглядеть конструкция switch в плане синтаксиса:

    switch(card) {  // <--- пропуск
      case 2:
        count = count + 1;
        break;
      case 3:
        count = count + 1;
        break;
      case "K":
        count = count - 1;
        break;
      case "A":
        count = count -1;
        break;
    }
    


  • @admin Странно скопировалось в редакторе все окей-скобка есть.Но не засчитывает.



  • кто то вообще решил это задание?)


  • administrators

    @HallHod и @aversbas в качестве подсказки приведу псевдокод:

    var count = 0;
    
    function cc(card) {
    
      switch( card ) {
        case от 2 до 6:
          увеличиваем count на 1;
          break;
        case 10, 'J', 'Q', 'K', 'A':
          уменьшаем count на 1
          break;
      }
      
      if ( count > 0 )
        вернуть count + ' ' + 'Bet';
      
     // сюдя мы попадем, только если count >= 0
      вернуть count + ' ' + 'Hold';
    
    }
    


  • Ппц 4 чеса парился .
    И очень интересный воопрос почему оно неработало таким вот образом

    switch (card){
    case 2,3,4,5,6:count = count + 1 ;break;
    case 7,8,9: count = 0 ; break ;
    case 10, 'J', 'Q', 'K', 'A':count = count - 1 ;
    }
    if (count > 0){
    return count + " Bet";
    }else if (count <= 0){
    return count + " Hold";
    }

    @HallHod и @aversbas в качестве подсказки приведу псевдокод:
    case 10, 'J', 'Q', 'K', 'A':

    второй вопрос я так логики толком и непонял всего етого примера
    если я оброшяюсь к функцыям например
    cc(2);мне должно вернуть 1 cc(3);мне должно вернуть 1 а возврошяет 2 cc(7);мне должно вернуть 0 а возврошяет 2 cc('K');мне должно вернуть -1 а возврошяет 1 cc('A');мне должно вернуть -1 а возврошяет 1
    мне должно вернуть 1 .

    немогу некак понять етого .
    спасибо .

    робочий вориант

    var count = 0;

    function cc(card) {
    // Измените код под комментарием
    switch (card){
    case 2: count = count + 1; break;
    case 3: count = count + 1; break;
    case 4: count = count + 1; break ;
    case 5: count = count + 1; break ;
    case 6: count = count + 1; break ;
    case "K":count = count - 1;break;
    case "A":count = count -1;break ;
    case 10: count = count -1;break ;
    case "J":count = count -1;break ;
    case "Q":count = count -1;break ;
    }
    if (count > 0){
    return count + " Bet";
    }else if (count <= 0){
    return count + " Hold";
    }
    // Измените код над комментарием
    }

    если конечно уважаймый Админ позволит его оставить .



  • Рабочий вариант:

    function cc(card) {
    if (card==2 || card==3 || card==4 || card==5 || card==6) {count=count+1}
    else if (card==10 || card=='J' || card=='Q' || card=='K' || card=='A') {count=count-1}
    else {count=count};
    if (count>0) {return count+' Bet'}
    else {return count+' Hold'}; }



  • Работы на пять минут. Почему 5? Потому что проверка чувствительна к регистру и пробелам в ответе -_-
    // Измените код под комментарием
    switch(card) {
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    count++;
    break;
    case 10:
    case "J":
    case "Q":
    case "K":
    case "A":
    count--;
    break;
    }

    if (count > 0) {
    return count + " " + "Bet"
    }

    return count + " " + "Hold";
    // Измените код над комментарием



Похоже, подключение к Форум DoCode было разорвано, подождите, пока мы пытаемся восстановить соединение.