Mario(more comfortable)

World 1-1

任天堂スーパーマリオブラザーズのWorld 1-1の最初に、マリオは下のようなブロックのピラミッドを登らなければなりません。

以下のように、レンガのハッシュ (#) を使用して、テキストではありますが、Cでピラミッドを再作成しましょう。各ハッシュは幅よりも少し高いため、ピラミッド自体も幅よりも高さが高くなります。

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

私たちが作成するプログラムはmarioと呼ばれます。そして、ユーザがピラミッドの高さを決めるために、例えば1から8までの正の整数を入力するようにしましょう。

ユーザがプロンプトに対して8を入力した場合のプログラムの動作を次に示します。

$ ./mario
Height: 8
       #  #
      ##  ##
     ###  ###
    ####  ####
   #####  #####
  ######  ######
 #######  #######
########  ########

ユーザがプロンプトに対して4を入力した場合のプログラムの動作を次に示します。

$ ./mario
Height: 4
   #  #
  ##  ##
 ###  ###
####  ####

ユーザがプロンプトに対して2を入力した場合のプログラムの動作を次に示します。

$ ./mario
Height: 2
 #  #
##  ##

最後に、プロンプトが表示されたときに1を入力した場合のプログラムの動作を示します。

$ ./mario
Height: 1
#  #

プロンプトが表示されたときに、ユーザが実際に1~8の正の整数を入力しなかった場合、プログラムはユーザがそのようにするまでプロンプトを再表示します。

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

隣接するピラミッドの 「ギャップ」 の幅は、ピラミッドの高さに関係なく、2つの#の幅と同じであることに注意してください。

次のコマンドを実行して、pset1 ディレクトリ内にmario という新しいディレクトリ (フォルダ) を作成します。

~/ $ mkdir ~/pset1/mario

marioディレクトリ内にmario.cという名前の新しいファイルを作成します。説明されているように、このプログラムを実装するため mario.cを変更します。

ウォークスルー

コードのテスト方法

コードは以下の入力時に指定されたとおりに動作しますか。

  • -1 (または他の負の数)
  • 0
  • 1から8
  • 9または他の正の数
  • 文字・文字列
  • 何も入力せず、Enterキーだけを押したとき

check50を使用して以下を実行し、コードの正確さを評価することもできます。ただし、必ず自分でコンパイルしてテストしてください。

check50 cs50/problems/2021/x/mario/more

以下を実行し、style50を使用してコードのスタイルを評価します。

style50 mario.c

提出方法

次のコマンドを実行し、GitHubのユーザ名とパスワードを入力してログインします。セキュリティのため、パスワードには実際の文字ではなくアスタリスク (*) が表示されます。

submit50 cs50/problems/2021/x/mario/more