def pandemic(deathRate,recoveryRate,population,reproductionNumber,lockdownRate,lockDown_reduceRate,finalDay):
from time import sleep
"""SIMULATION OF PANDEMIC
NOT SUPPOSED TO BE LEGIT"""
# AFFECTING VARIABLES:
day = 0
infected = 1
dead = 0
recovered = 0
totalRecovered = 0
# DATA COMPUTATION:
while day != finalDay:
# INFECTED & DEAD & TOTAL INFECTED & RECOVERED & LOCKED DOWN & POPULATION REDUCE
infected += (reproductionNumber*infected)
dead = ((infected-dead)*deathRate)/100
dead = int(dead)
infected -= dead
totalInfected = infected + dead
recovered = (infected*recoveryRate)/100
recovered = int(recovered)
totalRecovered += recovered
locked_down = (lockdownRate*population)/100
locked_down = int(locked_down)
lockedDown_reduce = (lockDown_reduceRate*locked_down)/100
lockedDown_reduce = int(lockedDown_reduce)
population -= dead
infected -= recovered
# LOCK DOWN REDUCE 1 DAY OVER 2
if day%2==0:
locked_down -= lockedDown_reduce
int(locked_down)
else:
lockedDown_reduce = 0
# SPECIAL CASES TREATMENT
if reproductionNumber == 0:
infected = 1
totalInfected = 1
if deathRate == 100:
dead = 1
infected = 1
totalInfected = 1
# COUNTING DAYS LOOP
day += 1
# ANNOUNCING DAILY DATA
print("Day", day, """:
Remaining population:""", population, """
Current infected:""", infected, """
Total infected:""", totalInfected, """
New recovered:""", recovered, """
Total recovered:""", totalRecovered, """
Number of total deaths:""", dead, """
Locked down:""", locked_down, """
Locked down reduce:""", lockedDown_reduce)
# BREAKING THE LOOP
if infected > population:
infected += (population - infected)
day += 1
if totalInfected > population:
totalInfected = population
if day%2==0:
locked_down -= lockedDown_reduce
int(locked_down)
else:
lockedDown_reduce = 0
print("FINAL DAY", day, """:
Remaining population:""", population, """
Current infected:""", infected, """
Total infected:""", totalInfected, """
New recovered:""", recovered, """
Total recovered:""", totalRecovered, """
Number of total deaths:""", dead, """
Locked down:""", locked_down, """
Locked down reduce:""", lockedDown_reduce)
break
# LOADING IMPRESSION
sleep(0.005)