Mario (more comfortable)

screenshot of Mario jumping up pyramid

以下のように、指定した高さの2つの片側半分のピラミッドを出力するプログラムを実装します。

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

仕様

  • これらの半ピラミッドをブロックのハッシュ (#) を使って作成するプログラムを、~/pset6/mario/more/mario.pyというファイルに書きます。これは問題セット1で行ったのと全く同じですが、今回のプログラムはPythonで書かなければなりません。
  • より興味深いものにするには、まず、半ピラミッドの高さを表すget_int (1から8までの正の整数) をユーザに要求します (上の図に示した半ピラミッドの高さはちょうど4で、各半ピラミッドの幅は4で、2だけ離れています) 。
  • ユーザーが8以下の正の整数を指定しなかった場合は、再度同じプロンプトを表示する必要があります。
  • 次に、目的の半ピラミッドを (printと1つまたは複数のループを使用して) 生成します。ピラミッドの左下隅をターミナルウィンドウの左端に揃え、2つのピラミッドの間に2つのスペースがあり、各行の最後のハッシュの後に追加のスペースがないことを確認してください。

使い方

プログラムは次の例のように動作するはずです。

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

テスト

この問題についてはcheck50 を使用できますが、次の各項目については、最初に自分でコードをテストすることをお勧めします。

  • プログラムをpython mario.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。-1と入力し、Enterキーを押します。ユーザに別の数字を入力するように再度促すなどして、この入力を無効として拒否する必要があります。
  • プログラムをpython mario.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。0と入力し、Enterキーを押します。ユーザに別の数字を入力するように再度促すなどして、この入力を無効として拒否する必要があります。
  • プログラムをpython mario.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。1と入力し、Enterキーを押します。プログラムによって次の出力が生成されます。ピラミッドがターミナルの左下端に位置合わせされ、各行の末尾に余分なスペースがないことを確認します。
#  #
  • プログラムをpython mario.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。2と入力し、Enterキーを押します。プログラムによって次の出力が生成されます。ピラミッドがターミナルの左下端に位置合わせされ、各行の末尾に余分なスペースがないことを確認します。
 #  #
##  ##
  • プログラムをpython mario.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。8と入力し、Enterキーを押します。プログラムによって次の出力が生成されます。ピラミッドがターミナルの左下端に位置合わせされ、各行の末尾に余分なスペースがないことを確認します。
       #  #
      ##  ##
     ###  ###
    ####  ####
   #####  #####
  ######  ######
 #######  #######
########  ########
  • プログラムをpython mario.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。9と入力し、Enterキーを押します。ユーザに別の数字を入力するように再度促すなどして、この入力を無効として拒否する必要があります。次に、2と入力してEnterキーを押します。プログラムによっ次の出力が生成されます。ピラミッドがターミナルの左下端に位置合わせされ、各行の末尾に余分なスペースがないことを確認します。
 #  #
##  ##
  • プログラムをpython mario.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。fooと入力し、Enterキーを押します。ユーザに別の数字を入力するように再度促すなどして、この入力を無効として拒否する必要があります。
  • プログラムをpython mario.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。何も入力せずに、Enterキーを押します。ユーザに別の数字を入力するように再度促すなどして、この入力を無効として拒否する必要があります。

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

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

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

style50 mario.py

この問題は、正確さとスタイルの評価に沿ってのみ採点されます。

提出方法

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

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