До стрічки

Цифровий облік балів у карткових іграх з SCORECOUNT

Проект SCORECOUNT спрощує облік балів у карткових іграх, пропонуючи цифрове рішення для гравців. Долучайтеся до спільноти та діліться своїми ідеями.

Цифровий облік балів у карткових іграх з SCORECOUNT

Недільний вечір — це час, коли сім'я збирається разом для гри в карти. Першим питанням завжди є: хто буде вести облік балів? Як зазвичай, добровольців немає, і зрештою дядько знову з ручкою та папером намагається звести всі цифри. Ніхто не хоче мати ноутбук з Excel під час гри, а користуватися смартфоном для ведення таблиць — не найкраще рішення. Чи не краще було б зробити це цифровим способом? Сьогодні ми представляємо проект «SCORECOUNT», який спростить облік балів у карткових іграх.

Проект має на меті стати спільним проектом, в якому ви зможете брати участь зі своїми ідеями та пропозиціями. Ви можете надсилати свої думки на електронну пошту ([email protected]) або залишати коментарі в розділі «Спільнота». Коментарі в інших категоріях залишаються закритими через потребу в модерації.

Ваші ідеї будуть помічені! Пропозиції та рішення будуть впроваджені та представлені в матеріалах на цю тему з вашим зазначенням, якщо ви цього забажаєте. Спільнота — це про задоволення та демонстрацію ваших навичок! Усі проекти є відкритими та не комерційними.

Коментарі, що містять дискримінацію, рекламу або спам, будуть видалені! ArtsBlog використовує сучасні інструменти для модерації, але не може гарантувати 100% рішення. Якщо ви помітите щось підозріле, зв'яжіться з нами через електронну пошту ([email protected]). Інформацію про захист даних ви можете знайти в нашій політиці конфіденційності.

SCORECOUNT

01. Вимоги

Кожен проект починається з проблеми, яку потрібно вирішити. Наша проблема полягає в тому, що гравці в настільні ігри повинні менше турбуватися про бюрократію та вести облік балів без паперу та ручки.

Для цього необхідно мати можливість додавати гравців та вводити бали для кожного раунду. Також потрібно вказувати імена гравців, щоб легше було зрозуміти, хто отримує бали. Крім того, ми хочемо, щоб кількість раундів гри не була обмежена, а була динамічною. Захист даних є важливим аспектом, тому ми не будемо зберігати жодних даних.

Проект буде оптимізовано для використання на смартфонах або планшетах, без необхідності мати ноутбук за столом. Ми використовуємо CSS-фреймворк Bootstrap 5.2 і jQuery 3.6 для функціональності. Наше завдання — обчислити середній бал, який кожен гравець отримує за раунд.

Підсумовуючи:

  • Кілька гравців
  • Імена гравців
  • Введення балів за раунд
  • Підрахунок балів для кожного гравця
  • Обчислення середнього балу
  • Динамічна кількість раундів
  • Використання на смартфоні або планшеті
  • Bootstrap 5.2 та jQuery 3.6
  • Дружній до захисту даних

02. Основний скрипт

Основний скрипт вже відповідає всім вищезгаданим вимогам. З ним ми будемо працювати, і в наступному розділі я дам кілька ідей для розширення проекту. Я не буду вдаватися в деталі роботи скрипта, просто перегляньте код і спробуйте, як працює проект. Основний скрипт не ідеальний та має багато можливостей для покращення. Наприкінці статті ви зможете завантажити всі дані і спробувати свої сили.


    SCORECOUNT

		  Про
		  Не хочете більше використовувати ручку та папір? Нехай бали вашої гри підраховуються автоматично для кожного гравця. Імена гравців можна змінити.

		  SCORECOUNT

			  SCORECOUNT

			  Не хочете більше використовувати ручку та папір? Нехай бали вашої гри підраховуються автоматично для кожного гравця. Введіть кількість гравців і починайте гру!

$(document).ready(function(){
	$('.album').hide();
	$('#go').on('click', function () {
		var players_sum = $('#players').val();
		if (players_sum > 12){
			var players_sum = 12;
		}
		for (i = 0; i < players_sum; i++) {
			var player_num = i + 1;
			$('#player-cards').append('# Пункти123')
		}
		$('.intro').hide();
		$('.album').show();
		$('.card').on('input', function () {
			// Лічильник
			var scorecount = 0;
			$('input', this).each(function () {
				var get_input_value = $(this).val();
				if ($.isNumeric(get_input_value)) {
					scorecount += parseFloat(get_input_value);
				}
			});
			var input_filled = $('table :input', this).filter((i, el) => el.value.trim() !== '').filter((i, el) => el.value.trim() !== '-').length;
			var score_average = scorecount / input_filled;
			var score_average = Math.round(score_average);
			$('#total', this).html(' ' + scorecount);
			$('#average', this).html(' ' + score_average);
			// Новий раунд
			if( $('table tr:last input' ,this).val().length !== 0 ) {
				var nextround = parseFloat($('table tr:last td.rounds' ,this).text()) + 1;
				$('table tr:last' ,this).after('' + nextround + '');
				var rowpos = $('table tr:last' ,this).position();
				$('.card-body' ,this).scrollTop(rowpos.top);
			}

			});
		});
});
// Модальне вікно сповіщення
$(function () {
	var modal_template_01 = '';
	var modal_template_02 = 'Заголовок';
	var modal_template_03 = '';
	var modal_template_04 = 'Текст';
	var modal_template_05 = '';
	var modal_template_06 = '';
	// Очищення введення
	$('#restart').on('click', function() {
		var modal_template_02 = 'Увага!';
		var modal_template_04 = 'Ви впевнені, що хочете очистити введені дані?';
		var modal_template_07 = 'clean-form';
		$('#notify').html(modal_template_01 + modal_template_02 + modal_template_03 + modal_template_04 + modal_template_05 + modal_template_06 + modal_template_07 + modal_template_08 + modal_template_09 + modal_template_10 + modal_template_11 + modal_template_12);
		$('#modal').modal('show');
		$('#clean-form').on('click', function() {
			location.reload(true);
		});
	});
});

03. Подальший розвиток

Спільні проекти живуть завдяки спільноті, тому тут ще багато можливостей для розвитку та реалізації ідей, які спочатку не були заплановані. Не соромтеся надсилати свої пропозиції або готові рішення. Я не хочу нав'язувати вам обмеження, а лише дати ідеї для можливих напрямків. Я сподіваюся на співпрацю з вами в реалізації цього проекту та на активний контакт з громадою. З найкращими побажаннями, ваш Андреас.

Можливі функції:

  • Зміна порядку гравців залежно від балів
  • Виділення гравця, який наразі виграє
  • Експорт результатів гри або знімок екрану
  • «Картка» гравця з різними кольорами
  • Анімації
  • Дружніше оформлення

04. Завантаження

Я зібрав усі файли, щоб процес налаштування був швидшим. Сподіваюся, ви отримаєте таке ж задоволення від проекту, як і я, і бажаю вам успіху.

artsblog-проект-scorecount-master

Розмір файлу: 1,7 МБ