Compare commits
93 Commits
wygaszacz_
...
master
Author | SHA1 | Date | |
---|---|---|---|
d82a3483d9 | |||
7c2f48fbfb | |||
1e421bd6cd | |||
b7bbc1c317 | |||
10f2235a71 | |||
aeb5bf3bc3 | |||
fbdd2f6ac9 | |||
d9c18a3a67 | |||
d1325ac00e | |||
0b48f1647a | |||
610290e7cd | |||
b25ef4a968 | |||
213f34a0df | |||
5342416278 | |||
c4112e247b | |||
eb7b8301fc | |||
7b8c8842d8 | |||
a191781465 | |||
d15203280d | |||
|
dc9cfef284 | ||
|
82711c4c98 | ||
1f17a731b2 | |||
|
88dd3cf7ab | ||
|
c23fa7f35a | ||
1e24b39da3 | |||
|
15234836ce | ||
|
bb500aa26d | ||
a17b2dc80b | |||
8f76ea5a76 | |||
b61a339f23 | |||
fc4af333dc | |||
4c4ee05cb8 | |||
aada62586b | |||
84a7f06c49 | |||
a301fd3b03 | |||
81d69cc762 | |||
|
7551296681 | ||
627a6b5ab8 | |||
32179be076 | |||
|
c959093e38 | ||
|
7200dd8e38 | ||
|
4a49e5d829 | ||
08a66b94f4 | |||
17e38605c7 | |||
463a21048a | |||
86d4793cd7 | |||
457248b9fa | |||
|
e5d6b894bc | ||
bf0f1a4362 | |||
|
18ab66459c | ||
|
d606f376c9 | ||
544bda1766 | |||
1c4c851c3d | |||
c8ea93916b | |||
ccbb743403 | |||
e4a0f19301 | |||
321ac8490e | |||
d3387c820c | |||
35073809ef | |||
ffddbbdf0a | |||
416e35b8b5 | |||
c9e4022dba | |||
2afda6c7ff | |||
e8b5d96263 | |||
746745caa0 | |||
ba8339b4b8 | |||
33faa91bd7 | |||
dd487ac4fc | |||
08014b063f | |||
a40fb0a8e3 | |||
8d43f8abf6 | |||
9523284950 | |||
8bccebb6ca | |||
512af7d696 | |||
21fccb422f | |||
adece3ebc9 | |||
2d05a136a0 | |||
90356ec6d8 | |||
e8aa87ff54 | |||
b88ac20618 | |||
88a5f17440 | |||
fc58b7dd27 | |||
5ab552c7bf | |||
|
71cf238e65 | ||
9ca4f821e1 | |||
61c8f63437 | |||
e7d28ad14a | |||
027e111573 | |||
4b57fba82a | |||
b558c12612 | |||
7818eb4095 | |||
3bbc35e1ac | |||
d5d9b00331 |
@ -4,7 +4,7 @@
|
|||||||
<content url="file://$MODULE_DIR$">
|
<content url="file://$MODULE_DIR$">
|
||||||
<excludeFolder url="file://$MODULE_DIR$/venv" />
|
<excludeFolder url="file://$MODULE_DIR$/venv" />
|
||||||
</content>
|
</content>
|
||||||
<orderEntry type="jdk" jdkName="Python 3.10 (Sztuczna_Inteligencja_Gr16)" jdkType="Python SDK" />
|
<orderEntry type="jdk" jdkName="Python 3.9 (jakiesvirtualneenv)" jdkType="Python SDK" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10 (Sztuczna_Inteligencja_Gr16)" project-jdk-type="Python SDK" />
|
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (jakiesvirtualneenv)" project-jdk-type="Python SDK" />
|
||||||
</project>
|
</project>
|
BIN
Ikony/auto.png
Normal file
BIN
Ikony/auto.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 657 B |
BIN
Ikony/auto2.png
Normal file
BIN
Ikony/auto2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 644 B |
Binary file not shown.
Before Width: | Height: | Size: 1.0 KiB |
Binary file not shown.
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
BIN
Ikony/test2_ikona.png
Normal file
BIN
Ikony/test2_ikona.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 29 KiB |
29
enumy_i_slowniki.py
Normal file
29
enumy_i_slowniki.py
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
from enum import Enum
|
||||||
|
|
||||||
|
from stale import *
|
||||||
|
|
||||||
|
|
||||||
|
class ZawartoscPola(Enum):
|
||||||
|
PUSTE = 0
|
||||||
|
SCIANA = 1
|
||||||
|
SCIANA2 = 2
|
||||||
|
SYGNALIZATOR_CZERWONY = 3
|
||||||
|
SYGNALIZATOR_ZOLTY = 4
|
||||||
|
SYGNALIZATOR_ZIELONY = 5
|
||||||
|
|
||||||
|
|
||||||
|
class Swiatlo(Enum):
|
||||||
|
CZERWONE = 0
|
||||||
|
CZERWONE_Z_ZOLTYM = 1
|
||||||
|
ZIELONE = 2
|
||||||
|
ZOLTE = 3
|
||||||
|
|
||||||
|
|
||||||
|
ZawartoscPolaNaKolorPola = {
|
||||||
|
ZawartoscPola.PUSTE: CZARNY,
|
||||||
|
ZawartoscPola.SCIANA: JASNOSZARY,
|
||||||
|
ZawartoscPola.SCIANA2: SZARY,
|
||||||
|
ZawartoscPola.SYGNALIZATOR_CZERWONY: CZERWONY,
|
||||||
|
ZawartoscPola.SYGNALIZATOR_ZOLTY: ZOLTY,
|
||||||
|
ZawartoscPola.SYGNALIZATOR_ZIELONY: ZIELONY
|
||||||
|
}
|
435
main.py
435
main.py
@ -1,90 +1,369 @@
|
|||||||
import math
|
|
||||||
import os
|
import os
|
||||||
import random
|
import random
|
||||||
|
|
||||||
import pygame
|
import pygame
|
||||||
|
|
||||||
FPS = 1
|
from enumy_i_slowniki import *
|
||||||
|
|
||||||
SZEROKOSC_OKNA = 1280
|
#
|
||||||
WYSOKOSC_OKNA = 960
|
okno = pygame.display.set_mode((SZEROKOSC_OKNA, WYSOKOSC_OKNA))
|
||||||
|
#
|
||||||
LICZBA_POL_W_POZIOMIE = 8
|
droga_A = [[False, w, 7] for w in range(LICZBA_POL_W_PIONIE)]
|
||||||
LICZBA_POL_W_PIONIE = 6
|
swiatlo_A = Swiatlo.CZERWONE
|
||||||
|
pole_postojowe_A = (9, 7)
|
||||||
Krata = []
|
sygnalizator_A = ((10, 9), (11, 9), (12, 9))
|
||||||
for rzad in range(LICZBA_POL_W_PIONIE):
|
indeks_petli_A = None
|
||||||
Krata.append([])
|
for i in range(len(droga_A)):
|
||||||
for kolumna in range(LICZBA_POL_W_POZIOMIE):
|
x = droga_A[i]
|
||||||
Krata[rzad].append(random.randint(0, 9))
|
if x[1] == pole_postojowe_A[0] and x[2] == pole_postojowe_A[1]:
|
||||||
|
indeks_petli_A = i
|
||||||
bok_pola = min(int(SZEROKOSC_OKNA / LICZBA_POL_W_POZIOMIE), int(WYSOKOSC_OKNA / LICZBA_POL_W_PIONIE))
|
#
|
||||||
odstep_miedzy_polami = max(1, math.floor(0.0625 * bok_pola))
|
droga_B = [[False, w, 7] for w in range(0, 7)] + [[False, 7, k] for k in range(7, LICZBA_POL_W_POZIOMIE)]
|
||||||
bok_pola -= odstep_miedzy_polami
|
swiatlo_B = Swiatlo.ZIELONE
|
||||||
|
pole_postojowe_B = (7, 8)
|
||||||
BIALY = (255, 255, 255)
|
sygnalizator_B = ((3, 10), (4, 10), (5, 10))
|
||||||
JASNOSZARY1 = (180, 180, 180)
|
indeks_petli_B = None
|
||||||
|
for i in range(len(droga_B)):
|
||||||
OKNO = pygame.display.set_mode((SZEROKOSC_OKNA, WYSOKOSC_OKNA))
|
x = droga_B[i]
|
||||||
pygame.display.set_caption("Okno1")
|
if x[1] == pole_postojowe_B[0] and x[2] == pole_postojowe_B[1]:
|
||||||
|
indeks_petli_B = i
|
||||||
TEST1_IKONA = pygame.transform.scale(pygame.image.load(os.path.join('Ikony', 'test1_ikona.png')), (500, 500))
|
#
|
||||||
TRAKTOR_IKONA = pygame.transform.scale(pygame.image.load(os.path.join('Ikony', 'traktor_ikona.png')), (100, 100))
|
krata = [[_ for _ in range(LICZBA_POL_W_POZIOMIE)] for _ in range(LICZBA_POL_W_PIONIE)]
|
||||||
wozek_ikona = pygame.transform.scale(pygame.image.load(os.path.join('Ikony', 'wozek.png')),
|
#
|
||||||
(bok_pola - odstep_miedzy_polami, bok_pola - odstep_miedzy_polami))
|
for w in range(LICZBA_POL_W_PIONIE):
|
||||||
wozek_ze_skrzynka_ikona = pygame.image.load(os.path.join('Ikony', 'wozek_ze_skrzynka.png'))
|
for k in range(LICZBA_POL_W_POZIOMIE):
|
||||||
|
krata[w][k] = ZawartoscPola.SCIANA2
|
||||||
|
#
|
||||||
|
for w in range(LICZBA_POL_W_PIONIE):
|
||||||
|
krata[w][5] = ZawartoscPola.SCIANA
|
||||||
|
krata[w][6] = ZawartoscPola.PUSTE
|
||||||
|
krata[w][7] = ZawartoscPola.PUSTE
|
||||||
|
krata[w][8] = ZawartoscPola.SCIANA
|
||||||
|
#
|
||||||
|
krata[7][8] = ZawartoscPola.PUSTE
|
||||||
|
krata[8][8] = ZawartoscPola.PUSTE
|
||||||
|
#
|
||||||
|
for w in [7, 8]:
|
||||||
|
for k in range(8, LICZBA_POL_W_POZIOMIE):
|
||||||
|
krata[w][k] = ZawartoscPola.PUSTE
|
||||||
|
#
|
||||||
|
for k in range(8, LICZBA_POL_W_POZIOMIE):
|
||||||
|
krata[6][k] = ZawartoscPola.SCIANA
|
||||||
|
for k in range(8, LICZBA_POL_W_POZIOMIE):
|
||||||
|
krata[9][k] = ZawartoscPola.SCIANA
|
||||||
|
|
||||||
|
|
||||||
def wyswietl_okno():
|
def wyswietl_okno():
|
||||||
OKNO.fill(JASNOSZARY1)
|
pygame.time.Clock().tick(FPS)
|
||||||
|
|
||||||
for rzad in range(LICZBA_POL_W_PIONIE):
|
|
||||||
for kolumna in range(LICZBA_POL_W_POZIOMIE):
|
|
||||||
pygame.draw.rect(OKNO, BIALY, [(odstep_miedzy_polami + bok_pola) * kolumna + odstep_miedzy_polami,
|
|
||||||
(odstep_miedzy_polami + bok_pola) * rzad + odstep_miedzy_polami,
|
|
||||||
bok_pola, bok_pola])
|
|
||||||
pygame.display.update()
|
|
||||||
|
|
||||||
|
|
||||||
def wyswietl_wozek():
|
|
||||||
for rzad in range(LICZBA_POL_W_PIONIE):
|
|
||||||
for kolumna in range(LICZBA_POL_W_POZIOMIE):
|
|
||||||
pom = Krata[rzad][kolumna]
|
|
||||||
if pom == 0:
|
|
||||||
pom = wozek_ikona
|
|
||||||
elif pom == 1:
|
|
||||||
pom = wozek_ze_skrzynka_ikona
|
|
||||||
elif pom == 2:
|
|
||||||
pom = TRAKTOR_IKONA
|
|
||||||
else:
|
|
||||||
pom = None
|
|
||||||
if pom != None:
|
|
||||||
pom = pygame.transform.scale(pom, (bok_pola - odstep_miedzy_polami, bok_pola - odstep_miedzy_polami))
|
|
||||||
OKNO.blit(pom, (((
|
|
||||||
odstep_miedzy_polami + bok_pola) * kolumna + odstep_miedzy_polami) + bok_pola / 2 - pom.get_width() / 2,
|
|
||||||
((
|
|
||||||
odstep_miedzy_polami + bok_pola) * rzad + odstep_miedzy_polami) + bok_pola / 2 - pom.get_height() / 2))
|
|
||||||
pygame.display.update()
|
|
||||||
|
|
||||||
|
|
||||||
klatkaz = pygame.time.Clock()
|
|
||||||
warunek_dzialania = True
|
|
||||||
while warunek_dzialania:
|
|
||||||
klatkaz.tick(FPS)
|
|
||||||
for event in pygame.event.get():
|
for event in pygame.event.get():
|
||||||
if event.type == pygame.QUIT:
|
if event.type == pygame.QUIT:
|
||||||
warunek_dzialania = False
|
# print("Użytkownik spróbował zamknąć okno.")
|
||||||
break
|
|
||||||
|
|
||||||
wyswietl_okno()
|
|
||||||
wyswietl_wozek()
|
|
||||||
|
|
||||||
pom = Krata[LICZBA_POL_W_PIONIE - 1][LICZBA_POL_W_POZIOMIE - 1]
|
|
||||||
for rzad in range(LICZBA_POL_W_PIONIE - 1, -1, -1):
|
|
||||||
for kolumna in range(LICZBA_POL_W_POZIOMIE - 1, 0, -1):
|
|
||||||
Krata[rzad][kolumna] = Krata[rzad][(kolumna - 1)]
|
|
||||||
Krata[rzad][0] = Krata[rzad - 1][LICZBA_POL_W_POZIOMIE - 1]
|
|
||||||
Krata[0][0] = pom
|
|
||||||
print(Krata)
|
|
||||||
|
|
||||||
pygame.quit()
|
pygame.quit()
|
||||||
|
narysuj_krate()
|
||||||
|
narysuj_pojazdy()
|
||||||
|
pygame.display.update()
|
||||||
|
|
||||||
|
|
||||||
|
def narysuj_krate():
|
||||||
|
okno.fill(SZARY)
|
||||||
|
for wiersz in range(LICZBA_POL_W_PIONIE):
|
||||||
|
for kolumna in range(LICZBA_POL_W_POZIOMIE):
|
||||||
|
start = (ODSTEP_MIEDZY_POLAMI + BOK_POLA) * kolumna + ODSTEP_MIEDZY_POLAMI
|
||||||
|
gora = (ODSTEP_MIEDZY_POLAMI + BOK_POLA) * wiersz + ODSTEP_MIEDZY_POLAMI
|
||||||
|
kolor_pola = ZawartoscPolaNaKolorPola[krata[wiersz][kolumna]]
|
||||||
|
pygame.draw.rect(okno, kolor_pola, [start, gora, BOK_POLA, BOK_POLA])
|
||||||
|
|
||||||
|
|
||||||
|
def narysuj_pojazdy():
|
||||||
|
ikona = pygame.transform.scale(pygame.image.load(os.path.join('Ikony', 'auto.png')), (BOK_AGENTA, BOK_AGENTA))
|
||||||
|
for x in droga_A:
|
||||||
|
if x[0]:
|
||||||
|
okno.blit(ikona, ((BOK_POLA + ODSTEP_MIEDZY_POLAMI) * x[2] + ODSTEP_MIEDZY_POLAMI,
|
||||||
|
(BOK_POLA + ODSTEP_MIEDZY_POLAMI) * x[1] + ODSTEP_MIEDZY_POLAMI))
|
||||||
|
ikona = pygame.transform.scale(pygame.image.load(os.path.join('Ikony', 'auto2.png')), (BOK_AGENTA, BOK_AGENTA))
|
||||||
|
for x in droga_B:
|
||||||
|
if x[0]:
|
||||||
|
okno.blit(ikona, ((BOK_POLA + ODSTEP_MIEDZY_POLAMI) * x[2] + ODSTEP_MIEDZY_POLAMI,
|
||||||
|
(BOK_POLA + ODSTEP_MIEDZY_POLAMI) * x[1] + ODSTEP_MIEDZY_POLAMI))
|
||||||
|
|
||||||
|
|
||||||
|
def rusz_pojazdy_na_drodze(droga, pole_postojowe, swiatlo):
|
||||||
|
nowa_droga = [[False, x[1], x[2]] for x in droga]
|
||||||
|
for i in range(len(droga) - 1, 0, -1):
|
||||||
|
x = droga[i]
|
||||||
|
if x[0]:
|
||||||
|
if x[1] == pole_postojowe[0] and x[2] == pole_postojowe[1] and swiatlo != Swiatlo.ZIELONE:
|
||||||
|
nowa_droga[i][0] = True
|
||||||
|
else:
|
||||||
|
if not droga[i - 1][0]:
|
||||||
|
nowa_droga[i][0] = False
|
||||||
|
nowa_droga[i - 1][0] = True
|
||||||
|
else:
|
||||||
|
nowa_droga[i][0] = True
|
||||||
|
return nowa_droga
|
||||||
|
|
||||||
|
|
||||||
|
def ustaw_czerwone(sygnalizator):
|
||||||
|
krata[sygnalizator[0][0]][sygnalizator[0][1]] = ZawartoscPola.SYGNALIZATOR_CZERWONY
|
||||||
|
krata[sygnalizator[1][0]][sygnalizator[1][1]] = ZawartoscPola.SCIANA2
|
||||||
|
krata[sygnalizator[2][0]][sygnalizator[2][1]] = ZawartoscPola.SCIANA2
|
||||||
|
|
||||||
|
|
||||||
|
def ustaw_czerwone_z_zoltym(sygnalizator):
|
||||||
|
krata[sygnalizator[0][0]][sygnalizator[0][1]] = ZawartoscPola.SYGNALIZATOR_CZERWONY
|
||||||
|
krata[sygnalizator[1][0]][sygnalizator[1][1]] = ZawartoscPola.SYGNALIZATOR_ZOLTY
|
||||||
|
krata[sygnalizator[2][0]][sygnalizator[2][1]] = ZawartoscPola.SCIANA2
|
||||||
|
|
||||||
|
|
||||||
|
def ustaw_zolte(sygnalizator):
|
||||||
|
krata[sygnalizator[0][0]][sygnalizator[0][1]] = ZawartoscPola.SCIANA2
|
||||||
|
krata[sygnalizator[1][0]][sygnalizator[1][1]] = ZawartoscPola.SYGNALIZATOR_ZOLTY
|
||||||
|
krata[sygnalizator[2][0]][sygnalizator[2][1]] = ZawartoscPola.SCIANA2
|
||||||
|
|
||||||
|
|
||||||
|
def ustaw_zielone(sygnalizator):
|
||||||
|
krata[sygnalizator[0][0]][sygnalizator[0][1]] = ZawartoscPola.SCIANA2
|
||||||
|
krata[sygnalizator[1][0]][sygnalizator[1][1]] = ZawartoscPola.SCIANA2
|
||||||
|
krata[sygnalizator[2][0]][sygnalizator[2][1]] = ZawartoscPola.SYGNALIZATOR_ZIELONY
|
||||||
|
|
||||||
|
|
||||||
|
def Czerwone_Czerwone_do_Zielone_Czerwone():
|
||||||
|
return swiatlo_A == Swiatlo.CZERWONE and swiatlo_B == Swiatlo.CZERWONE and poprzednio == "B"
|
||||||
|
|
||||||
|
|
||||||
|
def Czerwone_Czerwone_do_Czerwone_Zielone():
|
||||||
|
return swiatlo_A == Swiatlo.CZERWONE and swiatlo_B == Swiatlo.CZERWONE and poprzednio == "A"
|
||||||
|
|
||||||
|
|
||||||
|
def CzerwoneZZoltym_Czerwone():
|
||||||
|
return swiatlo_A == Swiatlo.CZERWONE_Z_ZOLTYM and swiatlo_B == Swiatlo.CZERWONE
|
||||||
|
|
||||||
|
|
||||||
|
def Zielone_Czerwone_1():
|
||||||
|
return swiatlo_A == Swiatlo.ZIELONE and swiatlo_B == Swiatlo.CZERWONE and poprzednio == "B"
|
||||||
|
|
||||||
|
|
||||||
|
def Zielone_Czerwone_2():
|
||||||
|
return swiatlo_A == Swiatlo.ZIELONE and swiatlo_B == Swiatlo.CZERWONE and poprzednio == "A"
|
||||||
|
|
||||||
|
|
||||||
|
def Zolte_Czerwone():
|
||||||
|
return swiatlo_A == Swiatlo.ZOLTE and swiatlo_B == Swiatlo.CZERWONE
|
||||||
|
|
||||||
|
|
||||||
|
def Czerwone_CzerwoneZZoltym():
|
||||||
|
return swiatlo_A == Swiatlo.CZERWONE and swiatlo_B == Swiatlo.CZERWONE_Z_ZOLTYM
|
||||||
|
|
||||||
|
|
||||||
|
def Czerwone_Zielone():
|
||||||
|
return swiatlo_A == Swiatlo.CZERWONE and swiatlo_B == Swiatlo.ZIELONE
|
||||||
|
|
||||||
|
|
||||||
|
def Czerwone_Zolte():
|
||||||
|
return swiatlo_A == Swiatlo.CZERWONE and swiatlo_B == Swiatlo.ZOLTE
|
||||||
|
|
||||||
|
|
||||||
|
def O_O():
|
||||||
|
return (not droga_A[indeks_petli_A][0]) and (not droga_B[indeks_petli_B][0])
|
||||||
|
|
||||||
|
|
||||||
|
def A_O():
|
||||||
|
return (droga_A[indeks_petli_A][0]) and (not droga_B[indeks_petli_B][0])
|
||||||
|
|
||||||
|
|
||||||
|
def O_B():
|
||||||
|
return (not droga_A[indeks_petli_A][0]) and (droga_B[indeks_petli_B][0])
|
||||||
|
|
||||||
|
|
||||||
|
def A_B():
|
||||||
|
return (droga_A[indeks_petli_A][0]) and (droga_B[indeks_petli_B][0])
|
||||||
|
|
||||||
|
|
||||||
|
def ustaw_Czerwone_Czerwone_do_Czerwone_Zielone():
|
||||||
|
global swiatlo_A
|
||||||
|
swiatlo_A = Swiatlo.CZERWONE
|
||||||
|
ustaw_czerwone(sygnalizator_A)
|
||||||
|
global swiatlo_B
|
||||||
|
swiatlo_B = Swiatlo.CZERWONE
|
||||||
|
ustaw_czerwone(sygnalizator_B)
|
||||||
|
global poprzednio
|
||||||
|
poprzednio = "A"
|
||||||
|
|
||||||
|
|
||||||
|
def ustaw_Czerwone_Czerwone_do_Zielone_Czerwone():
|
||||||
|
global swiatlo_A
|
||||||
|
swiatlo_A = Swiatlo.CZERWONE
|
||||||
|
ustaw_czerwone(sygnalizator_A)
|
||||||
|
global swiatlo_B
|
||||||
|
swiatlo_B = Swiatlo.CZERWONE
|
||||||
|
ustaw_czerwone(sygnalizator_B)
|
||||||
|
global poprzednio
|
||||||
|
poprzednio = "B"
|
||||||
|
|
||||||
|
|
||||||
|
def ustaw_CzerwoneZZoltym_Czerwone():
|
||||||
|
global swiatlo_A
|
||||||
|
swiatlo_A = Swiatlo.CZERWONE_Z_ZOLTYM
|
||||||
|
ustaw_czerwone_z_zoltym(sygnalizator_A)
|
||||||
|
global swiatlo_B
|
||||||
|
swiatlo_B = Swiatlo.CZERWONE
|
||||||
|
ustaw_czerwone(sygnalizator_B)
|
||||||
|
|
||||||
|
|
||||||
|
def ustaw_Zielone_Czerwone_1():
|
||||||
|
global swiatlo_A
|
||||||
|
swiatlo_A = Swiatlo.ZIELONE
|
||||||
|
ustaw_zielone(sygnalizator_A)
|
||||||
|
global swiatlo_B
|
||||||
|
swiatlo_B = Swiatlo.CZERWONE
|
||||||
|
ustaw_czerwone(sygnalizator_B)
|
||||||
|
global poprzednio
|
||||||
|
poprzednio = "B"
|
||||||
|
|
||||||
|
|
||||||
|
def ustaw_Zielone_Czerwone_2():
|
||||||
|
global swiatlo_A
|
||||||
|
swiatlo_A = Swiatlo.ZIELONE
|
||||||
|
ustaw_zielone(sygnalizator_A)
|
||||||
|
global swiatlo_B
|
||||||
|
swiatlo_B = Swiatlo.CZERWONE
|
||||||
|
ustaw_czerwone(sygnalizator_B)
|
||||||
|
global poprzednio
|
||||||
|
poprzednio = "A"
|
||||||
|
|
||||||
|
|
||||||
|
def ustaw_Zolte_Czerwone():
|
||||||
|
global swiatlo_A
|
||||||
|
swiatlo_A = Swiatlo.ZOLTE
|
||||||
|
ustaw_zolte(sygnalizator_A)
|
||||||
|
global swiatlo_B
|
||||||
|
swiatlo_B = Swiatlo.CZERWONE
|
||||||
|
ustaw_czerwone(sygnalizator_B)
|
||||||
|
|
||||||
|
|
||||||
|
def ustaw_Czerwone_CzerwoneZZoltym():
|
||||||
|
global swiatlo_A
|
||||||
|
swiatlo_A = Swiatlo.CZERWONE
|
||||||
|
ustaw_czerwone(sygnalizator_A)
|
||||||
|
global swiatlo_B
|
||||||
|
swiatlo_B = Swiatlo.CZERWONE_Z_ZOLTYM
|
||||||
|
ustaw_czerwone_z_zoltym(sygnalizator_B)
|
||||||
|
|
||||||
|
|
||||||
|
def ustaw_Czerwone_Zielone():
|
||||||
|
global swiatlo_A
|
||||||
|
swiatlo_A = Swiatlo.CZERWONE
|
||||||
|
ustaw_czerwone(sygnalizator_A)
|
||||||
|
global swiatlo_B
|
||||||
|
swiatlo_B = Swiatlo.ZIELONE
|
||||||
|
ustaw_zielone(sygnalizator_B)
|
||||||
|
|
||||||
|
|
||||||
|
def ustaw_Czerwone_Zolte():
|
||||||
|
global swiatlo_A
|
||||||
|
swiatlo_A = Swiatlo.CZERWONE
|
||||||
|
ustaw_czerwone(sygnalizator_A)
|
||||||
|
global swiatlo_B
|
||||||
|
swiatlo_B = Swiatlo.ZOLTE
|
||||||
|
ustaw_zolte(sygnalizator_B)
|
||||||
|
|
||||||
|
|
||||||
|
droga_A[14][0] = True
|
||||||
|
droga_A[12][0] = True
|
||||||
|
droga_A[10][0] = True
|
||||||
|
droga_A[9][0] = True
|
||||||
|
droga_B[len(droga_B) - 1][0] = True
|
||||||
|
droga_B[len(droga_B) - 2][0] = True
|
||||||
|
droga_B[len(droga_B) - 6][0] = True
|
||||||
|
droga_B[5][0] = True
|
||||||
|
|
||||||
|
czas_ostatniej_zmiany_swiatel = pygame.time.get_ticks()
|
||||||
|
ustaw_Czerwone_Czerwone_do_Zielone_Czerwone()
|
||||||
|
poprzednio = "B"
|
||||||
|
|
||||||
|
while True:
|
||||||
|
# print(droga_A[indeks_petli_A][0],droga_B[indeks_petli_B][0])
|
||||||
|
if O_O():
|
||||||
|
print("O - O")
|
||||||
|
elif A_O():
|
||||||
|
print("A - O")
|
||||||
|
elif A_B():
|
||||||
|
print("A - B")
|
||||||
|
elif O_B():
|
||||||
|
print("O - B")
|
||||||
|
czas_od_ostatniej_zmiany_swiatel = pygame.time.get_ticks() - czas_ostatniej_zmiany_swiatel
|
||||||
|
if Czerwone_Czerwone_do_Zielone_Czerwone():
|
||||||
|
print("Czerwone - Czerwone do Zielone - Czerwone")
|
||||||
|
if czas_od_ostatniej_zmiany_swiatel >= CZAS_ZMIANY_NA_SYGNALIZATORZE:
|
||||||
|
czas_ostatniej_zmiany_swiatel = pygame.time.get_ticks()
|
||||||
|
if O_O() or A_O() or A_B():
|
||||||
|
ustaw_CzerwoneZZoltym_Czerwone()
|
||||||
|
elif O_B():
|
||||||
|
ustaw_Czerwone_CzerwoneZZoltym()
|
||||||
|
elif CzerwoneZZoltym_Czerwone():
|
||||||
|
print("Czerwone z Zoltym - Czerwone")
|
||||||
|
if czas_od_ostatniej_zmiany_swiatel >= CZAS_ZMIANY_NA_SYGNALIZATORZE:
|
||||||
|
ustaw_Zielone_Czerwone_1()
|
||||||
|
elif Zielone_Czerwone_1():
|
||||||
|
print("Zielone - Czerwone 1")
|
||||||
|
if czas_od_ostatniej_zmiany_swiatel >= CZAS_CYKLU:
|
||||||
|
czas_ostatniej_zmiany_swiatel = pygame.time.get_ticks()
|
||||||
|
if O_O() or A_O() or A_B():
|
||||||
|
ustaw_Zielone_Czerwone_2()
|
||||||
|
elif O_B():
|
||||||
|
ustaw_Zolte_Czerwone()
|
||||||
|
elif Zielone_Czerwone_2():
|
||||||
|
print("Zielone - Czerwone 2")
|
||||||
|
if czas_od_ostatniej_zmiany_swiatel >= CZAS_CYKLU:
|
||||||
|
czas_ostatniej_zmiany_swiatel = pygame.time.get_ticks()
|
||||||
|
if O_O() or A_O():
|
||||||
|
pass
|
||||||
|
elif O_B() or A_B():
|
||||||
|
ustaw_Zolte_Czerwone()
|
||||||
|
elif Zolte_Czerwone():
|
||||||
|
print("Zolte - Czerwone")
|
||||||
|
if czas_od_ostatniej_zmiany_swiatel >= CZAS_ZMIANY_NA_SYGNALIZATORZE:
|
||||||
|
czas_ostatniej_zmiany_swiatel = pygame.time.get_ticks()
|
||||||
|
ustaw_Czerwone_Czerwone_do_Czerwone_Zielone()
|
||||||
|
elif Czerwone_CzerwoneZZoltym():
|
||||||
|
print("Czerwone - Czerwone z Zoltym")
|
||||||
|
if czas_od_ostatniej_zmiany_swiatel >= CZAS_ZMIANY_NA_SYGNALIZATORZE:
|
||||||
|
ustaw_Czerwone_Zielone()
|
||||||
|
elif Czerwone_Zielone():
|
||||||
|
print("Czerwone - Zielone")
|
||||||
|
if czas_od_ostatniej_zmiany_swiatel >= CZAS_CYKLU:
|
||||||
|
czas_ostatniej_zmiany_swiatel = pygame.time.get_ticks()
|
||||||
|
if O_B():
|
||||||
|
pass
|
||||||
|
elif O_O() or A_O() or A_B():
|
||||||
|
ustaw_Czerwone_Zolte()
|
||||||
|
elif Czerwone_Zolte():
|
||||||
|
print("Czerwone - Zolte")
|
||||||
|
if czas_od_ostatniej_zmiany_swiatel >= CZAS_ZMIANY_NA_SYGNALIZATORZE:
|
||||||
|
czas_ostatniej_zmiany_swiatel = pygame.time.get_ticks()
|
||||||
|
ustaw_Czerwone_Czerwone_do_Zielone_Czerwone()
|
||||||
|
elif Czerwone_Czerwone_do_Czerwone_Zielone():
|
||||||
|
print("Czerwone - Czerwone do Czerwone - Zielone")
|
||||||
|
if czas_od_ostatniej_zmiany_swiatel >= CZAS_ZMIANY_NA_SYGNALIZATORZE:
|
||||||
|
czas_ostatniej_zmiany_swiatel = pygame.time.get_ticks()
|
||||||
|
if A_O():
|
||||||
|
ustaw_CzerwoneZZoltym_Czerwone()
|
||||||
|
elif O_O() or O_B() or A_B():
|
||||||
|
ustaw_Czerwone_CzerwoneZZoltym()
|
||||||
|
#
|
||||||
|
wyswietl_okno()
|
||||||
|
droga_A = rusz_pojazdy_na_drodze(droga_A, pole_postojowe_A, swiatlo_A)
|
||||||
|
droga_B = rusz_pojazdy_na_drodze(droga_B, pole_postojowe_B, swiatlo_B)
|
||||||
|
#
|
||||||
|
los = random.random()
|
||||||
|
liczba_samochodow = len([x for x in droga_A if x[0]])
|
||||||
|
maks_samochodow = 7
|
||||||
|
szansa = (maks_samochodow - liczba_samochodow) / maks_samochodow -0.7
|
||||||
|
if los < szansa:
|
||||||
|
droga_A[len(droga_A) - 1][0] = True
|
||||||
|
#
|
||||||
|
liczba_samochodow = len([x for x in droga_B if x[0]])
|
||||||
|
maks_samochodow = 6
|
||||||
|
szansa = (maks_samochodow - liczba_samochodow) / maks_samochodow - 0.4
|
||||||
|
if los < szansa:
|
||||||
|
droga_B[len(droga_B) - 1][0] = True
|
||||||
|
23
stale.py
Normal file
23
stale.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
FPS = 2
|
||||||
|
#
|
||||||
|
LICZBA_POL_W_POZIOMIE = 30
|
||||||
|
LICZBA_POL_W_PIONIE = 15
|
||||||
|
BOK_POLA = 45
|
||||||
|
ODSTEP_MIEDZY_POLAMI = 1
|
||||||
|
SZEROKOSC_OKNA = LICZBA_POL_W_POZIOMIE * (BOK_POLA + ODSTEP_MIEDZY_POLAMI) + ODSTEP_MIEDZY_POLAMI
|
||||||
|
WYSOKOSC_OKNA = LICZBA_POL_W_PIONIE * (BOK_POLA + ODSTEP_MIEDZY_POLAMI) + ODSTEP_MIEDZY_POLAMI
|
||||||
|
#
|
||||||
|
BOK_AGENTA_W_POLACH = 1
|
||||||
|
BOK_AGENTA = BOK_AGENTA_W_POLACH * (BOK_POLA + ODSTEP_MIEDZY_POLAMI) - ODSTEP_MIEDZY_POLAMI
|
||||||
|
#
|
||||||
|
BIALY = (255, 255, 255)
|
||||||
|
JASNOSZARY = (200, 200, 200)
|
||||||
|
SZARY = (150, 150, 150)
|
||||||
|
CZARNY = (0, 0, 0)
|
||||||
|
#
|
||||||
|
CZERWONY = (255, 0, 0)
|
||||||
|
ZOLTY = (255, 255, 0)
|
||||||
|
ZIELONY = (0, 255, 0)
|
||||||
|
#
|
||||||
|
CZAS_ZMIANY_NA_SYGNALIZATORZE = 1500
|
||||||
|
CZAS_CYKLU = 6000
|
Loading…
Reference in New Issue
Block a user