graph_cieletoiles.py

Created by schraf

Created on September 22, 2018

831 Bytes

C’est une belle soirée et le ciel est rempli d’étoiles. Plus précisément, il y a en moyenne 1% d’étoiles et parmi ces étoiles 1% sont rouges (les autres sont bleues). Ce qui donne par exemple :

Visuel n°1

Comme vous pouvez le constater, il est difficile de repérer les étoiles rouges (vos préférées !). Vous décidez de programmer en Python votre télescope pour qu’il les repère à votre place :


Visuel n°2

Plus précisément :

  • Créez une fonction nuit sans paramètre qui permet de créer le ciel noir avec 1% d’étoiles dont 1% seront rouges. Ainsi, en lançant nuit() on obtiendra un visuel ressemblant au n°1
  • Créez ensuite une fonction scan sans paramètre qui appellera nuit puis, autour de chaque étoile rouge, ajoutera 4 pixels blancs comme sur le visuel ci-dessous :


Visuel n°3

Remarque : On ne tiendra pas compte du fait qu’a priori mettre 4 pixels blancs peut cacher une autre étoile.


from kandinsky import *
from random import *

def nuit():
  for x in range(320):
    for y in range(240):
      c=0 # Noir color(0,0,0)
      if random()<0.01: # 1% de chance
        c=13204 # Bleu color(55,113,162)
        if random()<0.01: # 1% du 1%
          c=63488 # Rouge color(255,0,0)
      set_pixel(x,y,c)
      
def scan():
  nuit()
  for x in range(320):
    for y in range(240):
      if get_pixel(x,y)==63488:
        set_pixel(x-1, y-1, 65535) # Blanc
        set_pixel(x+1, y+1, 65535)
        set_pixel(x+1, y-1, 65535)
        set_pixel(x-1, y+1, 65535)  

# Version pour les forts en maths

def scan2():
  nuit()
  for p in range(320*240):
    if get_pixel(p%320,p//320)==63488:
      for n in range(0,5):
        set_pixel(p%320+2*(n%2)-1,p//320+2*((n//2)%2)-1, 65535)