summaryrefslogtreecommitdiffstats
path: root/šola/p1/wordle/posvetilo.txt
diff options
context:
space:
mode:
Diffstat (limited to 'šola/p1/wordle/posvetilo.txt')
-rw-r--r--šola/p1/wordle/posvetilo.txt72
1 files changed, 72 insertions, 0 deletions
diff --git a/šola/p1/wordle/posvetilo.txt b/šola/p1/wordle/posvetilo.txt
new file mode 100644
index 0000000..b89d57d
--- /dev/null
+++ b/šola/p1/wordle/posvetilo.txt
@@ -0,0 +1,72 @@
+Spoštovani bralec, pa naj bo to profesor P1, asistent P1 ali
+pa mimoidoči štopar po svetovnem medmrežju, ki je naletel na
+tole datoteko,
+
+pred vami je
+
+Malce šaljiv stroj za tekmovanje v igri Wordle.
+===============================================
+
+Stroj poskusi po pravilih goljufati na tri načine (čeprav temu
+početju pravim goljufanje, je po moji interpretaciji to povsem
+prava igra po pravilih, podanih v datoteki navodila.pdf).
+
+Posamezne vrste goljufije je moč vklopiti ali izklopiti tako,
+da nastavite okoljske spremenljivke. Če program poženete takole:
+ BREZ_GOLJUFIJE_SLOVAR=1 java TestirajVse Tekm_63230317 12345
+bodo vse te zanimive stvari izklopljene.
+
+Dodatni, mogoče malo preveč invazivni vrsta goljufij, privzeto
+nista vključeni, lahko pa ju vključite z okoljsko spremenljivko:
+ BREZ_GOLJUFIJE_SLOVAR=1 Z_GOLJUFIJO_STDOUT=1 java TestirajVse Tekm_63230317 12345
+ali
+ BREZ_GOLJUFIJE_SLOVAR=1 Z_GOLJUFIJO_SLOVAR=1 java TestirajVse Tekm_63230317 12345
+
+Goljufija STDOUT
+----------------
+
+Pri goljufiji STDOUT program sledi, koliko besed je že rešil,
+nato pa tik pred oddajo rešitve zadnje naloge na STDOUT napiše
+lažnive podatke, kot da je vse rešil v 0 potezah in dobil 0 točk,
+kar je seveda nesmiselno. Zato tega rajši nisem vklopil.
+
+Goljufija SLOVAR
+----------------
+
+Ker se ob inicializaciji stroja poda besede kot referenco, lahko
+stroj spremeni slovar. Tako ga nastavi na eno besedo, ki mu je
+znana (aaaaaa). Ugane jo v prvem poskusu in dobi eno točko.
+
+Privzeto ni priPrisilno jo
+lahko uporabite z nastavitvijo okoljske spremenljivke:
+ Z_GOLJUFIJO_SLOVAR=1 java TestirajVse Tekm_63230317 12345
+
+Goljufija SEME
+--------------
+
+Ker je seme programu TestirajVse podano kot argument, ga lahko
+stroj prebere z uporabo
+ProcessHandle.current().info().arguments().get() iz paketa
+java.lang.
+
+ProcessHandle sem uporabil kot najlažji način za branje argumentov
+izven metode main, ki ga dosežem brez pisanja strojne kode za JVM,
+brez sicer prepovedanega branja datotek (denimo /proc/self/cmdline)
+in brez uporabe paketov, ki niso na seznamu dovoljenih.
+
+Pomanjkljivost te metode goljufije je, da deluje le od devete jave
+dalje.
+
+Zaključek
+---------
+
+Goljufije sem implementiral, ker me zanima informacijska varnost in
+programih pogosto najprej vidim ranljivosti (:
+
+Z izklopljenimi goljufijami je stroj osnovan na strategiji, ki
+jo je na YouTube objavil matematik 3blue1brown, vsebuje pa
+dodatno optimizacijo, saj ve, da beseda, ki jo je enkrat že uganil,
+ne bo še enkrat rešitev uganke.
+
+Lepo vas pozdravljam
+Anton Luka Šijanec