CS50-MCZ

Uma introdução aos empreendimentos intelectuais da Ciência da Computação e da arte da programação.


Mario (more)


Problema a Resolver

Em um arquivo chamado mario.c, em um diretório chamado mario-more, implemente um programa em C que recria uma pirâmide usandos hashes ( # ) como se fossem blocos.

Começando

Passo a Passo

Eis aqui um passo a passo para a resolução do problema.

Mundo 1-1

No início do Mundo 1-1 do jogo Super Mario Brothers da Nintendo, Mario deve pular sobre pirâmides adjacentes de blocos, como mostrado abaixo.

captura de tela de Mario pulando sobre pirâmides adjacentes

Vamos recriar essas pirâmides em C, embora em texto, usando cerquilhas (#) para os tijolos, como abaixo. Cada cerquilha é um pouco mais alta do que larga, então as próprias pirâmides também serão mais altas do que largas.

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

O programa que escreveremos será chamado de mario. E vamos permitir que o usuário decida qual deve ser a altura das pirâmides, solicitando primeiro a ele um número inteiro positivo entre, digamos, 1 e 8, inclusive.

Aqui está como o programa pode funcionar se o usuário inserir 8 quando solicitado:

$ ./mario
Altura: 8
       #  #
      ##  ##
     ###  ###
    ####  ####
   #####  #####
  ######  ######
 #######  #######
########  ########
      

Aqui está como o programa pode funcionar se o usuário inserir 4 quando solicitado:

$ ./mario
Altura: 4
   #  #
  ##  ##
 ###  ###
####  ####

Aqui está como o programa pode funcionar se o usuário inserir 2 quando solicitado:

$ ./mario
Altura: 2
 #  #
##  ##

E aqui está como o programa pode funcionar se o usuário inserir 1 quando solicitado:

$ ./mario
Altura: 1
#  #

Se o usuário não inserir um inteiro positivo entre 1 e 8, inclusive, quando solicitado, o programa deve solicitar novamente até que o usuário coopere:

$ ./mario
Altura: -1
Altura: 0
Altura: 42
Altura: 50
Altura: 4
   #  #
  ##  ##
 ###  ###
####  ####

Observe que a largura do "vão" entre as pirâmides adjacentes é igual à largura de dois hashtags, independentemente das alturas das pirâmides.

Abra o seu arquivo mario.c para implementar este problema como descrito!

Como Testar Seu Código

O seu código funciona como esperado quando você insere:

Execute o abaixo para avaliar a correção do seu código usando check50. Mas certifique-se de compilá-lo e testá-lo você mesmo também!

check50 cs50/problems/2024/x/mario/more
      

Execute abaixo para avaliar o estilo do seu código usando style50.

style50 mario.c
      
Dica

Um espaço é apenas uma pressão da tecla de espaço, assim como um ponto é apenas uma pressão de sua tecla! Apenas lembre-se que o printf requer que você os envolva com aspas duplas!


Como Enviar

No seu terminal, execute abaixo para enviar seu trabalho.

submit50 cs50/problems/2024/x/mario/more