označimo del kode in prikažemo sporočilo (mehurček z besedilom), ko uporabnik z miško pokaže na označeno kodo (na tablicah ob kliku ali kako drugače)
webapp dobi npr. (obseg, barva za highlight, besedilo)
trenutno te namige generira AI, kadar zna popraviti program
tudi tipkarske napake prikažemo na isti način; npr. pobarvamo besedo paret in prikažemo sporočilo “Ali si mislil parent?”
“autocomplete” oziroma predlaganje sprememb
prikaže meni možnih sprememb / popravkov
zahteva jih uporabnik, npr. s posebnim gumbom; webapp pošlje kodo in lokacijo kurzorja
webapp dobi seznam možnosti (obseg, nova koda)
če uporabnik izbere neko možnost, se v editorju zamenja besedilo v obsegu z novo kodo
v posebnem (“streaming”) oknu
vsi namigi, ki niso vezani na lokacijo v kodi
webapp dobi tag, za kateri namig gre, in vse potrebne parametre
namigi lahko imajo posebne lastnosti
če je v namigu testni primer, ga lahko uporabnik s klikom prenese v interpreter
če je v namigu animacija (GIF oz. SVG), jo lahko uporabnik po koncu predvajanja znova zažene
Triggerji
na zahtevo
uporabnik klikne gumb “Daj mi namig” ali “Predlagaj popravek”
glede na število neuspelih oddaj
po N (npr. N = 3) neuspelih poskusih omogočimo prvi namig (prikaže se napis/ikona “namig je na voljo”)
po 2*N neuspelih poskusih omogočimo drugi namig
…
ob testiranju glede na testne primere
za vsak statični namig imamo nabor testnih primerov - če program ne reši pravilno nobenega od teh primerov, je namig ustrezen
Vprašanja
ali uporabnika tikamo ali vikamo?
gumb “prikaži več” ob namigu?
ko uporabnik zahteva namig, ali zmeraj najprej testiramo program? (zelo verjetno ja)
kje / kdaj / kako se izpisujejo protiprimeri - failed unit testi / naključno generirani?
Razno
Še nekaj idej:
Sistem uporabniku pove, na kateri “stopnji” namigov je trenutno - prvi namig je res le “namig”, zadnji pa praktično že poda rešitev. Mogoče lahko z barvo (zelena/rumena/rdeča) prikažemo stopnjo namiga.
pri predikatih za delo z množicami izriši Vennova diagrama za pravilno in uporabnikovo rešitev.