Skip to content

Commit

Permalink
Add. projeto de CSP com Python + organização
Browse files Browse the repository at this point in the history
  • Loading branch information
RickyM7 committed Aug 29, 2024
1 parent 5d6e5cd commit 3d86dc6
Show file tree
Hide file tree
Showing 210 changed files with 5,838 additions and 1 deletion.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
- <a href='https://rickym7.github.io/meus-estudos-e-testes/projetos/jogo-da-forca/index.html'>Jogo da Forca (HTML, CSS, JS)</a>
- <a href='https://rickym7.github.io/meus-estudos-e-testes/projetos/jogo-da-velha/index.html'>Jogo da Velha (HTML, CSS, JS)</a>
- <a href='https://rickym7.github.io/meus-estudos-e-testes/projetos/newpipe-playlist-to-piped-json/index.html'>Conversor de Playlists do NewPipe para Arquivo Json (HTML, CSS, JS)</a>
- <a href='https://rickym7.github.io/meus-estudos-e-testes/projetos/projeto-dino-ia/dino.html'>Jogo do Dino (IA) (HTML, CSS, JS)</a>
- <a href='https://rickym7.github.io/meus-estudos-e-testes/projetos/projetos-de-ia/projeto-dino-ia/dino.html'>Jogo do Dino (IA) (HTML, CSS, JS)</a>
#### Apenas Para Celular:
- <a href='https://rickym7.github.io/meus-estudos-e-testes/projetos/pong-com-canvas/index.html'>Pong em Canvas (HTML, CSS, JS)</a>
- <a href='https://rickym7.github.io/meus-estudos-e-testes/projetos/projeto-carrinhos/index.html'>Projeto Carrinhos (HTML, CSS, JS)</a>
137 changes: 137 additions & 0 deletions projetos/projetos-de-ia/projeto-de-csp-bombeiros/CSP_Bombeiros.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
# matriz de pessoas + quantidade de aparições
pessoas = []
# atribuição dos valores do arquivo de entrada à matriz de pessoas
with open("CSP_Bombeiros/entradas/entrada_1.txt", "r", encoding="ISO-8859-1") as arquivo:
for linha in arquivo:
linha = linha.strip()
nome, valor = linha.split(", ")
pessoas.append([nome, int(valor)])


# setores (linhas = horários, colunas = dias)
incendio = [[0,2,4,6,8,10,12],
[1,3,5,7,9,11,13]]

socorro = [[14,16,18,20,22,24,26],
[15,17,19,21,23,25,27]]

telefone = [[28,30,32,34,36,38,40],
[29,31,33,35,37,39,41]]
#dia inicia em 0 = domingo e vai até 6 = sábado
dia = 0

def atribuir_pessoas_setor(pessoas, setor, dia):
for i in range(len(pessoas)):
while pessoas[i][1] > 0 and dia < 7:
if setor == incendio: # controle do setor de incêndio
if (type(setor[0][dia]) == int) and (pessoas[i][0] not in [socorro[0][dia], telefone[0][dia]]):
setor[0][dia] = pessoas[i][0]
pessoas[i][1] -= 1
if (type(setor[0][dia]) != int and type(setor[1][dia]) != int):
if all(pessoas[i][0] == x for x in [setor[0][dia], setor[1][dia]]):
dia += 1
else:
dia = 0
atribuir_pessoas_setor(pessoas, socorro, dia)
break
elif (type(setor[1][dia]) == int) and (pessoas[i][0] not in [socorro[1][dia], telefone[1][dia]]):
setor[1][dia] = pessoas[i][0]
pessoas[i][1] -= 1
if (type(setor[0][dia]) != int and type(setor[1][dia]) != int):
if all(pessoas[i][0] == x for x in [setor[0][dia], setor[1][dia]]):
dia += 1
else:
dia = 0
atribuir_pessoas_setor(pessoas, socorro, dia)
break
else:
dia += 1
atribuir_pessoas_setor(pessoas, socorro, dia)
break
elif setor == socorro: # controle do setor de socorro
if (type(setor[0][dia]) == int) and (pessoas[i][0] not in [incendio[0][dia], telefone[0][dia]]):
setor[0][dia] = pessoas[i][0]
pessoas[i][1] -= 1
if (type(setor[0][dia]) != int and type(setor[1][dia]) != int):
if all(pessoas[i][0] == x for x in [setor[0][dia], setor[1][dia]]):
dia += 1
else:
dia = 0
atribuir_pessoas_setor(pessoas, telefone, dia)
break
elif (type(setor[1][dia]) == int) and (pessoas[i][0] not in [incendio[1][dia], telefone[1][dia]]):
setor[1][dia] = pessoas[i][0]
pessoas[i][1] -= 1
if (type(setor[0][dia]) != int and type(setor[1][dia]) != int):
if all(pessoas[i][0] == x for x in [setor[0][dia], setor[1][dia]]):
dia += 1
else:
dia = 0
atribuir_pessoas_setor(pessoas, telefone, dia)
break
else:
dia += 1
atribuir_pessoas_setor(pessoas, telefone, dia)
break
else: # controle do setor de telefone
if (type(setor[0][dia]) == int) and (pessoas[i][0] not in [incendio[0][dia], socorro[0][dia]]):
setor[0][dia] = pessoas[i][0]
pessoas[i][1] -= 1
if (type(setor[0][dia]) != int and type(setor[1][dia]) != int):
if all(pessoas[i][0] == x for x in [setor[0][dia], setor[1][dia]]):
dia += 1
else:
dia = 0
atribuir_pessoas_setor(pessoas, incendio, dia)
break
elif (type(setor[1][dia]) == int) and (pessoas[i][0] not in [incendio[1][dia], socorro[1][dia]]):
setor[1][dia] = pessoas[i][0]
pessoas[i][1] -= 1
if (type(setor[0][dia]) != int and type(setor[1][dia]) != int):
dia += 1
atribuir_pessoas_setor(pessoas, incendio, dia)
break
else:
dia += 1
atribuir_pessoas_setor(pessoas, incendio, dia)
break


# imprimir horário do setor
def mostrar_setor(setor):
print("|DOM______|SEG______|TER______|QUA______|QUI______|SEX______|SAB______|")
for l in range(len(setor)):
for c in range(len(setor[0])):
if c < len(setor[0]) - 1:
if type(setor[l][c]) != int:
print(f"|{setor[l][c]}", end='')
elif type(setor[l][c]) == int and setor[l][c] < 10:
print(f"|{setor[l][c]}________", end='')
else:
print(f"|{setor[l][c]}_______", end='')
else:
if type(setor[l][c]) != int:
print(f"|{setor[l][c]}|")
elif type(setor[l][c]) == int and setor[l][c] < 10:
print(f"|{setor[l][c]}________|")
else:
print(f"|{setor[l][c]}_______|")
print()
def mostrar_setores():
print("INCENDIO")
mostrar_setor(incendio)
print("SOCORRO")
mostrar_setor(socorro)
print("TELEFONE")
mostrar_setor(telefone)

# resetar setor
def reset_setor(setor):
setor[0] = [0,2,4,6,8,10,12]
setor[1] = [1,3,5,7,9,11,13]
return setor

# TESTES
# padrão
atribuir_pessoas_setor(pessoas, incendio, dia)
mostrar_setores()
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
Juliane__, 0
Fernanda_, 1
Bruna____, 1
Ricardo__, 0
Jo�o_____, 2
Tatiane__, 3
Eduardo__, 1
Rodrigo__, 0
Pedro____, 1
Beatriz__, 0
Carlos___, 1
Leonardo_, 2
Adriana__, 0
Sabrina__, 1
Mariana__, 0
Maria____, 0
Vitor____, 1
Vanessa__, 2
Aline____, 1
Diego____, 1
Gabriel__, 0
Andr�____, 2
Gabriela_, 1
Rafaela__, 1
Carla____, 0
Renata___, 2
Felipe___, 1
Juliana__, 1
Patr�cia_, 1
Fernando_, 0
Eliane___, 3
Henrique_, 1
Gustavo__, 1
Daniel___, 1
Mateus___, 2
Alexandre, 1
Igor_____, 1
Ana______, 2
Bianca___, 1
Bruno____, 1
Marcelo__, 0
Larissa__, 1
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
Eliane___, 1
Juliane__, 4
Renata___, 1
Caio_____, 0
Henrique_, 0
Carlos___, 0
Ana______, 1
Thiago___, 2
Vanessa__, 1
Patr�cia_, 0
Gustavo__, 0
Adriana__, 1
Eduardo__, 0
Alexandre, 2
Bianca___, 2
Sabrina__, 2
Tatiane__, 2
Rafael___, 1
Leonardo_, 0
Mateus___, 0
Aline____, 0
Carla____, 2
Juliana__, 1
Fernando_, 0
Gabriel__, 0
Lucas____, 1
Jo�o_____, 1
Ricardo__, 1
Larissa__, 1
Rafaela__, 0
Andr�____, 4
Pedro____, 1
Mariana__, 1
Bruna____, 1
Felipe___, 1
Isabela__, 0
Camila___, 2
Rodrigo__, 1
Igor_____, 0
Vitor____, 0
Nat�lia__, 0
Gabriela_, 4
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
Gustavo__, 1
Fernanda_, 1
Eduardo__, 1
Lucas____, 2
Leonardo_, 3
Diego____, 3
Rafael___, 1
Vitor____, 1
Nat�lia__, 3
Alexandre, 0
Bianca___, 1
Larissa__, 1
Caio_____, 0
Thiago___, 2
Aline____, 0
Eliane___, 0
Carla____, 0
Mateus___, 1
Juliana__, 1
Henrique_, 1
Maria____, 1
Beatriz__, 3
Juliane__, 0
Sabrina__, 1
Tatiane__, 1
Ana______, 0
Daniel___, 2
Gabriela_, 1
Vanessa__, 0
Paula____, 1
Adriana__, 1
Igor_____, 1
Bruno____, 1
Gabriel__, 0
Carlos___, 1
Patr�cia_, 1
Marcelo__, 1
Bruna____, 0
Mariana__, 0
Jo�o_____, 1
Felipe___, 1
Fernando_, 1
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
Juliana__, 0
Vanessa__, 2
Paula____, 0
Eliane___, 2
Rafael___, 1
Bruna____, 1
Aline____, 0
Larissa__, 0
Bruno____, 2
Carlos___, 3
Nat�lia__, 1
Tatiane__, 0
Gustavo__, 0
Adriana__, 0
Patr�cia_, 1
Jo�o_____, 0
Caio_____, 1
Renata___, 0
Diego____, 1
Vitor____, 1
Lucas____, 0
Juliane__, 0
Gabriel__, 3
Igor_____, 3
Daniel___, 1
Maria____, 2
Andr�____, 3
Felipe___, 0
Isabela__, 1
Bianca___, 1
Carla____, 1
Rafaela__, 2
Leonardo_, 1
Alexandre, 1
Sabrina__, 0
Eduardo__, 0
Marcelo__, 2
Camila___, 0
Mateus___, 0
Thiago___, 2
Fernanda_, 3
Henrique_, 0
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
Alexandre, 0
Eduardo__, 1
Felipe___, 0
Isabela__, 0
Henrique_, 3
Paula____, 1
Vanessa__, 1
Bruno____, 1
Sabrina__, 2
Carla____, 1
Caio_____, 1
Leonardo_, 1
Tatiane__, 1
Camila___, 1
Rafael___, 0
Maria____, 0
Larissa__, 0
Gustavo__, 2
Juliane__, 0
Marcelo__, 1
Pedro____, 0
Fernanda_, 1
Patr�cia_, 1
Ricardo__, 2
Diego____, 1
Rafaela__, 0
Gabriela_, 2
Carlos___, 1
Daniel___, 0
Eliane___, 2
Lucas____, 1
Aline____, 2
Renata___, 2
Fernando_, 2
Juliana__, 2
Rodrigo__, 1
Beatriz__, 2
Igor_____, 2
Bruna____, 0
Mateus___, 0
Ana______, 1
Thiago___, 0
Loading

0 comments on commit 3d86dc6

Please sign in to comment.