Qual a soma dos pontos de um jogo de dominó?

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
mauricioportela
Usuário Nível 2
Usuário Nível 2
Mensagens: 95
Registrado em: 29 Jul 2016 04:22
Localização: Vitoria da Conquista/Bahia

Qual a soma dos pontos de um jogo de dominó?

Mensagem por mauricioportela »

Ola!

Me perguntaram qual era a soma dos pontos de um jogo de dominó. Eu pensei como resolver isso e cheguei a essa conclusão:

Código: Selecionar todos

FUNCTION Main()
    LOCAL aDomino, nSomaTotal := nSomaFaixas := nSomaPecas := 0
    // Representacao de um jogo de domino
    aDomino := {{{0,0}, {0,1}, {0,2}, {0,3}, {0,4}, {0,5}, {0,6}},;
                {{1,1}, {1,2}, {1,3}, {1,4}, {1,5}, {1,6}},;
                {{2,2}, {2,3}, {2,4}, {2,5}, {2,6}},;
                {{3,3}, {3,4}, {3,5}, {3,6}},;
                {{4,4}, {4,5}, {4,6}},;
                {{5,5}, {5,6}},;
                {{6,6}}}

    CLS
    ? "Quanto Pontos tem um Domino?"
    ? ""
    FOR f := 1 TO LEN(aDomino) // faixas
        nSomaFaixas := 0
        ? "Faixa: " + ALLTRIM(STR(aDomino[f,1,1])) + " "
        FOR p := 1 TO LEN(aDomino[f]) // pecas
            nSomaPecas := aDomino[f,p,1] + aDomino[f,p,2]
            ?? "[" + ALLTRIM(STR(aDomino[f,p,1])) + "|" + ALLTRIM(STR(aDomino[f,p,2])) + "] "
            nSomaFaixas += nSomaPecas
        NEXT
        ?? "Total: " + ALLTRIM(STR(nSomaFaixas))
        nSomaTotal += nSomaFaixas
    NEXT
    ? ""
    ? "Um domino com 28 pecas tem " + ALLTRIM(STR(nSomaTotal)) + " pontos."
RETURN Nil
Foi bom pra praticar o uso de matrizes multidimensionais.

Att.
Mauricio Portela
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Qual a soma dos pontos de um jogo de dominó?

Mensagem por JoséQuintas »

Com FOR/EACH

Código: Selecionar todos

FUNCTION Main()

   LOCAL aDomino, nTotal, nTFaixa, nTpeca, aFaixa, aPeca

   // Representacao de um jogo de domino
   aDomino := {{{0,0}, {0,1}, {0,2}, {0,3}, {0,4}, {0,5}, {0,6}}, ;
      {{1,1}, {1,2}, {1,3}, {1,4}, {1,5}, {1,6}}, ;
      {{2,2}, {2,3}, {2,4}, {2,5}, {2,6}}, ;
      {{3,3}, {3,4}, {3,5}, {3,6}}, ;
      {{4,4}, {4,5}, {4,6}}, ;
      {{5,5}, {5,6}}, ;
      {{6,6}}}

   CLS
   ? "Quanto Pontos tem um Domino?"
   ?
   nTotal := 0
   FOR EACH aFaixa IN aDomino
      ? "Faixa: " + Str( aFaixa:__EnumIndex - 1, 1 )
      nTFaixa := 0
      FOR EACH aPeca IN aFaixa
         nTPeca := aPeca[ 1 ] + aPeca[ 2 ]
         ?? " " + Transform( Str( aPeca[ 1 ], 1 ) + Str( aPeca[ 2 ], 1 ), "@R [9|9]" )
         nTFaixa += nTPeca
      NEXT
      ?? " Total: " + AllTrim( Str( nTFaixa ) )
      nTotal += nTFaixa
   NEXT
   ?
   ? "Um domino com 28 pecas tem " + AllTrim( Str( nTotal ) ) + " pontos."
   Inkey(0)

   RETURN Nil
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder