fork download
  1. import random
  2.  
  3. def generuj_krajobraz(szerokosc=60, wysokosc=20):
  4. plansza = [[' ' for _ in range(szerokosc)] for _ in range(wysokosc)]
  5.  
  6. # 1. GENEROWANIE NIEBA (Gwiazdy i Księżyc)
  7. for y in range(8):
  8. for x in range(szerokosc):
  9. if random.random() < 0.04: # Szansa na gwiazdkę
  10. plansza[y][x] = random.choice(['*', '.', '+'])
  11.  
  12. # Rysowanie księżyca/słońca
  13. kx, ky = szerokosc - 12, 3
  14. ksiezyc = [" ____ ", " / \\ ", "| () |", " \\____/ "]
  15. for i, linia in enumerate(ksiezyc):
  16. for j, znak in enumerate(linia):
  17. if znak != ' ' and 0 <= ky+i < wysokosc and 0 <= kx+j < szerokosc:
  18. plansza[ky+i][kx+j] = znak
  19.  
  20. # 2. GENEROWANIE GÓR
  21. linia_gor = [10] * szerokosc
  22. h = 10
  23. for x in range(szerokosc):
  24. h += random.choice([-1, 0, 1])
  25. h = max(6, min(12, h)) # Granice wysokości gór
  26. linia_gor[x] = h
  27. plansza[h][x] = '/' if random.random() > 0.5 else '\\'
  28. # Wypełnienie wnętrza gór
  29. for y in range(h + 1, 13):
  30. plansza[y][x] = '#'
  31.  
  32. # 3. GENEROWANIE LASU (Drzewa przed górami)
  33. for x in range(0, szerokosc, random.choice([2, 3])):
  34. y_ziemia = 13
  35. plansza[y_ziemia-2][x] = '^'
  36. plansza[y_ziemia-1][x-1:x+2] = list('/|\\')
  37. plansza[y_ziemia][x] = '|'
  38.  
  39. # 4. GENEROWANIE JEZIORA (Odbicie w wodzie)
  40. for y in range(14, wysokosc):
  41. for x in range(szerokosc):
  42. if kx - 2 <= x <= kx + 8 and y % 2 == 0:
  43. plansza[y][x] = '~' # Odbicie księżyca w wodzie
  44. else:
  45. plansza[y][x] = random.choice(['-', ' ', '~'])
  46.  
  47. # Łączenie i drukowanie krajobrazu
  48. print("=" * szerokosc)
  49. for rzad in plansza:
  50. print(''.join(rzad))
  51. print("=" * szerokosc)
  52. print(" Malowniczy krajobraz generowany proceduralnie w Python 3 ")
  53.  
  54. if __name__ == "__main__":
  55. generuj_krajobraz()
  56. # your code goes here
Success #stdin #stdout 0.07s 14144KB
stdin
Standard input is empty
stdout
============================================================
                              +  *       *                  
                           .     .                          
                                   +                        
    *                 *       .                   ____      
            .      .                *          + / . .\     
    +            *       *                      |  ()  |  + 
                .                   *        \   /_//_/     
  +           +               +/\\       \\//#/ \#\##\//\  \
                             \/###/  /\ \######\#########/\#
                   \        \######\\##\####################
\  /\ \  /\/      \#\ \   \/################################
^/\^#/^\/^##^\ ^ /^##^#/^\#^##^##^##^##^##^##^##^##^##^##^##
##/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\#
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  
~~~  - ~- ~--  ~ ~ ~- -~ ~ ~~ -- ~--    -  ~~-~~~~~~~~~~~  ~
  --- - ~~--~-~  ~- -~~ ~~  -~ ~---~ ~-~-~~    - ~~~-~  -~~-
- --~ -~ ~~   ~--    - ~  -   -- -~- ~~ ~~  -~~~~~~~~~~~~~- 
 ~~ -~- ---- -  - ~~~ ~~-~ ~~- ~~-   -~ ---~~--~ ~ ~ ~~ ~ -~
~~~~ - -~~-~~  ~~ - --   -   ~- --- ~ ~ ~~- --~~~~~~~~~~~-- 
- -~    ~ --  ~ - ~~ -~-~ -~~ --~-~       ~-    ~-- -  - ~~-
============================================================
  Malowniczy krajobraz generowany proceduralnie w Python 3