Skip to content

Commit d48a668

Browse files
author
Giancarlo Rigo
committed
original
0 parents  commit d48a668

17 files changed

+1388
-0
lines changed

README.txt

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
Douglas Bettioli Barreto nº USP: 6920223
2+
Giancarlo Rigo nº USP: 6910024
3+
Rafael Reggiani Manzo nº USP: 6797150
4+
5+
- Programa
6+
7+
Como executar: ./Naufragos framesPorSegundo tempoMaximo, por exemplo, ./Naufragos 10 10
8+
Como compilar: make
9+
10+
- Testes
11+
12+
Como executar: ./testes
13+
Como compilar: make testes
14+
15+
- Limpeza
16+
17+
Dos códigos- objetos: make clean
18+
Dos arquivos temporários: make clean-temp
19+
Remoção do conteúdo da pasta: make real-clean
20+
21+
- Relatório dos Testes:
22+
23+
-> Robustez: O programa sobrevive em condições especiais, como número de passageiros muito grande ou muito pequeno ou velocidade muito próxima de zero? O que acontece se dois passageiros se chocam um com o outro?
24+
25+
Com número de passageiros muito pequeno, o programa roda sem problema. Já com número de passageiros muito grande, o resultado varia devido a iniciação do rand. Entretanto, para número de passageiros maiores de 300, o programa na maioria dos casos travou.
26+
As velocidades muito baixas, as pessoas na maioria dos casos, param devido ao trucamento(int).
27+
Ao ocorrer uma colisão será impresso 'X' no local onde ocorreu a mesma.
28+
29+
-> Corretude: O programa detecta corretamente o choque entre 2 passageiros?
30+
A análise de corretude de colisões será baseada no método corretude que cria um mar pequeno com muitas pessoas, ocasionando varias colisões e
31+
mostrando que o programa resiste e realiza corretamente o choque entre os 2 passageiros.

bib/colisao.h

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
fila detectaColisao(fila pessoas, double deltaT);
2+
void colide(item * p1, item * p2, double deltaT);
3+
fila recolhePessoa(fila pessoas, fila p);
4+
void colideCoral(item coral, item *p, double deltaT);
5+
void colideComBorda(fila naufragos, item *p, int borda, int l_max, int c_max);
6+
void colideEstatico(item estatico, item *movel, double deltaT);
7+
void colideEsfera(item estatico, item *movel, double deltaT);

bib/colisao.h~

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
fila detectaColisao(fila pessoas, double deltaT);
2+
void colide(item * p1, item * p2, double deltaT);
3+
fila recolhePessoa(fila pessoas, fila p);
4+
void colideCoral(item coral, item *p, double deltaT);
5+
void colideComBorda( item *p, int borda, int l_max, int c_max);
6+
void colideEstatico(item estatico, item *movel, double deltaT);
7+
void colideEsfera(item estatico, item *movel, double deltaT);

bib/desloc.h

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
int direcao(int x, int y);
2+
double angulo(double x, double y);
3+
double modulo(vetor v);
4+
void markov(item *p, double deltaT);
5+
double distancia(vetor pos1, vetor pos2);
6+
7+
/*M_PI nao e padrao ansi*/
8+
9+
#ifndef M_PI
10+
#define M_PI 3.141592653589793238462643
11+
#endif
12+
13+
#define VMIN 70
14+
#define VMAX 140
15+
16+
#define L 0
17+
#define NE 1
18+
#define N 2
19+
#define NO 3
20+
#define O 4
21+
#define SO 5
22+
#define S 6
23+
#define SE 7

bib/desloc.h~

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
int direcao(int x, int y);
2+
double angulo(double x, double y);
3+
double modulo(vetor v);
4+
void markov(item *p, double deltaT);,double distancia(vetor pos1, vetor pos2);
5+
6+
/*M_PI nao e padrao ansi*/
7+
8+
#ifndef M_PI
9+
#define M_PI 3.141592653589793238462643
10+
#endif
11+
12+
#define VMIN 70
13+
#define VMAX 140
14+
15+
#define L 0
16+
#define NE 1
17+
#define N 2
18+
#define NO 3
19+
#define O 4
20+
#define SO 5
21+
#define S 6
22+
#define SE 7

bib/mar.h

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
fila atualizaMar(fila naufragos, int l_max, int c_max, double deltaT);
2+
fila geraPessoas(fila naufragos, int numPessoas, int l_max, int c_max);
3+
fila geraRecifes(fila naufragos, int numRecifes, int l_max, int c_max);
4+
fila geraBotes(fila naufragos, int l_max, int c_max);
5+
fila geraAsimov(fila naufragos, int l_max, int c_max);
6+
void boteBorda(item *bote, int l_max, int c_max);
7+
void imprimeMar(fila naufragos);
8+
void liberaMar(fila naufragos);
9+
int validaPos(fila naufragos, item *it);

bib/mar.h~

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
fila atualizaMar(fila naufragos, int l_max, int c_max, double deltaT);
2+
fila geraPessoas(fila naufragos, int numPessoas, int l_max, int c_max);
3+
fila geraRecifes(fila naufragos, int numRecifes, int l_max, int c_max);
4+
fila geraBotes(fila naufragos, int l_max, int c_max);
5+
fila geraAsimov(fila naufragos, int l_max, int c_max);
6+
void boteBorda(item *bote, int l_max, int c_max);
7+
void imprimeMar(fila naufragos);
8+
void liberaMar(fila naufragos);
9+
int validaPos(fila naufragos, item it);

bib/tipos.h

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
typedef struct vtr{
2+
double x, y;
3+
} vetor;
4+
5+
/*sim, uma fila de pessoas para tratar melhor as colisões*/
6+
7+
/*
8+
E interessante convencionarmos a velocidade minima em 2 q/f(quadrados por frame)
9+
Pois um vetor de modulo 1 pode ter componentes (2^-0.5 , 2^-0.5)
10+
*/
11+
12+
typedef struct pss{
13+
char categoria; /* 1 - bote 1; 2 - bote 2; p - pessoa ; r - recife; n - navio; a - asimov;*/
14+
int atualizada;
15+
int raio;
16+
vetor pos;
17+
vetor vel;
18+
} item;
19+
20+
typedef struct n{
21+
item p;
22+
struct n *prox;
23+
} no;
24+
25+
typedef no *fila;
26+
27+
typedef struct cll{
28+
char categoria; /* 1 - bote 1; 2 - bote 2; p - pessoa ; r - recife; n - navio; a - asimov;*/
29+
fila f;
30+
} celula;
31+
32+
fila entra(fila f, item p);
33+
item sai(fila *f);
34+
int quantidade(fila f);

changelog

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
-----------------
2+
| Manzo - 15/05 |
3+
-----------------
4+
5+
A funcao markov agora se chama atualizaVelocidade e nao mais atualiza a posicao. Assim, ela tambem nao recebe mais o deltaT.
6+
7+
A funcao movePessoa agora se chama atualizaPosicao e foi movida dos arquivos colisoes para os de deslocamento.
8+
9+
A funcao direcao deixou de receber as componentes x e y do vetor como parametros para receber um vetor.
10+
11+
Os tipos da estrutura de fila foram extintos e o tipo ceula tem um ponteiro para uma pessoa.
12+
13+
A funcao atualizaMar foi reformulada para se adaptar as refatoracoes e a nova forma de deteccao de colisoes.
14+
15+
Foi criada a funcao movePessoa no arquivo de mar. Esta funcao nada mais e que um trecho de codigo que era repetido tres vezes na funcao atualizaMar.
16+
17+
O arquivo tipos.c foi extinto.
18+
19+
-----------------
20+
| Gian - 27/05 |
21+
-----------------
22+
Fim da variável substituicao em geraPessoas.
23+
24+
Alteração nas funções que utilizavam c_max e l_max.
25+
26+
Tentativas iniciais de colidir o bote com a borda( o bote está piscando).
27+
28+
Criação do ideias.txt para postar coisas que faltam fazer e ideias para simplificar coisas já existentes e afins.
29+
30+
-----------------
31+
| Gian - 28/05 |
32+
-----------------
33+
34+
Bote colide com a borda(quica).
35+
36+
Círculos vermelhos em torno dos botes para facilitar a visualização dos raios dos corais, botes, Asimov. Para desabilitar basta comentar a linha indicada no começo de mar.c

0 commit comments

Comments
 (0)