Техническое задание: Протокол обмена сообщениями с подтверждением доставки

Цель проекта

Разработать надежный протокол для обмена данными между двумя узлами, обеспечивающий гарантированную доставку сообщений с помощью механизма подтверждений (ACK).

Ключевые требования к функционалу

  • Односторонние подтверждения: Подтверждения (ACK) отправляются только в одну сторону. Протокол не должен реализовывать сложные механизмы запроса повторной передачи (ARQ).
  • Таймаут и повторная отправка: Реализовать механизм проверки времени ожидания подтверждения. Если подтверждение на отправленный пакет не пришло в течение заданного интервала, протокол должен автоматически повторно отправить предыдущий пакет из буфера.
  • Управление состоянием через callback-функции: Логика работы протокола (переходы между состояниями ожидания подтверждения и отправки данных) должна быть реализована не через явную таблицу состояний (state machine), а с помощью системы обратных вызовов (callbacks).
  • Технический стек: Код должен быть написан в стиле языка C (процедурный стиль, структуры, указатели на функции), но с возможностью компиляции компилятором C++.

Ожидаемый результат

  • Чистый, документированный исходный код на C/C++.
  • Протокол, готовый к интеграции в более крупную систему.
  • Базовая логика обработки таймаутов и повторных передач.

Разработка калькулятора шансов победы в покер

Требуется создать специализированный калькулятор для расчёта вероятности выигрыша в покере. Необходимо реализовать логику расчётов на основе предоставленных примеров. Подробное техническое задание будет передано исполнителю.