Carnot Game

06/01/2025 in Calor & Termometria

Você gostou deste jogo? Dê sua opinião escolhendo um número de estrelas: 1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)

Loading...

Carnot Game

Descrição

Carnot Game é um jogo interativo baseado no Ciclo de Carnot, onde o jogador deve alternar entre três fontes térmicas (quente, isolante e fria) para maximizar o trabalho realizado no pistão de um cilindro. O objetivo é manter o pistão operando no ciclo ideal de Carnot, fazendo as trocas de fontes de maneira precisa para evitar a explosão do cilindro ou o seu congelamento. Quanto mais próximo do ciclo de Carnot, maior a pontuação e o progresso do jogador.

Objetivo

O jogador deve clicar no botão para alternar entre as fontes térmicas do sistema, lembrando-se de manter as transições no momento certo para evitar que o pistão trave ou o cilindro exploda. O ciclo de Carnot é composto por quatro processos termodinâmicos: Expansão isotérmica, Expansão adiabática, Compressão isotérmica e Compressão adiabática.

Funcionalidades

  • Troca de Fontes Térmicas : O jogo permite alternar entre a fonte quente, a fonte fria e o isolante com um único botão.
  • Pontuação baseada no Ciclo de Carnot : Quanto mais preciso for o jogador ao executar as trocas térmicas, mais trabalho é gerado e maior a pontuação.
  • Efeitos Visuais de Temperatura: As partículas exibem variações de cor (vermelho a azul) e velocidade, refletindo as mudanças de temperatura e a movimentação das partículas no cilindro.
  • Efeitos Visuais de Pressão : O pistão vibra conforme a pressão interna do cilindro aumenta, que é influenciada pelas colisões reais das partículas.
  • Níveis e Pontuação : A pontuação do jogador se classifica em diferentes níveis com base na precisão do ciclo, como ‘Iniciante’, ‘Estudante Curioso’, até ‘Nicolas Léonard Sadi Carnot’ para os jogadores mais habilidosos.
  • Limitação de Trocas : O jogador pode fazer apenas 9 trocas de fontes térmicas, com a última troca resultando em uma explosão caso seja a fonte quente.

Pontuações e Níveis

  • 499-: Iniciante 🐣
  • 500 – 539: Estudante Curioso 🧐
  • 540 – 579: Estudante Aplicado 📘
  • 580 – 619: Universitário Iniciante ✏️
  • 620 – 659: Universitário Dedicado 📚
  • 660 – 699: Professor de Física 🧑‍🏫
  • 700 – 709: Professor de Termodinâmica 🔥
  • 710 – 719: Gênio da Física 🧠
  • 720+: Nicolas Léonard Sadi Carnot ⚙️

Como Jogar

Objetivo:

Realizar as trocas de fontes térmicas (quente, fria e isolante) de maneira eficiente para maximizar o trabalho gerado e evitar que o pistão trave ou o cilindro exploda.

Controles:

O jogo é controlado por um único botão para alternar entre as fontes térmicas.

Desafios:

  • Troca de Fontes : O jogador pode realizar até 9 trocas de fontes térmicas, com a última troca resultando em uma explosão do cilindro se for feita com a fonte quente.
  • Emperramento do Pistão : O pistão pode emperrar nos limites de volume máximo ou mínimo se o tempo de troca não for adequado.
  • Pontuação : O jogador é recompensado com pontos com base em quão perto o ciclo chega do ciclo ideal de Carnot.

Alterar Idioma

Você pode mudar entre os idiomas Português e Inglês clicando no botão no canto superior direito.

Tecnologias Utilizadas

  • TypeScript : Linguagem de programação.
  • Babylon.js : Motor gráfico para a renderização 3D.
  • Havok : Motor de física (para interações físicas realistas).
  • Vite.js : Ferramenta para build e desenvolvimento.
  • VS Code : Editor de código.
  • GitHub : Plataforma para controle de versão e colaboração.

Desenvolvimento

A programação desta simulação foi estruturada utilizando Módulos ES6 e uma arquitetura modular baseada no padrão Modelo-Visão-Controlador (MVC) adaptado com o uso de callbacks para comunicação. A arquitetura MVC foi escolhida e ajustada para garantir modularidade, reuso de código e eficiência no desenvolvimento.

O Modelo gerencia os dados e implementa a lógica central da simulação. A Visão é responsável por renderizar a interface gráfica (GUI) e apresentar os dados ao usuário. O Controlador coordena a comunicação entre o Modelo e a Visão, servindo como mediador entre os dois.

O fluxo de dados entre os módulos é organizado por interfaces explícitas e callbacks configurados dinamicamente. Esses callbacks permitem que eventos e ações sejam tratados de forma direta e centralizada, garantindo flexibilidade e controle sobre as interações entre os componentes.

A escolha pelos callbacks, em vez de mecanismos mais complexos, como máquinas de estados finitos (FSM), observables ou event emitters, reduz a complexidade do sistema, mantendo a clareza e a rastreabilidade do fluxo de dados. Essa abordagem simplificada também favorece o desempenho, especialmente em aplicações onde a modularidade e a responsividade são prioridades.

Licença

Este projeto é protegido por direitos autorais e está sob licença proprietária . Não está disponível para distribuição, modificação ou uso comercial sem a permissão explícita do autor.

Copyright (c) 2024 Rafael João Ribeiro.

Autor

Este projeto foi desenvolvido por:

Leave a reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *