Carnot Game
06/01/2025 in Calor & Termometria
Você gostou deste jogo? Dê sua opinião escolhendo um número de estrelas:
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.
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.
- 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.
- 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 ⚙️
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.
- 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.
Você pode mudar entre os idiomas Português e Inglês clicando no botão no canto superior direito.
- 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.
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.
Este projeto foi desenvolvido por:
- Prof. Dr. Rafael João Ribeiro Instituto Federal do Paraná (IFPR) www.fisicagames.com.br
Leave a reply