Prévia do material em texto
UNIVERSIDADE PAULISTA – UNIP
CIÊNCIA DA COMPUTAÇÃO (CC)
Bruno da Cruz Santos - R.A: N6557A1
Felipe Santos Saquett - RA: T7438i9
Isaac Passos Araujo - RA: F325IH4
Weslley Gomes das Neves - R.A: F30CEG0
SUSTENTABILIDADE – DESENVOLVIMENTO DE JOGO EM JAVA.
Atividade prática supervisionada
Unid. Chác. St. Antônio
Bruno da Cruz Santos - R.A: N6557A1
Felipe Santos Saquett - RA: T7438i9
Isaac Passos Araujo - RA: F325IH4
Weslley Gomes das Neves - R.A: F30CEG0
SUSTENTABILIDADE – DESENVOLVIMENTO DE JOGO EM JAVA.
Trabalho apresentado no curso de graduação da Universidade Paulista UNIP, como parte das exigências para a obtenção de nota.
Orientador: Lauro Tomiatti.
São Paulo – SP
2021
Sumário
Objetivo 5
Introdução 5
Regras e Funcionamento do jogo 7
Menu principal de ações 7
Tela do estoque 8
Tela comprar produtos 8
Tela Vender produtos 9
Desenvolvimento do jogo 10
Fluxograma 11
Linhas de código 14
Fichas 29
Bibliografia 34
Objetivo
O trabalho tem por objetivo juntar o tema proposto, “Sustentabilidade”, com a disciplina de linguagem de programação orientada a objetos. Para tal, serão abordados os conceitos básicos de sustentabilidade e seus impactos na sociedade; o papel da tecnologia como ferramenta para alcançar a sustentabilidade e por fim, será apresentado o projeto semestral desenvolvido em JAVA.
O projeto a ser apresentado será um jogo que simula a tomada de decisão de um gestor de uma cooperativa de reciclagem, decisões essas que podem levar à falência de recursos da empresa ou ganhos em dinheiro com a compra e venda de produtos reciclados.
Com isso, o objetivo do jogo desenvolvido, é materializar e simular uma negociação que beneficie os ganhos econômicos, ambientais e sociais, fazendo valer o conceito de sustentabilidade.
Introdução
Para além das campanhas bem-sucedidas de marketing que elevaram o termo “Sustentabilidade” como uma qualidade praticada pelas organizações, tal conceito carrega sobre si o peso de conduzir os negócios presentes, de forma que haja um futuro possível e digno no planeta Terra.
Com o exponencial crescimento da população global ao longo dos últimos séculos, a capacidade humana de produção e abastecimento foi colocada a prova. Frente a esse desafio, o homem se reinventou em diversos aspectos sociais, científicos e filosóficos, o que resultou em grandes revoluções intelectuais e tecnológicas.
Até determinado ponto da história, era inimaginável pensar na finitude dos recursos que o planeta dispõe, levando a indústria a produzir cada vez mais, satisfazendo a necessidade de consumo da população. Há de se enxergar uma melhora na qualidade de vida da população terrestre, visto que séculos antes a fome era uma realidade comum e presente em grande parte da sociedade.
A partir da Conferência das Nações Unidas sobre o Meio Ambiente Humano, realizada na Suécia 1972, sob alerta da comunidade científica que previa a futura escassez de recursos naturais, que vinham sendo explorados desregradamente, além do grande problema do descarte dos subprodutos dos processos industriais e resíduos plásticos descartados, a ideia de sustentabilidade passou a ser discutida.
A Etimologia da palavra “sustentabilidade”, vinda do latim sustentare (sustentar; defender; apoiar). Já o conceito do termo pode ser compreendido como “suprir as necessidades da geração presente sem afetar a possibilidade das gerações futuras de suprir as suas”. Para tal, a conferência realizada na Suécia passou a difundir um documento conhecido como “Declaração de Estocolmo sobre o ambiente humano”, que contia diretrizes para as nações adotarem como política a forma de desenvolvimento sustentável.
O desenvolvimento sustentável, estabelece 3 pilares a serem desenvolvidos: Social, Econômico e Ambienta. É necessário compreender que ambos os pilares estão intrinsecamente ligados em suas concepções e objetivos de desenvolvimento, ou seja, é necessário dedicar atenção para que o desenvolvimento ambiental não suprima o econômico, o econômico não suprima o social e assim por diante. Para ilustrar o conceito, é possível utilizar a teoria dos conjuntos matemáticos, sendo cada pilar um grupo que tem intersecções entre si (figura1).Figura 1 - Diagrama sustentabilidade.
A intersecção entre o fator econômico e social, gera o desenvolvimento socioeconômico; entre o fator social e ambiental, gera o desenvolvimento socioambiental; entre o fator econômico e ambienta gera o desenvolvimento pautado pela ecoeficiência. Já a intersecção entre os três grupos (pilares), materializa o conceito de sustentabilidade.
Pode-se a partir de então, dizer que a sustentabilidade é um fim alcançado por meio do desenvolvimento sustentável.
Regras e Funcionamento do jogo
O jogador inicia o jogo com uma lista de tipos de lixos recicláveis, seu valor máximo de venda por quilo, quantos quilos possui e o 500R$ em dinheiro
TIPO
PESO
PREÇO Kg
Papel
0
2,00R$
Metal
0
3,00R$
Plástico
0
2,40R$
Vidro
0
2,80R$
Menu principal de ações
Logo no início e no fim da conclusão de cada ação do jogador o jogo voltará ao menu principal de ações do jogo, assim podendo escolher seu próximo passo digitando o número da ação.
Tela do estoque
Ao escolher a opção de verificar estoque, apresentará esta tela com as informações de cada tipo de produto.
Tela comprar produtos
Ao escolher a opção de comprar produto, apresentará esta tela com uma proposta de venda aleatória, você poderá buscar novas propostas escolhendo a opção 0, mas cuidado, você só terá 3 propostas sem taxa de acréscimo, após esta quantidade você pagará 5 reais a mais a cada nova proposta caso compre alguma e caso tente cancelar irá pagar uma taxa de 100 reais.
Tela Vender produtos
Ao escolher a opção de vender produtos será lhe apresentado uma tela para escolher qual produto em estoque e qual o peso máximo que deseja vender o produto.
Após a escolha do produto e peso máximo, você recebera propostas de compras, onde poderá receber propostas muito boas ou ruins; terá no máximo 5 propostas com 0 de acréscimo a partir daí será cobrado 5 reais a cada nova proposta no final da compra. Vencerá o jogo caso consiga chegar a 15000 reais.
Desenvolvimento do jogo
Para o desenvolvimento da ideia, o grupo aliou a proposta da disciplina com a oportunidade de desenvolver algo que simule o dia a dia e as decisões de um negociador de recicláveis. O simulador possibilita ao grupo aplicar teorias e técnicas obtidas ao longo do curso e já se aproximar dos desafios que acompanharão da carreira dos integrantes.
O plano de desenvolvimento passou pela discussão do tema proposto, pesquisa do tema e reuniões online para troca de ideias a cerca do funcionamento do programa. Assim que definida a ideia, foi feito um esboço lógico e o fluxograma para compreensão da estrutura do programa e a partir de então o desenvolvimento do código.
Será aplicado ao projeto o paradigma de orientação à objetos, baseado na linguagem JAVA. Para o desenvolvimento do código a ferramenta JDK (Java development Kit) foi utilizada com a plataforma Java SE16 e com uso da arquitetura de software padrão MVC (model, view, control), que visa otimizar o encapsulamento do software, tornando a futura manutenção, atualização e correção de bugs mais segura e independente.
Fluxograma
Linhas de código
package main;
import controller.ResultadosController;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import javax.swing.JOptionPane;
import model.Compra;
import model.constante.Elixo;
import model.Lixo;
import model.Venda;
public class main {
public static void main(String[] args) {
init();
}
static void init() {
//popular minha lista de lixos inicial
List<Lixo> lixos = new ArrayList<>();
for (Elixo lixo : Elixo.values()) {
lixos.add(lixo.lixo());
}
ResultadosControllerresultController = new ResultadosController();
resultController.mostrarMenuPrincipal(lixos);
}
}
package controller;
import java.util.List;
import model.Lixo;
import view.ComprarProdutos;
import view.Estoque;
import view.MenuPrincipal;
import view.PropostaVenda;
public class ResultadosController {
MenuPrincipal menu = new MenuPrincipal();
Estoque estoque = new Estoque();
ComprarProdutos comprarProdutos = new ComprarProdutos();
PropostaVenda propostaVenda = new PropostaVenda();
public void mostrarMenuPrincipal(List<Lixo> lixos){
menu.menuPrincipal(lixos);
}
public void mostrarEstoque(List<Lixo> lixos){
estoque.mostrarEstoque(lixos);
}
public double mostrarCompraProdutos(List<Lixo> lixos, double dinheiro){
return comprarProdutos.comprarProduto(lixos, dinheiro);
}
public double mostrarPropostaVenda(List<Lixo> lixos, double dinheiro){
return propostaVenda.propostaVenda(lixos, dinheiro);
}
}
package model.constante;
import java.text.DecimalFormat;
import java.util.Random;
public class EFormatacoes {
public static Random VALOR_ALEATORIO = new Random();
public static DecimalFormat FORMATO_DINHEIRO = new DecimalFormat("###.##");
}
package model.constante;
import model.Lixo;
public enum Elixo {
//criar meus lixos
PAPEL {
@Override
public Lixo lixo() {
return new Lixo("PAPEL", 0, 2);
}
},
METAL {
@Override
public Lixo lixo() {
return new Lixo("METAL", 0, 3);
}
},
PLASTICO {
@Override
public Lixo lixo() {
return new Lixo("PLASTICO", 0, 2.4);
}
},
VIDRO {
@Override
public Lixo lixo() {
return new Lixo("VIDRO", 0, 2.8);
}
};
public abstract Lixo lixo();
}
package model;
public class Compra{
private final Lixo lixo;
public Compra(Lixo lixo){
this.lixo = lixo;
}
public Lixo getLixo(){
return this.lixo;
}
public double calcularTotal() {
return this.lixo.getPrecoKG() * this.lixo.getPesoTotal();
}
public double concluir(Lixo lixoAtual) {
lixoAtual.setPesoTotal(lixoAtual.getPesoTotal() + this.lixo.getPesoTotal());
return calcularTotal();
}
}
package model;
public class Lixo {
private String nome;
private double pesoTotal;
private double precoKG;
public Lixo(String nome, double pesoTotal, double precoKG){
this.nome = nome;
this.pesoTotal = pesoTotal;
this.precoKG = precoKG;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getPesoTotal() {
return pesoTotal;
}
public void setPesoTotal(double pesoTotal) {
this.pesoTotal = pesoTotal;
}
public double getPrecoKG() {
return precoKG;
}
public void setPrecoKG(double precoKG) {
this.precoKG = precoKG;
}
}
package model;
public class Venda {
private final Lixo lixo;
private double peso;
public Venda(Lixo lixo, double peso) {
this.lixo = lixo;
this.peso = peso;
}
public Lixo getLixo() {
return lixo;
}
public double getPeso() {
return peso;
}
public void setPeso(double peso) {
this.peso = peso;
}
public double calcularValorTotal() {
return this.lixo.getPrecoKG() * this.peso;
}
public double concluir() {
this.lixo.setPesoTotal(this.lixo.getPesoTotal() - this.lixo.getPesoTotal());
if(this.lixo.getPesoTotal() > 1){
this.lixo.setPesoTotal(0);
}
return calcularValorTotal();
}
}
package view;
import java.util.List;
import javax.swing.JOptionPane;
import model.Compra;
import model.Lixo;
import model.constante.EFormatacoes;
import model.constante.Elixo;
public class ComprarProdutos {
public double comprarProduto(List<Lixo> lixos, double dinheiro) {
int qtdPropostas = 0;
int valorNovaProposta = 0;
Compra compra = null;
int opcao = 0;
int indexLixo = 0;
while (opcao == 0) {
//gerar um lixo aleatorio
indexLixo = EFormatacoes.VALOR_ALEATORIO.nextInt((Elixo.values().length - 1));
compra = new Compra(Elixo.values()[indexLixo].lixo());
double precoKg = (EFormatacoes.VALOR_ALEATORIO.nextDouble() * (compra.getLixo().getPrecoKG() + (compra.getLixo().getPrecoKG() * 0.75)));
double pesoTotal = EFormatacoes.VALOR_ALEATORIO.nextDouble() * 300;
compra.getLixo().setPrecoKG(precoKg);
compra.getLixo().setPesoTotal(pesoTotal);
qtdPropostas++;
if (qtdPropostas > 3) {
valorNovaProposta += 5;
}
opcao = verificarCompra(compra, valorNovaProposta, dinheiro);
}
// valor a pagar caso cancele a compra
if (opcao == 2) {
return 100;
}
return compra.concluir(lixos.get(indexLixo)) + valorNovaProposta;
}
// MOSTRAR A PROPOSTA DE COMPRA
private static int verificarCompra(Compra compra, int valorNovaProposta, double dinheiro) {
String proposta = "Acrescimo nova proposta: " + valorNovaProposta + "\n";
proposta += "Dinheiro: " + EFormatacoes.FORMATO_DINHEIRO.format(dinheiro) + "\n\n";
proposta += "------ PROPOSTA ------\n\n";
proposta += "Tipo: " + compra.getLixo().getNome() + "\n";
proposta += "Quantidade em KG: " + EFormatacoes.FORMATO_DINHEIRO.format(compra.getLixo().getPesoTotal()) + "\n";
proposta += "Preço KG: " + EFormatacoes.FORMATO_DINHEIRO.format(compra.getLixo().getPrecoKG()) + "\n";
proposta += "Valor Total: " + EFormatacoes.FORMATO_DINHEIRO.format(compra.calcularTotal() + valorNovaProposta) + "\n\n";
proposta += "0 - Nova proposta\n";
proposta += "1 - Comprar\n";
proposta += "2 - Cancelar";
int escolha = Integer.parseInt(JOptionPane.showInputDialog(null, proposta));
if (dinheiro < compra.calcularTotal() + valorNovaProposta && escolha == 1) {
JOptionPane.showMessageDialog(null, "Seu dinheiro é insuficiente");
return 0;
} else {
return escolha;
}
}
}
package view;
import java.util.List;
import javax.swing.JOptionPane;
import model.Lixo;
import model.constante.EFormatacoes;
public class Estoque {
public void mostrarEstoque(List<Lixo> lixos) {
String produto = "";
for (Lixo lixo : lixos) {
produto += "Produto: " + lixo.getNome() + "\n";
produto += "Peso total: " + EFormatacoes.FORMATO_DINHEIRO.format(lixo.getPesoTotal()) + "\n";
produto += "preço por Kg: " + EFormatacoes.FORMATO_DINHEIRO.format(lixo.getPrecoKG()) + "\n\n";
}
JOptionPane.showMessageDialog(null, produto);
}
}
package view;
import controller.ResultadosController;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import model.Lixo;
import model.constante.EFormatacoes;
public class MenuPrincipal {
static double dinheiro = 500;
static ResultadosController resultados = new ResultadosController();
public void menuPrincipal(List<Lixo> lixos) {
int opcao = 0;
while (opcao != 4) {
String texto = "Total Dinheiro: " + EFormatacoes.FORMATO_DINHEIRO.format(dinheiro);
texto += "\n\n O que deseja fazer?\n";
texto += "1 - Verificar estoque\n";
texto += "2 - Comprar produto de catadores\n";
texto += "3 - Vender produtos\n";
texto += "4 - Desistir\n\n";
opcao = Integer.parseInt(JOptionPane.showInputDialog(null, texto));
//verificar opção selecionada
if (opcao > 4 || opcao < 1){
JOptionPane.showMessageDialog(null, "Opção inválida");
} else {
if (opcao == 1) {
resultados.mostrarEstoque(lixos);
}
if (opcao == 2) {
dinheiro -= resultados.mostrarCompraProdutos(lixos, dinheiro);
}
if (opcao == 3) {
dinheiro += resultados.mostrarPropostaVenda(lixos, dinheiro);
}
finalizarJogo(lixos, dinheiro);
}
}
}
private static double finalizarJogo(List<Lixo> lixos, double dinheiro) {
//vitoria
if (dinheiro >= 15000) {
JOptionPane.showMessageDialog(null, "Parabéns! você criou uma empresa de sucesso");
return 4;
}
List<Integer> indices = new ArrayList<>();
for (Lixo lixo : lixos) {
if (lixo.getPesoTotal() > 50) {
indices.add(lixos.indexOf(lixo));
}
}
//verificar se possuà dinheiro suficiente e lixos
if (dinheiro < 75 && indices.isEmpty()) {
JOptionPane.showMessageDialog(null, "Que pena! Sua empresa faliu");
return 4;
}
return 0;
}
}
package view;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import model.Lixo;
import model.Venda;
import model.constante.EFormatacoes;
public class PropostaVenda {
public double propostaVenda(List<Lixo> listLixos, double dinheiro) {
//popular String com os produtos em estoque
List<Integer> indices = new ArrayList<>();
String produtos = "";
boolean sair = false;
for (Lixo lixo : listLixos) {
if (lixo.getPesoTotal() > 0) {
indices.add(listLixos.indexOf(lixo));
produtos += "Indice: " + listLixos.indexOf(lixo) + "\n";
produtos += "Tipo: " + lixo.getNome() + "\n";
produtos += "Preço máximo do Kg: " + EFormatacoes.FORMATO_DINHEIRO.format(lixo.getPrecoKG()) + "\n";
produtos += "Peso total: " + EFormatacoes.FORMATO_DINHEIRO.format(lixo.getPesoTotal()) + "\n\n";
}
}
//verificar se existe produto em estoque
if (indices.isEmpty()) {
JOptionPane.showMessageDialog(null, "Você não possui produtos em estoque");
return 0;
}
int indice = 0;
double peso = 0;
//validar indice informado e peso
while (sair == false) {
indice = Integer.parseInt(JOptionPane.showInputDialog(null, "" + produtos + "digite o indice do produto que deseja vender"));
if (indices.contains(indice)) {
while (sair == false) {
peso = (Double.parseDouble(JOptionPane.showInputDialog(null, "Peso total: " + EFormatacoes.FORMATO_DINHEIRO.format(listLixos.get(indice).getPesoTotal()) + "\n\nQuantos Kg deseja vender?"))) - 0.5;
if (peso > 0 && peso <= listLixos.get(indice).getPesoTotal()) {
sair = true;
break;
}
JOptionPane.showMessageDialog(null, "Peso inválido");
}
} else {
JOptionPane.showMessageDialog(null, "Indice inválido");
}
}
return verificarPropostaVenda(indice, peso, listLixos, dinheiro);
}
private static double verificarPropostaVenda(int indice, double peso, List<Lixo> listLixos, double dinheiro) {
int qtdPropostas = 0;
int acrescimos = 0;
double precoSujerido;
Venda venda = new Venda(listLixos.get(indice), peso);
while (true) {
//popular String com os dados da proposta
precoSujerido = EFormatacoes.VALOR_ALEATORIO.nextDouble() * (venda.getLixo().getPrecoKG() * 0.65);
String proposta = "Acrescimos: " + acrescimos + "\n";
proposta += "Seu Dinheiro: " + EFormatacoes.FORMATO_DINHEIRO.format(dinheiro) + "\n\n";
proposta += "----- PROPOSTA DE VENDA -------";
proposta += "\n\n Produto: " + venda.getLixo().getNome();
proposta += "\n Quantidade: " + venda.getPeso();
proposta += "\n Preço KG: " + EFormatacoes.FORMATO_DINHEIRO.format(precoSujerido);
proposta += "\n Total: " + EFormatacoes.FORMATO_DINHEIRO.format(precoSujerido * venda.getLixo().getPesoTotal() - acrescimos);
proposta += "\n\n Deseja concluir a venda? ";
proposta += "\n 1 - Sim";
proposta += "\n 0 - Nova proposta";
//verificar quantidade de novas propostas para adicionar o acrescimo
qtdPropostas++;
if (qtdPropostas > 5) {
acrescimos += 5;
}
int opcao = Integer.parseInt(JOptionPane.showInputDialog(null, "" + proposta));
if (opcao == 1) {
venda.getLixo().setPrecoKG(precoSujerido);
return venda.concluir() - acrescimos;
}
}
}
}
Fichas
FICHA DE ATIVIDADES PRÁTICAS SUPERVISIONADAS - APS
Atividades Práticas Supervisionadas (laboratórios, atividades em biblioteca, Iniciação Científica, trabalhos Individuais e em grupo, práticas de ensino e outras)
NOME: Bruno da Cruz Santos_____________________________________________________
RA: N6557A1____________________CURSO: Ciências da computação__________________
CAMPUS: Chácara Santo Antônio_____ SEMESTRE: 3° Semestre____ TURNO: Noturno____
ASSINATURA
DATA
ATIVIDADE
TOTAL DE HORAS
ALUNO
PROFESSOR
13/03
Reunião de planejamento
4 horas
15/03
Separação de tópicos da documentação
2 horas
20/03
Pesquisar sobre o tema
8 horas
21/03
Reunião de planejamento jogo
3 horas
21/03
Criação do fluxograma
7 horas
27/03
Início de desenvolvimento do documento
8 horas
28/03
Refatoração do fluxograma
4 horas
03/04
Desenvolvimento do código
15 horas
17/04
Testes e refatoração do código
7 horas
18/04
Revisão do documento
4 horas
24/04
Finalização do código e documentação
7 horas
01/05
Juntar partes da documentação e formatar
6 horas
02/05
Revisar e formatar documentação
5 horas
TOTAL DE HORAS: 80 HORAS_____________
FICHA DE ATIVIDADES PRÁTICAS SUPERVISIONADAS - APS
Atividades Práticas Supervisionadas (laboratórios, atividades em biblioteca, Iniciação Científica, trabalhos Individuais e em grupo, práticas de ensino e outras)
NOME: Isaac Passos Araujo
RA: F325IH4____________________CURSO: Ciências da computação__________________
CAMPUS: Chácara Santo Antônio_____ SEMESTRE: 3° Semestre____ TURNO: Noturno____
ASSINATURA
DATA
ATIVIDADE
TOTAL DE HORAS
ALUNO
PROFESSOR
13/03
Reunião de planejamento
4 horas
15/03
Separação de tópicos da documentação
2 horas
20/03
Pesquisar sobre o tema
8 horas
21/03
Reunião de planejamento jogo
3 horas
21/03
Criação do fluxograma
7 horas
27/03
Início de desenvolvimento do documento
8 horas
28/03
Refatoração do fluxograma
4 horas
03/04
Desenvolvimento do código
15 horas
17/04
Testes e refatoração do código
7 horas
18/04
Revisão do documento
4 horas
24/04
Finalização do código e documentação
7 horas
01/05
Juntar partes da documentação e formatar
6 horas
02/05
Revisar e formatar documentação
5 horas
TOTAL DE HORAS: 80 HORAS_____________
FICHA DE ATIVIDADES PRÁTICAS SUPERVISIONADAS - APS
Atividades Práticas Supervisionadas (laboratórios, atividades em biblioteca, Iniciação Científica, trabalhos Individuais e em grupo, práticas de ensino e outras)
NOME: _________Felipe Santos Saquett ______________________________
RA: _______ T7438I9_____________CURSO: Ciências da computação__________________
CAMPUS: ChácaraSanto Antônio_____ SEMESTRE: 3° Semestre____ TURNO: Noturno____
ASSINATURA
DATA
ATIVIDADE
TOTAL DE HORAS
ALUNO
PROFESSOR
13/03
Reunião de planejamento
3 horas
15/03
Separação de tópicos da documentação
2 horas
20/03
Pesquisar sobre o tema
7 horas
21/03
Reunião de planejamento jogo
4 horas
21/03
Criação do fluxograma
8 horas
27/03
Início de desenvolvimento do documento
8 horas
28/03
Refatoração do fluxograma
5 horas
03/04
Desenvolvimento do código
15 horas
17/04
Testes e refatoração do código
7 horas
18/04
Revisão do documento
4 horas
24/04
Finalização do código e documentação
7 horas
01/05
Juntar partes da documentação e formatar
6 horas
02/05
Revisar e formatar documentação
4 horas
TOTAL DE HORAS: 80 HORAS_____________
FICHA DE ATIVIDADES PRÁTICAS SUPERVISIONADAS - APS
Atividades Práticas Supervisionadas (laboratórios, atividades em biblioteca, Iniciação Científica, trabalhos Individuais e em grupo, práticas de ensino e outras)
NOME: Weslley Gomes das Neves _______________________________________
RA: F30CEG0____________CURSO: Ciências da computação__________________
CAMPUS: Chácara Santo Antônio_ SEMESTRE: 3° Semestre_ TURNO: Noturno____
ASSINATURA
DATA
ATIVIDADE
TOTAL DE HORAS
ALUNO
PROFESSOR
13/03
Reunião de planejamento
4 horas
15/03
Separação de tópicos da documentação
2 horas
20/03
Pesquisar sobre o tema
8 horas
21/03
Reunião de planejamento jogo
3 horas
21/03
Criação do fluxograma
7 horas
27/03
Início de desenvolvimento do documento
8 horas
28/03
Refatoração do fluxograma
4 horas
03/04
Desenvolvimento do código
15 horas
17/04
Testes e refatoração do código
7 horas
18/04
Revisão do documento
4 horas
24/04
Finalização do código e documentação
7 horas
01/05
Juntar partes da documentação e formatar
6 horas
02/05
Revisar e formatar documentação
5 horas
TOTAL DE HORAS: 80 HORAS_____________
Bibliografia
- https://www.youtube.com/watch?v=9v5aSqJ_bf8&t=240s
- https://plan.org.br/conheca-os-17-objetivos-de-desenvolvimento-sustentavel/
- https://meiosustentavel.com.br/sustentabilidade/
- https://www.youtube.com/watch?v=tBr6GvbeJvo&t=861s
2