Reversi, um jogo da Windows Store em XAML, C# e C++

Applies to Windows only

A amostra de Reversi explica como reunir vários recursos de aplicativos da Windows Store em XAML e C#. Ela mostra também como um aplicativo em C# pode usar o C++ para cálculos com detecção de desempenho. Por fim, ela demonstra como o padrão Model-View-ViewModel (MVVM) e o teste de unidade podem facilitar a administração do desenvolvimento de um aplicativo cada vez mais complexo. Este tópico apresenta a amostra e fornece links para documentação adicional.

Para ver uma breve introdução ao MVVM, confira Usar o padrão MVVM (Model-View-ViewModel).

Para saber como a amostra usa determinados recursos, veja Saiba como a amostra de Reversi usa os recursos de aplicativo da Windows Store. Aqui você aprende sobre os recursos de seu interesse sem precisar conhecer toda a amostra.

Para saber como funciona a amostra geral, veja Entender a estrutura do aplicativo Reversi. Este tópico descreve as camadas do aplicativo e os componentes de cada uma delas.

A amostra de Reversi usa XAML e C# para o aplicativo principal e inclui as duas versões em C# e C++ do mecanismo do jogo. Nós criamos primeiro a versão em C#, juntamente com seus testes de unidade. Em seguida, nós portamos o código C# para C++ a fim de potencializar o desempenho, aproveitando todas as vantagens dos testes de unidade existentes para agilizar o desenvolvimento. Para saber sobre a criação da versão em C++, veja Conheça o mecanismo do jogo Reversi em C++.

Observação  Esta documentação reflete o estado atual da amostra no momento da criação. Confira os links a seguir para obter o código mais recente e saber sobre atualizações.

Baixe o aplicativo de exemplo Reversi ou procure o código-fonte.

Captura de tela do aplicativo de exemplo Reversi

Apresentando a amostra do Reversi

Nós criamos essa amostra para explicar como reunir vários recursos em um único aplicativo bem real. Vários recursos envolvem complexidade; mas nosso segundo objetivo é mostrar como administrar essa complexidade. Nós decidimos implementar um aplicativo de jogo de tabuleiro comum, pois ele se caracteriza por um domínio relativamente simples com recursos que variam dos mais simples até os complexos.

Esta amostra não apresenta diretrizes gerais de desenvolvimento do jogo, embora você possa usá-la como base para aplicativos de jogos de tabuleiro parecidos. Para os aplicativos da Windows Store que pedem elementos gráficos de alto desempenho, como jogos com uso intensivo de recursos, convém usar o DirectX com C++ para proporcionar a melhor experiência do usuário na maior quantidade possível de dispositivos. Para saber mais, veja Criando um jogo em DirectX.

Reversi é um dos jogos de tabuleiro mais comuns implementados em computadores. Isso porque as regras e a AI (inteligência artificial) são relativamente fáceis de implementar, e as regras existem há centenas de anos e, por isso, não estão sujeitas às leis de direitos autorais. Esse jogo também representa um problema de programação que não é muito difícil, mas também não muito fácil.

O aplicativo de exemplo Reversi inclui recursos que permitem ao jogador:

  • Ler as regras do jogo.
  • Jogar contra outros jogadores ou contra a AI, em vários níveis de dificuldade.
  • Pausar o relógio quando o jogo não estiver ativo.
  • Mostrar e ocultar o relógio.
  • Mostrar e ocultar indicações visuais dos movimentos legítimos e dos espaços afetados pelo movimento anterior.
  • Desfazer e refazer movimentos para explorar jogadas alternativas.
  • Jogar o jogo em diferentes tamanhos de tabuleiro.

Esse conjunto de recursos fornece complexidade suficiente para representar um aplicativo efetivamente do "mundo real", mas com simplicidade bastante para manter o aplicativo relativamente pequeno para fins de aprendizagem.

Quando um aplicativo atinge esse ponto de complexidade, a implementação de alterações e a adição de novos recursos podem causar problemas inesperados. A amostra de Reversi administra a crescente complexidade usando uma estrutura que separa os vários tipos de código em diferentes camadas. Essas camadas podem interagir apenas de maneiras muito específicas, o que ajuda a reduzir os efeitos colaterais acidentais, que podem ocorrer mesmo com alterações de código aparentemente pequenas. A meta principal dessa estrutura, na verdade, é facilitar a alteração do código e adicionar recursos sem maiores problemas. Dessa forma, você pode imaginar o design do código certo em um ambiente em que os erros exercem menos impacto e são mais fáceis de corrigir. Para saber mais, veja Usar o padrão MVVM (Model-View-ViewModel).

Recursos

Para obter todos os benefícios da amostra e da documentação do Reversi, é preciso primeiro entender XAML, C# e os princípios básicos do desenvolvimento de aplicativo da Windows Store. Os tópicos a seguir fornecem algumas informações de apoio necessárias:

Para saber mais sobre o design e o desenvolvimento de aplicativo da Windows Store, veja:

Se você conhece o C++, pode também aproveitar a versão em C++ do mecanismo do jogo Reversi, embora isso não seja necessário para entender o restante da amostra.

Tecnologias de jogos e desempenho do aplicativo

A amostra do Reversi destina-se à categoria popular Jogos da Windows Store e fornece código reutilizável e algumas ideias para que outras pessoas criem o jogo. Ela implementa um jogo de tabuleiro tradicional e casual para se concentrar nos princípios básicos do desenvolvimento ponta a ponta de aplicativos reais.

Os jogos estilo arcade em tempo real geralmente exigem técnicas mais avançadas do que os jogos de tabuleiro para alcançar um bom desempenho. Desempenho é um aspecto importante para todo aplicativo e, em geral, você precisa compreender os requisitos de desempenho logo de início, para fazer as escolhas certas de tecnologia. Também é preciso confirmar suas escolhas testando o desenvolvimento do aplicativo em vários dispositivos.

Tanto XAML quanto HTML/JavaScript são adequados para muitos tipos de jogos casuais, incluindo aplicativos de jogos de quebra-cabeça e tabuleiro. Os jogos de quebra-cabeça e de tabuleiro são bons aplicativos "reais" iniciais para usuários novatos em codificação ou plataforma e que estão saindo do nível "básico".

Se você pretende criar um jogo de alto desempenho (como o jogo arcade com uso intensivo de elementos gráficos), convém usar o Microsoft DirectX, que é consideravelmente mais complexo e avançado do que XAML ou HTML/JavaScript. Para saber mais, veja Criando um jogo em DirectX e Interoperabilidade entre DirectX e XAML.

Também é possível melhorar o desempenho de aplicativos XAML e JavaScript por meio da implementação de módulos específicos em C++ ou usando bibliotecas de terceiros otimizadas para desempenho. Para saber mais, veja Criando componentes do Tempo de Execução do Windows, Usando um componente do Tempo de Execução do Windows emCenários de recursos do Reversi e Conheça o mecanismo do jogo Reversi em C++. Para melhorar o desempenho geral de seu código, veja Práticas recomendadas de desempenho para aplicativos da Windows Store em C++, C# e Visual Basic.

Tópicos relacionados

Aplicativo de exemplo Reversi
Usar o padrão MVVM (Model-View-ViewModel)
Saiba como a amostra de Reversi usa os recursos de aplicativo da Windows Store
Entender a estrutura do aplicativo Reversi
Conheça o mecanismo do jogo Reversi em C++
Desenvolvendo jogos
Criando jogos excelentes para o Windows
Crie seu primeiro aplicativo da Windows Store em C# ou Visual Basic
Mapa de aplicativos do Tempo de Execução do Windows em C# ou Visual Basic
Vinculação de dados

 

 

Mostrar:
© 2014 Microsoft