Mchezo huu hauandiki fumbo kwa mkono kamwe. Huliotesha kutoka nambari moja tu, kisha hulicheza fumbo hilo dhidi yake wenyewe ili kuhakikisha kuwa si rahisi mno wala haliwezekani, kabla hujaliona.
Imeandikwa na kuhaririwa kwa Kiingereza. Toleo hili la Kiswahili limetayarishwa kwa tafsiri ya mashine; pale usahihi unapohitajika, asili ya Kiingereza ndiyo yenye mamlaka. Soma asili kwa Kiingereza →
Kiwango cha Contraption hakihifadhiwi popote. Hakuna faili linaloorodhesha mahali goli lilipo au jinsi kingo zilivyopangwa. Badala yake, kiwango chote, mwanzo wa mpira, mahali pa goli, idadi na mpangilio wa kuta zisizohamishika, orodha ya sehemu unazokabidhiwa, hukokotolewa kutoka nambari moja ya kuanzia inayoitwa mbegu. Lisha jenereta mbegu ileile na utapata, baiti kwa baiti, fumbo lilelile. 1
Hilo linawezekana kwa sababu chanzo pekee cha "unasibu" cha jenereta ni jenereta ndogo bainifu ya nambari nasibu-bandia. Ile ambayo Contraption inatumia ni mulberry32, jenereta fupi ya biti 32 iliyoandikwa na Tommy Ettinger; unaweza kuitambua kwa nambari yake ya kudumu inayoitambulisha, 0x6d2b79f5, inayoongezwa kwenye hali yake kila inapochota nambari. 2 Ni ya haraka, inatoshea katika mistari michache, na, muhimu zaidi, si nasibu hata kidogo: ni mfuatano wa kihisabati uliopangwa ambao unaonekana tu kuchanganywa. Ipe mwanzo na itatoa mkondo uleule wa nambari milele. Kisha jenereta husoma mkondo huo ili kuamua mahali pa kuweka kila kitu.
Modi ya Kila siku hutegemea ubainifu huu kufanya jambo la kijamii. Mbegu yake si nasibu; hutengenezwa kutoka kalenda. Mchezo huchukua tarehe ya leo kwa saa za ulimwengu (UTC), huiandika katika mfuatano mfupi wa herufi kama "contraption:2026-7-28", na hupitisha maandishi hayo katika kazi ya hashi ili kuyachemsha hadi nambari moja ya biti 32. 1
Hashi hiyo ni FNV-1a, kichanganyaji kinachojulikana sana kisicho cha kriptografia: huanza kutoka nambari ya kuanzia isiyobadilika, desimali 2166136261, au 0x811c9dc5, na kwa kila herufi huikunja ndani kwa operesheni ya exclusive-or kisha huzidisha kwa nambari tasa ya FNV 16777619. 3 Hilo huacha nambari ambayo ni thabiti kwa siku fulani na tofauti kabisa kutoka siku moja hadi nyingine, hivyo mabadiliko ya herufi moja tu katika tarehe hutawanya mbegu kabisa. Kwa kuwa kalenda ni ileile kwa kila mtu, ndivyo ilivyo mbegu, na ndivyo lilivyo fumbo. Wageni wawili wasiojuana walio pande tofauti za dunia hufungua Kila siku na kukabiliana na uwanja uleule kabisa, na hicho ndicho hasa kinachofanya kulinganisha alama kuwe na maana.
Changamoto ya kila siku ni ya haki si kwa sababu seva inamtumia kila mtu kiwango kilekile, bali kwa sababu nakala ya kila mtu hukokotoa upya, kwa kujitegemea, kiwango kilekile kutoka tarehe ileile.
Jiometri nasibu ni rahisi; jiometri nasibu nzuri si rahisi. Jenereta inayotawanya tu goli na kingo chache wakati mwingine itatoa kiwango ambapo mpira, ukidondoshwa kutoka juu, huanguka tu moja kwa moja ndani ya goli wenyewe. Hilo si fumbo, ni tukio la kutazama tu. Kwa hiyo kabla Contraption haijakubali dunia iliyopendekezwa, huendesha jaribio la kimya ambalo msimbo huliita preSolved: huiga kiwango bila sehemu yoyote kuwekwa na hukagua kama mpira mtupu unafika golini kwa nguvu ya uvutano pekee. Ukifika, kiwango hicho hutupwa nje na jenereta hurusha tena. 1
Huu ni mgeuzo wa hila wa jinsi unavyofikiria kwa kawaida kuhusu injini ya fizikia. Kazi ileile ya simulate() inayoendesha mashine yako inageuzwa kuelekea ndani, wakati wa uzalishaji, ili kukagua ugumu wa kiwango chenyewe. Injini hiyo ni mwamuzi wa suluhisho lako na pia mkaguzi wa ubora wa fumbo.
Kukataa kiwango rahisi mno ni nusu tu ya kazi. Hatari nyingine ni kiwango kisichowezekana, goli lililofichwa mahali ambapo hakuna mpangilio wowote wa sehemu unaoweza kulifikia. Contraption hujilinda dhidi ya hili kwa kitatuzi kidogo cha nguvu-kali (brute-force) kinachoitwa plausiblySolvable. Hakifikirii kwa ujanja. Hujaribu tu. 1
Hasa, hupitisha njia panda moja katika gridi ya nafasi juu ya uwanja na, katika kila nafasi, huijaribu ikiwa imeinamishwa kwa njia nne tofauti. Kwa kila mojawapo ya majaribio hayo ya uwekaji huendesha uigaji kamili na kuuliza: je, njia panda hiyo moja iliuelekeza mpira nyumbani? Mara tu uwekaji wowote unapofanikiwa, kiwango hutangazwa kuwa kinaweza kutatuliwa na kutumwa kwako. Kama hakuna hata mmoja unaofanya kazi baada ya kupitia gridi yote, jenereta hupendelea kukitupilia mbali kiwango hicho na kujaribu mbegu mpya.
| Kigezo cha upitishaji | Masafa | Maana |
|---|---|---|
| Njia panda X | 15 → 85, hatua 14 | safu wima kupitia uwanja |
| Njia panda Y | 30 → 120, hatua 18 | safu mlalo kushuka uwanjani |
| Pembe zilizojaribiwa | 4 | ±0.45 na ±0.8 radiani |
| Jaribio kwa kila uwekaji | uigaji kamili 1 | je, mpira unafika golini? |
Inafaa kuwa mkweli kuhusu kile ambacho hili linathibitisha, kwa sababu msimbo nao ni mkweli kuhusu hilo: maoni ya msimbo huliita "ukaguzi wa bei nafuu wa uwezekano … si kamili." Kiwango kinachopita bila shaka kina angalau suluhisho moja ghafi la njia panda moja. Kiwango kinachoshindwa bado kinaweza kutatulika kwa feni, gia, au njia panda ya ujanja zaidi ambayo gridi haikuijaribu kamwe, kwa hiyo jenereta haichukulii kushindwa kama uthibitisho wa kutowezekana. Huhifadhi dunia ya kwanza isiyo rahisi mno iliyoipata kama akiba, na kama majaribio arobaini yakipita bila suluhisho safi la sehemu moja, hutuma akiba hiyo badala ya kuzunguka milele. Matokeo ni dhamana ya kivitendo: kamwe hakuna ushindi wa bure, karibu kila mara kuna njia halisi ya kuingia, na kamwe hakuna kusubiri kusikoisha kwa kiwango "kamili". 1
Ukirudi nyuma kidogo, mtengenezaji wa viwango wa Contraption ni mfano safi wa mtindo wa zamani sana na wa jumla sana wa kutatua matatizo: zalisha na ujaribu. Pendekeza mgombea kwa nasibu; ukague dhidi ya mahitaji yako; ubakize ukipita, utupe na kupendekeza mwingine ukishindwa. Ndio mzunguko ulio nyuma ya maudhui ya kiutaratibu katika michezo isiyohesabika, nyuma ya sehemu kubwa ya ukokotoaji wa kimageuzi, na, ukikodoa macho kidogo, nyuma ya uteuzi asilia wenyewe: mabadiliko ya kijeni hupendekeza, mazingira hujaribu, walionusurika hudumu. 4
Kinachofanya toleo la Contraption kuwa la kupendeza ni kwamba jaribio hilo si kibadala cha bei nafuu cha uchezekaji, bali ndilo uchezekaji wenyewe. Jenereta haikadirii kama kiwango ni cha haki kwa kuhesabu kingo au kupima umbali. Huchezesha kiwango kihalisi, mara mbili: mara moja kikiwa tupu ili kuhakikisha si zawadi ya bure, na mara moja kwa njia panda ya kuchunguza ili kuhakikisha kuna njia. Fizikia ileile bainifu itakayohukumu suluhisho lako ndiyo fizikia iliyokagua fumbo. Hakuna "kithibitishaji cha viwango" tofauti kinachoweza kutofautiana na kanuni halisi, kwa sababu kuna seti moja tu ya kanuni, inayotumika kwa kila kitu.
Na kwa kuwa yote ni bainifu, ukaguzi huo hauna bahati kwa pande zote mbili. Mbegu ya kila siku haiwezi kula njama ya kumpa mchezaji mmoja uwanja rahisi zaidi kuliko mwingine, na haiwezi kumpa yeyote uwanja usio wa haki, kwa sababu kabla kiwango hakijawa changamoto, tayari kimeshanusurika kuchezwa, na mchezo wenyewe, dhidi yake wenyewe.