#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Dec 13 17:47:56 2021
@author: puudeli
"""
import paramsPandemia as pars
Kerätään ja talletetaan tilastotietoa.
class Tilasto:
def __init__(self):
self.paiva = 0
x_max, y_max = pars.dim
# piirtoteknisiä juttuja. En edes yritä selittää :-)
self.Ndays = int(x_max/pars.points_day)+1
self.paivat = [pars.points_day*i for i in (range(0, self.Ndays))]
# Listat, joihin talletetaan terveystiedot viimeiseltä x_max
# päivältä. (x_max, koska mahtuu 'kankaalle' ilman,
# että minun tarvitsisi vaivata päätäni
# useamman x-akselin piirtämisellä :-)
self.N_vaesto = pars.alku_vaesto
self.karanteenissa = [0 for i in range(0, self.Ndays)]
self.alussa = [0 for i in range(0, self.Ndays)]
self.sairas = [0 for i in range(0, self.Ndays)]
# tilastoitavat tiedot
self.N_altis = 0
self.N_alku = 0
self.N_sairas = 0
self.N_karanteenissa = 0
self.N_immuuni = 0
self.N_kuolleet = 0
self.N_tartunnat = 0
self.N_rokotetut = 0
def aika_kuluu(self, vaesto):
"""
Päivitetään tilastot joka päivä
"""
self.tilastot(vaesto)
self.paiva += 1
# Seuraavista piirrotaan kuvaaja, joten pitää tallentaa
# päivittäiset arvot
# Liukuva puskuri:
# Listan alusta vanhin tieto pois
self.karanteenissa.pop(0)
# Listan loppuun uusin tieto
self.karanteenissa.append(self.N_karanteenissa)
self.alussa.pop(0)
self.alussa.append(self.N_alku)
self.sairas.pop(0)
self.sairas.append(self.N_sairas)
def tilastot(self, vaesto):
# Lasketaan päivän tilastot
self.N_altis = 0
self.N_alku = 0
self.N_sairas = 0
self.N_karanteenissa = 0
self.N_immuuni = 0
for fantasmi in vaesto:
if fantasmi.tila == 'altis':
self.N_altis += 1
elif fantasmi.tila == 'oireeton':
self.N_alku += 1
elif fantasmi.tila == 'sairas':
self.N_sairas += 1
elif fantasmi.tila == 'karanteenissa':
self.N_karanteenissa += 1
elif fantasmi.tila == 'immuuni':
self.N_immuuni += 1
# Luodaan/synnytetään olio hoitamaan tilastointia
tilasto = Tilasto()