Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wesley Isaias

Desenvolvimento de um jogo de Tabuleiro!

Recommended Posts

Objetivo

Implementar, usando a linguagem C, um jogo de tabuleiro.

Jogo da soma

No jogo da soma dois participantes disputam qual dos dois leva menos tempo para chegar ao final

de uma trilha num tabuleiro. A trilha é formada por 30 casas numeradas de 0 a 29.

Os participantes começam posicionados na casa 0 e jogam alternadamente. Para caminhar na trilha,

o jogador da vez deve calcular uma soma. Serão apresentados N números inteiros, sendo

N=(número da casa + 1) * 2. Se o participante acertar a conta, serão lançados os dados e ele

caminhará o número de casas indicados. Caso erre o resultado da soma, o jogador permanecerá no

mesmo lugar.


Exemplo:

0 1 2 3 4 5 6 7 8 ...

Jogador

1 * Jogador

2 *

Jogador da vez: 1

Quantidade de números a apresentar (N): (2+1)*2 = 6

Números apresentados: 2+7+4+1+10+5 = 29

Valor digitado pelo usuário: 29 → os dados são lançados e o valor sorteado é 1 → jogador 1 vai

para a casa 3.

Na casa 3 existe um obstáculo que faz com que o jogador tenha que voltar 3 casas, o que faz com

que ele fique posicionado novamente na casa 0 (zero). O jogador não pode retroceder além da casa

0 (zero).

0 1 2 3 4 5 6 7 8 ...

Jogador

1 * Jogador

2 *


Jogador da vez: 2

Quantidade de números a apresentar (N): (4+1)*2 = 10

Números apresentados: 2+4+9+1+10+4+3+8+2+2 = 45

Valor digitado pelo usuário: 43 → o jogador permanece na mesma posição.

Ganha o jogador que chegar primeiro na casa 29.


Implementação


A implementação do tabuleiro será feita usando um vetor de 30 posições, como mostrado abaixo:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

Cada posição do vetor representa uma casa do tabuleiro. Cada jogador vai começar da casa de

posição 0.

O vetor deve ser preenchido com valores de controle, a saber:

• 0 (zero) → casas normais

• -1 → casas com obstáculo que faz o jogador retroceder 3 casas. Lembre-se que não se pode

retroceder além da casa 0(zero). A escolha das cinco casas que terão valor -1 deve ser feita de

forma aleatória (sorteio). As casas 0 (zero) e 29 não podem ter valor -1.


Exemplo:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 -1 -1 0 0 0 0 0 0 -1 0 0 0


A cada jogada, o participante vai precisar realizar a soma de N números inteiros, sendo a

quantidade de números N = (posição_do_jogador +1)*2. O programa deve escolher aleatoriamente

todos os N números a serem somados. Estes números devem ser mostrados um a um para o usuário,

sendo apagados logo em seguida.


Se o jogador acertar a soma, o dado será lançado para definir quantas posições o jogador vai andar.

Mais uma vez, um número será sorteado de forma aleatória. Caso o participante erre a conta,

perderá a vez, permanecendo no mesmo lugar.

Quando um dos jogadores chegar ou ultrapassar a casa 29, o jogo deve ser encerrado mostrando

uma mensagem informando quem foi o vencedor.

Interface

O programa será executado em modo texto. A trilha deve ser representada por caracteres mostrados

sequencialmente na tela.

Exemplo:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 -1 -1 0 0 0 0 0 0 -1 0 0 0

Jogador1 → casa 7

Jogador2 → casa 16

Tela (sugestões):

------*1-------*-2-**------*-- ou ######@1######@#2#@@######@###


A cada número mostrado ao usuário para a soma, a tela deve ser limpada (pode ser usado o

comando system(“cls”) ;) e redesenhada novamente com o número seguinte.

Para esperar um tempo a fim de que o jogador leia o número mostrado, pode ser usado o comando

_sleep(tempo em milisegundos).

Para sortear um número, deve ser usado o comando rand() e srand(). Abaixo um programa em C

que recebe um número e sorteia um valor que se encontra na faixa de valores que vai de 1 até o


número recebido.

#include <stdio.h>

#include <stdlib.h>

#include<time.h>

main(){

int n, x;

srand(time(NULL));

printf("Digite um número: ");

scanf("%d", &n);

x=(rand()%n)+1;

printf("%d\n", x);

system("pause");

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.