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: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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