scholar_vit (scholar_vit) wrote,
scholar_vit
scholar_vit

Categories:

Программистское: Махатма Ганди и ядерный апокалипсис

Прочитал интересную статью о баге в игре Civilization. В первой версии этой игры, если среди AI был Махатма Ганди и игра доходила до поздней стадии (с атомными бомбами), то Индия устраивала ядерный апокалипсис.

Причина оказалась следующая. У каждого AI был задан уровень агрессии, на который отвели один байт. У непротивленца Ганди этот уровень был равен единице. На поздней стадии игры цивилизации переходили к демократии, и при этом уровень агрессии понижался на два пункта. Но так как переменная была unsigned, попытка вычесть 2 из 1 давала 256-1=255. После чего гиперагрессивный Ганди взрывал к чертовой бабушке планету.

Баг нашли и исправили, но по традиции во многих версиях игры Ганди в определенных ситуациях (например, при поражении на переговорах) сходит с ума и начинает кидаться атомными бомбами. Этакое пасхальное яйцо для старых игроков.

Иногда мне кажется, что ошибки в наших моделях делают последние гораздо реалистичнее.

Tags: computers, games, gandhi
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 12 comments