Jump to content
Sign in to follow this  
strajk-

Problema Topas, dúvidas

Recommended Posts

strajk-

Tenho umas dúvidas sobre o que fazer num programa que foi proposto a mim e 2 colegas de turma para resolver do Pascal.

O problema é consistido nisto:

No jogo Quarto, os jogadores colocam alternadamente uma das 16 peças num tabuleiro de 4 x 4 posições. As peças têm quatro características dicotómicas:

côr

branca ou preta;

altura

baixa ou alta

forma

redonda ou quadrada;

consistência

oca ou sólida

Ganha o jogo o primeiro jogador que colocar quatro peças em linha horizontal, vertical ou diagonal com pelo menos uma característica comum entre elas (i.e. quatro peças da mesma côr, da mesma altura, da mesma forma ou com a mesma consistência).

Tarefa

Pretende-se analisar a descrição dum tabuleiro e indicar se a condição de vitória foi satisfeita. São dadas 4 linhas de texto correspondentes às 4 linhas do tabuleiro; cada peça no tabuleiro é representada por uma sequência de 4 letras: P ou B (preta ou branca); a ou A (baixa ou alta); R ou Q (redonda ou quadrada); O ou S (oca ou sólida). As posições vazias no tabuleiro são representadas por 4 traços -.

O resultado deverá ser QUARTO se a condição de vitória está satisfeita ou NADA caso contrário.

Exemplo 1

Input

----------------

PAQSPaQSPAROPaRS

----------------

----------------

Output

QUARTO

Exemplo 2

Input

PaROBAROPaQS----

PAQSBAQOPARSBaQO

BARS--------BaQS

BAQSPAROPaQOPaRS

Output

NADA

#################################

#################################

#################################

Eu o programa em si já o tenho na cabeça e já sei o que tenho que fazer, o meu problema é ler as linhas (input) e utilizar o IF para verificar com uma variavel se de facto conseguiu ter 4 iguais consecutivas, pensei em utilizar o length nisto.

No primeiro input verifica-se o seguinte:

1ª peça: preta-alta-quadrada-solida

2ª peça: preta-baixa-quadrada-solida

3ª peça: preta-alta-redonda-oca;

4ª peça: preta-baixa-redonda-solida;

Nem eu e nem minha colega (minha colega de programação, o 3º elemento é apenas para ajudar no desenvolvimento de entender o problema) não sabemos o que fazer sinceramente com o alineamento do input ao ver se de facto consegui-se atingir o "QUARTO".

Seriam uma ajuda grande a explicar esta parte, ou impor aqui um exemplo em como resolver o problema.

Obrigado, Steven

Share this post


Link to post
Share on other sites
strajk-

O que eu tenho para já faltando apenas a maneira de ler e verificar o input.

PROGRAM um;
CONST
zz:=4 {variavel para finais do ciclo}
VAR
z:0..4; {variavel para inicio de ciclos}
a:array[1..4] of string; {array que vai guardar os 4 inputs}
b:integer; {contagem de quando uma coincide com outra vai fazer o seguinte: b:=b+1 ate chegar a 4 que faz dele: "QUARTO"}

BEGIN
b:=0
FOR z:=1 TO zz DO
  begin
   readln(a[z]);
  end;

FOR z:=1 to zz DO
  begin
   
  end;

END.

Meu problema vem a partir do segundo ciclo, eu queria inserir la um IF para verificar as 4 posições de cada array de 1 ate 4.

Mas não estou a ver como eu o vou fazer...

Estive a falar no length a pouco, mas acho que este comando não vai ser necessario.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.