/* ----------------------------------- Estruturas de Dados 2023/2024 Jogo da Vida [ED088] ----------------------------------- */ import java.util.Scanner; // Classe para representar um jogo class Game { final char DEAD = '.'; // Constante que indica uma celula morta final char ALIVE = 'O'; // Constante que indica uma celula viva private int rows, cols; // Numero de linhas e colunas private char m[][]; // Matriz para representar o estado do jogo // Construtor: inicializa as variaveis tendo em conta a dimensao dada Game(int r, int c) { rows = r; cols = c; m = new char[r][c]; } // Metodo para ler o estado inicial para a matriz m[][] public void read(Scanner in) { for (int i=0; i<rows; i++) m[i] = in.next().toCharArray(); } // Metodo para escrever a matriz m[][] public void write() { // ... por completar } // Deve devolver o numero de celulas vivas que sao vizinhas de (y,x) private int countAlive(int y, int x) { int count = 0; // ... por completar return count; } // Deve fazer uma iteracao: cria nova geracao a partir da actual public void iterate() { // ... por completar } } // Classe principal com o main() public class ED088 { public static void main(String[] args) { Scanner in = new Scanner(System.in); // Ler linhas, colunas e numero de iteracoes int rows = in.nextInt(); int cols = in.nextInt(); int n = in.nextInt(); // Criar objecto para conter o jogo e ler estado inicial Game g = new Game(rows, cols); g.read(in); //... por completar } }
Neste exercício a ideia é tentar resolver o problema de forma organizada e estruturada sozinho. O problema em questão é o [ED015] Sopa de Letras que também disponível no Mooshak.
Espreite o método main para ver como as imagens da janela foram geradas. Como referência, e se necessário, pode consultar a documentação da classe StdDraw.
A ideia deste exercício vai ser criar uma classe para Turtle Graphics, um termo que designa um tipo de criação de desenhos usando um "cursor" que vai "andando" por um plano. A ideia é portanto desenhar num plano cartesiano (com tamanho a ser dado na construção do objecto) e ter um "cursor", a tartaruga, com uma dada posição e orientação, sendo possível andar na direção actual e ter um lápis que pode estar ou não levantado.
forward 50 rotate 90 penUp forward 100 rotate 20 penDown forward 30