PlayPendium
Contraption · Chakula cha Mawazo

Kiwango kinachojithibitisha kuwa kinaweza kutatuliwa

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.

Tarehe ya leo 1 nambari, iliyofanyiwa hashi kuwa mbegu
inakuwa
Fumbo la kila siku 1 uwanja unaofanana kwa kila mtu

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 →

01 · Kila kitu kutoka nambari moja

Dunia nzima iliyokunjwa ndani ya mbegu

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.

02 · Fumbo la kila siku

Jinsi tarehe inavyokuwa changamoto ya pamoja

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.

03 · Jenereta hujihoji yenyewe

Kukataa fumbo linalojitatua lenyewe

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.

04 · Kitatuzi kidogo, kilichojengwa ndani

"Je, hili linaweza kufanywa kwa sehemu moja?"

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.

Utafutaji wa kitatuzi cha sehemu moja, gridi pana, minamo minne kwa kila nafasi
Kigezo cha upitishajiMasafaMaana
Njia panda X15 → 85, hatua 14safu wima kupitia uwanja
Njia panda Y30 → 120, hatua 18safu mlalo kushuka uwanjani
Pembe zilizojaribiwa4±0.45 na ±0.8 radiani
Jaribio kwa kila uwekajiuigaji kamili 1je, 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

05 · Wazo la kina

Zalisha-na-ujaribu, aina ya akili yenye unyenyekevu zaidi

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.

Sources & notes
  1. Seed-to-level generation, the preSolved rejection test, the plausiblySolvable one-ramp solver (grid ranges, four angles, up to 40 attempts, fallback world), and the daily-seed date string are all read directly from Contraption's own game engine and random-number code. Grounded in the game's code, not invented.
  2. mulberry32 is a compact 32-bit pseudo-random generator by Tommy Ettinger; it advances its state with the constant 0x6d2b79f5 and has a period of 2³². Author's reference gist (with his own later caveats on its equidistribution). gist.github.com/tommyettinger/46a874533244883189143505d203312c
  3. "Fowler–Noll–Vo hash function." Wikipedia, the 32-bit FNV offset basis is 2166136261 (0x811c9dc5) and the FNV prime is 16777619 (0x01000193); FNV-1a XORs each byte into the hash first and then multiplies by the prime. en.wikipedia.org/wiki/Fowler–Noll–Vo_hash_function
  4. On generate-and-test / "generation followed by evaluation" as a general search and problem-solving strategy, and its kinship with procedural generation and evolutionary methods. See "Procedural generation," Wikipedia. en.wikipedia.org/wiki/Procedural_generation
  5. Further reading on Procedural generation, [2410.15644] Procedural Content Generation in Games: A Survey with Insights on Emerging LLM Integration. arxiv.org.
  6. Further reading on Procedural generation, Procedural Content Generation in Games: A Survey with Insights on Emerging LLM Integration. doi.org.
  7. Further reading on Procedural generation, "Procedural City Generation with Combined Architectures for Real-time V" by Gr. open.clemson.edu.
Was this worth reading?
← Back to Contraption
PlayPendium · About · Contact · Privacy · Terms · Cookies · Accessibility · Copyright · Browse all games · Inspirations · © 2026