Bombová legenda

Dnes se budeme bavit o příběhu, který jste pravděpodobně již slyšeli - hra Sid Meier's Civilization a mírotvůrce jménem Mahatma Gandhi.
Úvod
Chyba se objevila v jednom díle této legendární tahové série, kdy Gandhi sice neútočil, ale jeho AI se rozhodně řídila heslem "Sī vīs pācem, parā bellum", tedy "Kdo chce mír, chystá se na válku", případně se možná doslechlo o heslu našeho Tatíčka "O hranice se nejedná, o hranice se střílí". Ale dost výroků, přejdeme k věci.
Gandhi nebyl nutně agresivní, ale v momentě, kdy jste na něj zaútočili, okamžitě a vší silou vám vysvětlil, že to byla chyba, za doprovodu atomových bomb. Pamatuje si to někdo?
Příčina
Proč tomu tak bylo? Gandhi měl začínat s nejnižší agresivitou ve hře, v pozdější fázi hry si typicky vybíral demokracii, která přidávala negativní modifikátor na agresivitu, konkrétně -2. Tedy pokud Gandhi začíná s hodnotou 1, dostává se na -1. Zde však dochází k tzv. přetečení, protože v kódu hry se používají nezáporná celá čísla.
Co je to číselné přetečení? V programování se používají datové typy s různou kapacitou v bitech. Pokud tedy dostaneme -1 na Int8 (8 bitů), vezmeme nejvyšší možné číslo a odečteme to, co nám "přeteklo". Stejně to funguje i opačně při přetečení shora. Tudíž na místo -1 se dostaneme na 255. Pokud bychom měli 256, pak se dostaneme na 0.
Tímto způsobem se Gandhi dostal na nejvyšší možnou hodnotu agresivity. Avšak volba demokracie ve hře přináší nemožnost vést ofenzivní války a možnost se pouze bránit. Proto Gandhi pouze připravoval svůj jaderný arzenál a vyčkával na ten správný okamžik.
Internet, trolling a paměť
Dostáváme se k závěru, který ale přináší zajímavý zvrat. Tato chyba ve hře nikdy neexistovala.
Nikomu se nepodařilo replikovat, jak uvádějí vývojáři i samotný Sid Meier, nikdy to tak nebylo. První díly série navíc obsahovaly pouze tří stupně agresivity a hodnota Gandhiho byla stejná jako u další třetiny ostatních postav. Legenda se později změnila tak, že vývojáři údajně chybu záměrně vložili do jednoho z prvních tří dílů, ale opak je pravdou.
Zajímavostí je, že lidé si na fórech stěžovali na podlého Gandiho a vzpomínali na něj, vyšly dokonce i články na herních portálech. Celé to vypadá jako Mandelův efekt.
Nicméně vývojáři se u pátého dílu série rozhodli využít tuto legendu a udělat z ní vtip. Gandhi dostal maximální hodnotu (na škále 1 až 12) pro AI prioritu stavby a použití atomovek. Ve hře prý existuje i náhodný modifikátor pro každou AI od -2 do 2, ale Gandhi nikdy nespadne pod hodnotu 10.