A program felépítése:
1. Legenerálja a felhasználó által megadott 5/-5 értékű cellák figyelembe vételével az „eredeti” (N x M)-es táblázatot. 
    (N-et és M-et a felhasználó adja meg és a program a nem 5/-5 értékű cellákba 0-t ír.)
    (Z jelenti a 5/-5 értékű cellák számát. Később ezeknek kell megadnunk az x és y koordinátáját, valamint azt, hogy 5-öst vagy (-5)-öst írjon bele.)
2. Megkeresi a nulla kezdőértékű cellákat, és mindegyikből egyszer elbolyong egy 5/-5 értékű cellába, majd hozzáadja a kiinduló cellához azt az értéket, ahová eljutott. 
    A bolyongás során egy cellából a lehetséges 8 irány valamelyikébe lép véletlenszerűen.
    Ha a bolyongás során kilépne a táblázatból, akkor az ellenkező oldalon jelenik meg.
3. Ezt a bolyongást megismétli cellánként S-szer. (S-et a felhasználó adja meg.)
    Az értékek az eredmény táblázatba kerülnek.
4. Az eredeti 5/-5 értékű cellákat az eredmény táblázatban megszorozza S-sel. Ezekből a cellákból nem végzett bolyongást.
5. Az 'eredmény' táblázatot egy .PPM formátumú képfájlba menti. Azért .PPM formátumot használok, mert ez szöveges, programból könnyen kiírható formátum. 
    A képfájl (eredmeny.ppm) a program mappájába kerül, innen „kézzel” kell megnyitni, pl.: GIMP-pel.
6. A program a képfájlban a legkisebb számhoz (-5*S) rendeli a sötétkék színt, a világoszöldet pedig a legnagyobbhoz (5*S). 
    A két szélsőérték között lineárisan interpolálja az RGB kódból a G és B összetevőt.
+1. A program futás közben kiírja, hogy a bolyongással melyik sorban jár. Így tudjuk követni, hogy kb. hol is tart a program a táblázaton belül.

A zip fájlban található egy eredmeny.ppm képfájl, ami a következő paraméterekkel készült:
N: 20
M: 20
Z: 4
S: 200
Add meg a(z) 1. megjelölt pontot!
x: 5
y: 5
érték: 5
Add meg a(z) 2. megjelölt pontot!
x: 5
y: 15
érték: -5
Add meg a(z) 3. megjelölt pontot!
x: 15
y: 5
érték: -5
Add meg a(z) 4. megjelölt pontot!
x: 15
y: 15
érték: 5


I.453.
Csahók Mihály, 10. osztály
Németh László Gimnázium, Budapest
csahokm@freemail.hu
Python 3.6