# Programa de damas de Christopher Strachey

O programa de damas de Christopher Strachey é um programa de computador criado pelo cientista britânico Christopher Strachey em 1951 e que foi executado pela primeira vez, a uma velocidade razoável, na metade de 1952, no computador Ferranti Mark I da Universidade de Manchester.
Desde cedo, Strachey demonstrou interesse por máquinas inteligentes. No início de 1951, ele ingressou no Laboratório Nacional de Física, que havia desenvolvido um protótipo de computador chamado Pilot ACE, baseado no projeto de Alan Turing conhecido como Automatic Computing Engine. Para se familiarizar com a programação dessa máquina, Strachey desenvolveu um jogo de damas inspirado no artigo A Theory of Chess and Noughts and Crosses, publicado em 1950. Ele também foi influenciado pelo trabalho de Charles Babbage, sua máquina analítica e suas propostas para jogos de xadrez e damas. Contudo, problemas como erros de programação, a potência limitada do computador e mudanças frequentes nos componentes da plataforma impediram o funcionamento adequado do programa. Na primavera de 1952, Strachey descobriu que a Universidade de Manchester possuía um computador mais avançado que o Pilot ACE, o Ferranti Mark I. Ele se dirigiu ao Computing Machine Laboratory de Manchester, onde conheceu Turing e com o incentivo dele, realizou várias melhorias no seu projeto, conseguindo fazê-lo funcionar a uma velocidade satisfatória em julho de 1952.
Esse foi o primeiro jogo desenvolvido para um computador de uso geral compatível com o modelo de Turing, em contraste com jogos como Bertie the Brain, que eram executados em máquinas dedicadas. A importância desse programa vai além dos jogos eletrônicos, pois ele foi um dos primeiros a implementar inteligência artificial e métodos de busca heurística, sendo precedido apenas pelo programa de xadrez Turochamp, idealizado por Turing em 1948. Além disso, é considerado como "provavelmente" sendo o primeiro software a utilizar uma interface gráfica.
Enquanto Strachey adaptava seu programa de damas para o Ferranti Mark I em 1952, Alexander S. Douglas desenvolveu OXO, uma versão de jogo da velha, para o EDSAC. Ambos os programas são os mais antigos exemplares conhecidos a exibir gráficos em telas eletrônicas. Embora OXO seja frequentemente citado como o primeiro jogo eletrônico da história, há debates sobre qual dos dois foi funcional primeiro. O programa de Strachey também inspirou Arthur Samuel, que o conheceu no mesmo ano durante uma conferência em Toronto, Canadá, onde Strachey apresentou seu jogo. Motivado pela apresentação, Samuel desenvolveu seu próprio programa de damas no computador IBM 701 em 1952.

## Desenvolvimento
### O Laboratório Nacional de Física e o Pilot ACE

Christopher Strachey foi um cientista da computação britânico, reconhecido como um dos pioneiros na abordagem matemática para o estudo de programas e um dos fundadores da semântica denotacional, além de ser um dos primeiros a trabalhar no desenvolvimento de linguagens de programação. Nascido em 1916, era filho de Oliver Strachey, um renomado criptógrafo britânico, e de Ray Strachey, uma escritora e ativista feminista. Ele estudou na Escola Gresham, no King's College de Cambridge e na Universidade de Cambridge. Apesar de seu notável histórico familiar, Strachey não se destacou particularmente durante seu tempo no King's College. Posteriormente, trabalhou com radares durante a Segunda Guerra Mundial e, após o conflito, passou a lecionar no Harrow School. No entanto, seu interesse por máquinas inteligentes logo se manifestou. Em janeiro de 1951, por intermédio de um amigo, foi apresentado a Mike Woodger, do Laboratório Nacional de Física (NPL), e decidiu se juntar a ele. O NPL abrigava o protótipo do computador Automatic Computing Engine (ACE), um projeto ambicioso idealizado e iniciado por Alan Turing em 1945. Contudo, o desenvolvimento enfrentou longos atrasos devido a desafios técnicos, políticos e econômicos. Desanimado e sem muita disposição para diplomacia, Turing o abandonou em 1947. Apesar disso, o trabalho continuou sob a liderança de Donald Davies, que, com sua equipe no NPL, conseguiu construir uma versão reduzida e mais simples do ACE, chamado Pilot ACE, que começou a operar em maio de 1950.
Durante seu tempo livre, Strachey desenvolveu um programa de damas com o objetivo de se familiarizar com a programação dessa máquina, concluindo o trabalho em fevereiro de 1951. Ele se inspirou em um artigo intitulado A Theory of Chess and Noughts and Crosses, publicado em 1950 no periódico Penguin Science New, escrito pelo próprio Davies. Além disso, foi influenciado pelas ideias de Charles Babbage, sua máquina analítica e suas propostas de jogos de xadrez e damas. Strachey compilou uma versão preliminar do programa em maio de 1951 no NPL, e a testou pela primeira vez no Pilot ACE em 30 de julho de 1951. Entretanto, erros no código impediram o funcionamento correto do programa. Além disso, a memória limitada do protótipo não era suficiente para executar o jogo de forma eficiente. Strachey também enfrentava dificuldades devido às frequentes mudanças nos componentes do computador, o que frequentemente tornava obsoleta parte do código que ele havia escrito.

### A Universidade de Manchester e o Ferranti Mark I

Paralelamente, na primavera de 1951, Strachey soube através de Mike Woodger que o computador Ferranti Mark I havia sido recentemente instalado na Universidade de Manchester, substituindo o Manchester Mark I, que o inspirou. Esse computador possuía mais memória do que o Pilot ACE, o que melhor atendia às necessidades dos projetos que ele pretendia desenvolver. Em julho daquele ano, o cientista visitou a Universidade de Manchester pela primeira vez para conhecer o Ferranti Mark I e foi apresentado a Turing, com o qual já tinha alguma familiaridade, uma vez que os dois haviam estudado no King's College, e que naquele momento era o vice-diretor do Computing Machine Laboratory. Durante a visita, Strachey compartilhou suas ideias sobre o desenvolvimento de um programa de damas. Esse contato o ajudou a obter o manual de uso do Ferranti Mark I, escrito há pouco tempo por Turing, para adaptar seu projeto a nova máquina. Mesmo impressionado com a ideia, Turing sugeriu que um trabalho ainda mais interessante seria simular a própria máquina, da mesma forma que o programa de análise seletiva desenvolvido para o EDSAC da Universidade de Cambridge. Convencido pela ideia, Strachey decidiu adiar temporariamente o desenvolvimento o jogo de damas. A versão final desse programa continha quase mil instruções, tornando-se, na época, o mais extenso já escrito para uma máquina, um feito do qual Strachey não tinha plena consciência.
Os incentivos de Turing foram fundamentais para Strachey, que conseguiu, por fim, fazer seu programa de damas funcionar no Ferranti Mark I. Além disso, Turing tinha grande apreço por Strachey, elogiando sua habilidade de trazer ideias inovadoras do King's College para o ambiente técnico do laboratório de Manchester. Ambos tinham personalidades semelhantes e compartilhavam um senso de humor característico. Em 1952, eles se divertiram criando, no Ferranti Mark I, um programa que gerava cartas de amor com conteúdo aleatório, utilizando números aleatórios e fragmentos de texto pré-gravados. Turing também o convenceu a desenvolver dois programas de áudio pioneiros, que permitiam ao computador tocar música. Entre as composições executadas estavam "In the Mood", de Glenn Miller, e "Baa, Baa, Black Sheep".
Inicialmente, outros membros do laboratório acharam divertido o fato de Strachey querer transferir imediatamente seu programa para uma fita perfurada, acreditando, de maneira ingênua, que ele conseguiria sucesso na primeira tentativa. Contudo, após corrigir alguns erros, o programa surpreendentemente funcionou, tocando "God Save the King" em um alto-falante. Esse feito o garantiu a reputação de ser um desenvolvedor "formidável". O projeto tinha mais de vinte páginas de extensão e continha mais de mil instruções. Strachey continuou a aprimorar seu programa e, em julho de 1952, conseguiu finalizar a adaptação, permitindo que o Ferranti Mark I jogasse uma partida completa de damas a uma velocidade razoável.

## Funcionamento

O programa simula um jogo de damas clássico. Ele utiliza uma heurística simples, calculando os três ou quatro próximos movimentos. A cada turno, ele avalia todas as posições possíveis e escolhe a mais vantajosa. Além disso, considera outros parâmetros, como o valor das damas, que recebem uma pontuação três vezes maior que a de um peão comum. O jogo é exibido em uma tela de tubo de raios catódicos. Strachey adaptou dois dos monitores do computador, originalmente destinados ao controle de funcionamento, para exibir gráficos. As telas mostram um bitboard e as posições das peças. As casas brancas do tabuleiro são numeradas de 1 a 31, e o programa utiliza três variáveis de 32 bits para registrar as posições dos peões ou damas de cada cor. As partidas são documentadas por meio de um teletipo.
O jogador inicia a partida pressionando um botão, e o programa sugere lançar uma moeda para decidir, no cara ou coroa, quem começará. O jogador informa o resultado ao computador por meio de um interruptor seguido de outro botão. O jogo ocorre de forma alternada: o computador registra seu movimento no teletipo, enquanto o jogador realiza seu movimento com o auxílio de botões, confirmando a jogada com um segundo botão. Um dos monitores exibe o movimento escolhido antes de sua confirmação, permitindo correção, caso necessário. A outra tela apresenta o progresso da partida.
Quando o jogo começa, o computador emite bipes sonoros para indicar que está pronto para aceitar o movimento do jogador. O programa exibe respostas pré-definidas com base em ações. Por exemplo, se o jogador demorar muito para fazer um movimento, o computador exibe: "Você deve jogar imediatamente ou desistir". Se houver um erro de manipulação, é exibido a mensagem "Por favor, leia as instruções e reinicie o movimento". Comportamentos inadequados geram mensagens como "Se você não seguir as instruções, não posso jogar com você" ou um brusco "Recuso-me a perder mais tempo. Vá jogar com um ser humano". A máquina, no entanto, também podia apresentar problemas técnicos, resultando em mensagens errôneas como: "Please dread zthe sintruction fcard. Shall wwe ztoss ffor zthe ffirst xmove." (Por favor, tema o cartão de instruções. Devemos lançar para o primeiro movimento?). Ao término da partida, o programa toca "God Save the King".'

## Legado

O programa de damas de Strachey foi preservado e está arquivado na Biblioteca Bodleiana da Universidade de Oxford. Existem cinco versões dele, todas escritas à mão e com cerca de vinte páginas cada. As transcrições em papel das partidas jogadas por Strachey durante os testes, registradas por meio de um teletipo, também foram conservadas. Esses registros indicam que o programa foi desenvolvido principalmente entre junho e julho de 1952, embora uma versão não datada provavelmente tenha sido escrita antes de maio de 1951. Em 2012, David Link realizou uma emulação do programa.
Este foi o primeiro jogo implementado em um computador Turing-completo de uso geral, diferentemente de jogos como Bertie the Brain, que operavam em máquinas dedicadas. O programa serviu de inspiração para Arthur Samuel, que descobriu o jogo durante uma conferência realizada em Toronto, no Canadá, durante o qual Strachey o apresentou. Em 1952, Samuel desenvolveu seu próprio programa de damas para o IBM 701. Até 1955, ele continuou a aprimorar, de forma rudimentar, a inteligência artificial do programa em versões sucessivas. Em 1956, uma dessas versões foi apresentada na televisão.
A importância do programa de damas de Strachey transcende o domínio dos jogos eletrônicos. Ele foi um dos primeiros programas a implementar inteligência artificial e um método de pesquisa heurística, sendo precedido apenas pelo programa de xadrez Turochamp, teorizado por Turing em 1948. Além disso, é considerado como sendo "provavelmente" o primeiro programa a utilizar um sistema de exibição gráfica. Na mesma época em que Strachey conseguiu rodá-lo no Ferranti Mark I, em 1952, Alexander S. Douglas desenvolveu OXO, um jogo da velha, no EDSAC. Este e o programa de Strachey são os jogos mais antigos conhecidos a oferecer exibição visual em uma tela eletrônica. Embora a maioria dos estudos sobre o tema considere OXO como o primeiro jogo eletrônico da história, alguns especialistas apontam que é difícil determinar qual dos dois foi o primeiro a ser funcional.
Durante o desenvolvimento, Strachey concebeu a ideia de um sistema de aprendizado de máquina. Ele imaginou um programa que pudesse aprender rotineiramente e considerou a possibilidade de implementá-lo em uma máquina para um jogo de Nim. Ele discutiu essa ideia com Turing por correspondência. No entanto, perdeu a oportunidade de ser o primeiro a apresentar um programa funcional que incorporasse tal conceito, sendo superado por Anthony Oettinger e seus programas desenvolvidos para o EDSAC na Universidade de Cambridge.