Mario (more comfortable)

screenshot of Mario jumping up pyramid

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

$ python mario.py
Height: 4
   #  #
  ##  ##
 ###  ###
####  ####

始め方

VS Codeを開きます。

ターミナルウィンドウ内をクリックすることから始めて、それからcdを実行します。
その後プロンプトは次のようになっていることがわかります。

$

ターミナルウィンドウの内側をクリックし、次のように入力します。

wget https://cdn.cs50.net/2021/fall/psets/6/sentimental-mario-more.zip

その後にEnterを押すと、sentimental-mario-more.zipというZIPがあなたのCodespaceにダウンロードされます。wgetと次のURLの間にあるスペースや、その他の文字を見落とさないように注意してください。

次に

unzip sentimental-mario-more.zip

を実行して、sentimental-mario-moreというフォルダを作成します。
ZIPファイルは不要になったため、

rm sentimental-mario-more.zip

を実行し、プロンプトで “y “に続いてEnterで応答すると、ダウンロードしたZIPファイルが削除されます。

次に

cd sentimental-mario-more

の後にEnterを押して、そのディレクトリに移動する(つまり、開く)。これでプロンプトは以下のようになります。

sentimental-mario-more/ $

lsを実行するとmario.pyが表示されます。問題が発生した場合は、同じ手順をもう一度実行して、どこが間違っていたかを判断できるかどうかを確認してください。

仕様

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

使い方

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

$ python mario.py
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/2022/x/sentimental/mario/more

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

style50 mario.py

提出方法

ターミナルで、以下のコマンドを実行して提出してください。

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