Mario (less comfortable)

マリオ

screenshot of Mario jumping up pyramid

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

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

仕様

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

使い方

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

$ ./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/less

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

style50 mario.py

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

提出方法

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

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