O que é uma máquina de estados?
Uma máquina de estados é um programa que reage de uma forma ou de outra dependiendo no solo de lo que está sucediendo, sino también de su estado anterior.
É portanto, um programa que não apenas depende das suas entradas e saídas, como também tem memória, estados que influenciam o seu comportamento. Por exemplo, imagina que queremos criar um programa para que, se tiveres fome, comas. Se apenas depender de que tenhas fome, comerás imediatamente a primeira coisa que encontres. No entanto, se criarmos o mesmo programa com uma máquina de estados, o processo será mais complexo. Se tiveres fome… queres comer, mas a meio do dia comeste uma pizza, e por isso agora deves comer algo mais saudável… e além disso, ainda não chegou a hora do jantar. O melhor será comeres uma salada! | ![]() |
As luzes de Natal. A nossa primeira máquina de estados.
Num programa com uma máquina de estados, existem sempre duas partes: uma é a execução de cada estado e a outra é a mudança entre estados.
Execução de cada estado
Queremos que as nossas luzes tenham três modos de programação, ou estados: LED apagados, piscar simultâneo e piscar alternado. A primeira coisa a fazer é declarar uma variável global estado, que nos permitirá armazenar o estado actual.
Alternar entre estados
Ainda há mais…
- A seguir, propomos-te um par de ideias para continuares a praticar:
- Constrói um semáforo e programa-o no bitbloq 2, utilizando uma máquina de estados e um botão para pedir que ele mude para verde.
- Cria a tua própria jukebox, alternando as canções através de uma máquina de estados, um besouro e um botão.
As máquinas de estados são muito utilizadas, em muitos contextos: desde os diferentes programas da tua máquina de lavar, ou no teu forno… até máquinas industriais, telemóveis e computadores. Quanto mais praticares, mais fácil será utilizá-las. E sendo assim, não hesites e põe-te a programar!