Нужна помощь для подсчета карт в 21 карточной игре с таблицами Google - PullRequest
1 голос
/ 08 февраля 2020

Я очень плохо знаком с Excel или Google Spreadsheets и хочу узнать больше.

Я пытаюсь создать счетчик карт для карточной игры, 21. Вот правила игры:

  • Стремитесь получить 21 или как можно ближе к этому.
  • Числовые карты имеют номинал, валеты, короли и дамы стоят 10
  • Значение туза меняется в зависимости от на сколько карт у вас под рукой. Если у вас всего две карты, стоимость туза равна 11, три карты и стоимость туза равны 10 или 1; ваш выбор.
  • Дилер и все другие игроки начинают с двух карт.
  • Дилер обращается к каждому игроку по одной (включая его самого в конце). Игрок должен решить, хотят ли они другую карту (удар), или он будет сидеть на том, что у него есть.
  • Игрок или дилер должен ударить, если ценность его руки <16 </li>
  • . Вы можете если у вас есть <6 карт до тех пор, пока вы не наберете go свыше 21. </li>
  • Если дилер обанкротится, то все остальные, кто не разорится, не проиграют (бегут), а те, кто не обанкротился, побеждают. .
  • Мы перетасовываем колоду карт после каждой игры.

Следующее изображение - скелет моей установки. Текущий прогресс

В настоящее время я застрял в поиске количества оставшихся безопасных карт. Оставшиеся безопасные карты можно рассчитать по следующей формуле:

Safe Cards Remaining = Total Cards in Deck - Cards in your hand - Quantity of Cards that have a value of >SafeRoom

где SafeRoom - максимальное значение карты, которое вы можете взять, но не разориться.

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

Probability of not busting = 100 * Safe Cards Remaining / Total Cards in Deck

Это код JavaScript, который я написал в таблице Google на данный момент, и что я думаю, что каждая строка делает.

function myFunction()
{
  var twentyOne = SpreadsheetApp.getActiveSpreadsheet(); // Gets information on the Spreadsheet
  var knownQty = twentyone.getRange("F8:F20").getValues(); // Gets the values of everything on that row
  var sum;

  var arrayLength = knownQty.length; // Setting array length to the no. of cells in that row

  for(var i = 0; i < arrayLength; i++)
  {
    if(knownQty[i] < 4) // If the qty of cards in that row is below < 4
    {
      sum = sum + knownQty.getValue(); // Save the amount of cards
    }

    else // Do nothing
    {
    }
  }

}

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

...