Pythonでレトロゲームをつろう!!(佐藤 誠 の あくまでも独り言)

Pyhtonで2Dレトロゲームを作っていきます!! たまに、Googleアドセンスからグルメにスイーツ、子供の受験、古墳に神社・・・色々と楽しみながら書い伝えていきます!!

じゃんけんゲームの作り方⑤ モンスターじゃんけん(基本)を完成(time.sleep、while等) Let's Python 10(初級編)

どうも〜 Python誠です。

 

じゃんけんゲームの第5回目を解説していきます。


今回で、じゃんけんゲームの基本を完成させて、次回はモンスターとの駆け引きができるように、プログラミングしていきます。

 

今回は・・・

  1. timeモジュールのsleepで進行スピードを調整
  2. 勝敗数をカウントし、タイトルを表示
  3. while(ループ)を使い繰り返し対決

について解説します。

 

www.makotoblog.net

 

じゃんけんゲーム(基本)

こちらが、じゃんけんゲーム(基本)の完成コードです。

あとで解説していくので、まずはPythonコードを打ち込んでみましょう!😀

黄色のラインマーカー部分が、前回からの追加・変更点です。

(コピー&ペーストでもok!)

# ゲーム:「モンスターじゃんけん⑤」(基本)完成

import random
import time

jan = ["グー", "チョキ", "パー"]
judge = ["あいこ", "負け", "勝ち"]
win = 0
lose = 0
draw = 0

print("「モンスターじゃんけん スタート!!」\n")

while True:

    # プレーヤー
    print("0:グー 1:チョキ 2:パー")
    p = int(input("じゃんけん・・・"))
    print("プレーヤー: " + jan[p])
    time.sleep(0.8)

    # モンスター
    m = random.randint(0, 2)
    print("モンスター: " + jan[m])
    time.sleep(0.8)

    # 勝敗判定
    i = (p - m) % 3
    print(judge[i])
    if i == 0:
        draw = draw + 1
    elif i == 1:
        lose = lose + 1
    else:
        win = win + 1
    time.sleep(0.8)

    # バトルの結果を出力
    print("{}勝/{}負/{}引き分け\n".format(win, lose, draw))
    if win == 3:
        print("「3勝で、モンスターを倒しました!」")
        break
    if lose == 3:
        print("「3敗で、プレーヤーは死にました」")
        break
    time.sleep(0.8) 

・じゃんけんゲーム(基本)のルール

「モンスターじゃんけん⑤」をPyhtonで入力できたら、早速実行してみましょう! 

ルールは次の通りです。

プレーヤーとモンスターが「じゃんけん」をして、どちらかが先に3勝した方が、そのバトルに勝利したことになります。

  

www.makotoblog.net

 

追加・変更した行の解説

それでは、プログラムの解説をしていきましょう。

 

1.timeモジュールのsleepで進行スピードを調節

 まずは、timeモジュールをインポートします。

import time

 これで、time.sleep(秒数) で時間を一定の秒数 止めることができるようになります。 

実際には、それぞれプログラムのまとまりごとの最後の行に time.sleep(0.8) を記述しています。

    # プレーヤー
    ・
    ・ time.sleep(0.8) # モンスター
    ・
    ・ time.sleep(0.8) # 勝敗判定     ・
    ・ time.sleep(0.8) # バトルの結果を出力     ・
    ・ time.sleep(0.8) 

こうすることで、順番に# プレーヤー# モンスター# 勝敗判定# バトルの結果を出力 ・・・と0.8秒の間を取りながら、ゲームが進行していきます。

 

2.勝敗数をカウントし、タイトルを表示

新たに、winlosedraw の3つの変数を宣言し、# 勝敗判定 のなかで、勝敗数をカウントしていきます。

 

あと、print()関数で、プログラム実行時にタイトル:「モンスターじゃんけん スタート!!」と表示(出力)します。

 文字列の末尾に「 \n 」と書くことにより、改行することができます。

win = 0
lose = 0
draw = 0

print("「モンスターじゃんけん スタート!!」\n")
   ・
   ・
   ・
# 勝敗判定
   ・
   ・
if i == 0:
draw = draw + 1
elif i == 1:
lose = lose + 1
else:
win = win + 1

 

3.while True(ループ)を使い繰り返し対決

while True: 関数で、つづくブロック(半角スペース4字下げした部分)を繰り返し実行(ループ)します。

while True:

    # プレーヤー
    ・     ・
    ・

 

このままだと、while True のループは永遠に繰り返されるので、 バトルの結果を表示したあと、勝利数に応じて break でプログラムを終了します。

    # バトルの結果を出力
    print("{}勝/{}負/{}引き分け\n".format(win, lose, draw))
    if win == 3:
        print("「3勝で、モンスターを倒しました!」")
        break
    if lose == 3:
        print("「3敗で、プレーヤーは死にました」")
        break
    time.sleep(0.8

 .format()で変数 winlosedraw のカウント数を、左の文字列の中のそれぞれの{}のなかにはめ込み、print() 関数で出力します。

  

www.makotoblog.net

 

まとめ・・・

今回で、じゃんけんゲームの基本を完成しました。

次回はプレーヤーの出し手の履歴を元に、モンスターが出し手を決めるプログラムを作っていきましょう!!(プチAI!?😳)

モンスターとの駆け引きができるようになりますよ!!

 

それでは、また次回お会いしましょう!

「 Let’s Python!!🤗」 

・・・ by Python誠。

  

www.makotoblog.net

 

はてなブログで、かんたんにラインマーカーを引く方法(ワンクリックで行え、毎回CSSを変更しなくてもOK!)

どうも〜 PYthon誠こと

佐藤 誠 です。🤗


前回のPython連載記事から、黄色のラインマーカーを使うようになりました。

(前から使いたいと思っていたけど、やっとやり方を調べて設定しました!😚💦)

 

その経験を生かして、「はてなブログでラインマーカーを引く方法」をお伝えします。

 

毎回、HTMLを変更したりしなくて済む・・・

とても、かんたんな方法ですよ!! 😳

 

www.makotoblog.net

 

どうやってラインマーカーを引くのか?

はてなブログで記事を書くときに、黄色一色だけで良いので、手間をかけず、出来るだけかんたんにラインマーカーを引けるようにしたいと思い設定しました。

 

操作方法は、「記事を書く」画面の左上にあるツールバーボタンのうち「斜体」ボタン[ i ] を押すとラインマーカーが引けるように設定します。

(ちなみに私は、文章の中で、斜体を使うことは全くありませんので!!)🤔

 

それでは次の4つの作業にわけて説明します。

  1. パソコン表示用の設定方法
  2. スマホ表示用の設定方法
  3. ラインマーカーの使い方
  4. 色目や太さの変更方法

 

1. パソコン表示用の設定方法

まず、はてなブログのタイトルメニューをクリックし、「デザイン」をクリックしましょう。

(私の場合は、「 Pythonレトロゲームをつくろう▼ 」がタイトルメニューになります。)

はてなブログでラインマーカーをかんたんに引く方法6

 

次に、カスタマイズ・アイコン(工具のマーク)を選択し、「 { } デザインCSS 」をクリックします。

はてなブログでラインマーカーをかんたんに引く方法5

 

そして入力画面に、次のCSSコードを打ち込みます。

(コピー&ペーストしてもokです!)

/*斜体文字の黄色マーカー*/
article em{
    font-style: normal;
    text-decoration: none;
    background: linear-gradient(transparent 60%, #fff352 40%);
}

 

すると、下のような画面になるので、[ 変更を保存する ] ボタンをクリックします。

はてなブログでラインマーカーをかんたんに引く方法4

これで、パソコン表示用の設定は完了です。

 

ただし、この設定だけだとスマホではラインマーカーが表示されません。

次はスマホ表示用の設定を行いましょう!

 

www.makotoblog.net

  

2. スマホ表示用の設定方法

先ほどと同じ手順で、はてなブログのタイトルメニューをクリックし、「デザイン」をクリックしましょう。 

はてなブログでラインマーカーをかんたんに引く方法6

 

次に、スマートフォン・アイコン(スマホのマーク)を選択し、「 フッタ 」をクリックします。

はてなブログでラインマーカーをかんたんに引く方法3

 

下の方に「 フッタ 」の入力画面があります。

はてなブログでラインマーカーをかんたんに引く方法2

 

そして、「 フッタ 」の入力画面に、次のCSSコードを打ち込みます。

(こちらもコピー&ペーストしてもokです!)

<style type="text/css">
/*斜体文字の黄色マーカー*/
article em{
    font-style: normal;
    text-decoration: none;
    background: linear-gradient(transparent 60%, #fff352 40%);
}

 

入力し終わると下のような画面になるので、[ 変更を保存する ] ボタンをクリックします。

はてなブログでラインマーカーをかんたんに引く方法1

これで、スマホ表示用の設定は完了です。 

お疲れ様です!! m(__)m

 

www.makotoblog.net

 

3. ラインマーカーの使い方

さあ、早速ラインマーカーを使ってみましょう!!😀

記事を書く画面を開いて、文章を書き、ラインマーカーを引きたい文字をマウスで選択(反転)しましょう。

そして、ツールバー「斜体」ボタン[ i ] を押してください。

はてなブログでラインマーカーをかんたんに引く方法9

 

すると、記事を書く画面(編集 見たまま)では斜体表示になって、ラインマーカーは表示されません。😵💦

 

でも大丈夫です!

 

「 プレビュー 」画面に切り替えると・・・

ちゃんと、黄色のラインマーカーが表示されました!!

♪( ´θ`)ノ 

はてなブログでラインマーカーをかんたんに引く方法7

 

www.makotoblog.net

 

4. 色目や太さの変更方法

使っていると、ラインマーカーの色目や太さを変更したい場合があると思います。
その方法は以下のようになります。

 

先ほど入力したCSSコードの黄色のラインの部分を変更します。

/*斜体文字の黄色マーカー*/
article em{
    font-style: normal;
    text-decoration: none;
    background: linear-gradient(transparent 60%, #fff352 40%);
}

 

①ラインの太さを変える 

transporent のすぐ右の 60% の部分が、ラインの太さになります。

%の数字が大きいほどラインは細くなります。

40%や50%など・・・色々試して見ましょう!!😳

 

②ラインの色を変える 

#fff352 の部分が、ラインの色番号になります。

色番号については、「 原色大辞典 - HTMLカラーコード 」というサイトが見やすいので、参考にして色番号を変更してみてださい。

www.colordic.org

 

③ラインの濃さを変える 

右はしの 40% の部分が、ラインの太さになります。

%の数字が大きいほどラインの色は濃くなります。

必要に応じて変更してみましょう!! 

 

www.makotoblog.net

 

まとめ・・・

以上が、かんたんにラインマーカーを引く方法でした。

はてなブログで記事を書いている最中に、ツールバー「斜体」ボタン[ i ] を押すだけでラインマーカーを入れることができるようになりました!!

非常にかんたんに使えるので、これからもどんどん活用していきます!!

 

それでは、また・・・🤗
 

じゃんけんゲームの作り方④ (%を使ってプログラムの行数を半分に減らす)  Let's Python 9(初級編)

どうもです〜 Python誠です。

 

じゃんけんゲームの第4回目を解説していきます。

 

前回、じゃんけんプログラムを短い行数に書き換え ました。

しかも・・・まさかの半分の行数で!?😳

今回は、その方法をご解説します。

じゃんけんプログラムを半分の行数に書き換え

 

www.makotoblog.net

 

じゃんけんプログラムを短くする方法

# ゲーム:「モンスターじゃんけん④」

import random

jan = ["グー", "チョキ", "パー"]
judge = ["あいこ", "負け", "勝ち"]

# プレーヤー
print("0:グー 1:チョキ 2:パー")
p = int(input("じゃんけん・・・"))
print("プレーヤー: " + jan[p])

# モンスター
m = random.randint(0, 2)
print("モンスター: " + jan[m])

# 勝敗判定
i = (p - m) % 3 print(judge[i])

 

前回の じゃんけんプログラム③ に比べて、どこが変わったかみていきましょう。

 

無くなった行 

まず、下の2行が # 無くなった行 です。

# プレーヤー
   ・
   ・
   ・
player = jan[p] # 無くなった行


# モンスター
   ・
   ・
   ・
monster = jan[m] # 無くなった行

 今回、playermonster という変数は使いません。

 

追加変更された行 

プログラムの 黄色のラインマーカー部分が変更・追加されたところです。

 

1. 勝敗をリストで管理 

新たに、 judge という変数で、勝敗をリストを管理します。

(例: judge[2] なら "勝ち" になります

judge = ["あいこ", "負け", "勝ち"]

 

2. じゃんけんの出し手を出力

次に jan[p] と jan[m] で、直接じゃんけんの出し手 ["グー", "チョキ", "パー"] のどれかを呼び出して出力します。(例: jan[2] なら "パー" になります

print("プレーヤー: " + jan[p])
print("モンスター: " + jan[m])

 

3. if文を使わない勝敗判定

一番変わったのが、 # 勝敗判定 です。if文もelif文も一切使っていません!?😳

# 勝敗判定
i = (p - m) % 3

 内容を文章にすると・・・

プレーヤーの出し手番号から、モンスターの出し手番号 m を引いた値を、じゃんけんの出し手パターン数の で割って、その余りを 変数 i に代入しています。 

 (% は、割り算したあとの余りを求める記号(演算子)です。)

 

文章で書くと、すごく難しく感じますが・・・😰

 

【プレーヤーが勝ちの時の出力】

実は、じゃんけんの出し手リスト [ 0: "グー", 1: "チョキ", 2: "パー"は、すぐ右隣の出し手に勝つように配置されています。

 例1)0: "グー" は、右隣の 1: "チョキ" に 勝つ!

 例2)1: "チョキ" は、右隣の 2: "パー" に 勝つ!

 

ですので、プレーヤーが勝ちの場合は、隣り合った出し手の差 (p - m) は、いづれも「 −1」になります。

そして「 −1」を  % 3 で計算すると・・・「 余りになります。

言い換えると (p - m) % 3 の計算結果が「 余りになれば、プレーヤーの "勝ち"と出力するようにしてあげれば良いのです。

 

ただし例外があります。 プレーヤーが 2: "パー" で モンスターが 0: "グー" の場合は、出し手の差が「 」になります。

しかしこの場合も「 2 」を  % 3 で計算すると・・・「 余りになるので

 同じく (p - m) % 3 の計算結果が「 余りになれば、プレーヤーの "勝ち"と出力するようにしてあげれば良いのです。

 

以上の内容をまとめると・・・

変数 i  =  (プレーヤー - モンスター) % 3  を計算し

変数 i が「  」になれば勝利となります。

 

参考)変数 i が「 0 」だとあいこ、「 1 」だと負けになります。

 後で、検証してみましょう!🤔

 

4. 勝敗リストを使い、勝敗を出力

最後の行で、先ほどの変数を使って judge リスト(勝敗リスト)の  ["あいこ", "負け", "勝ち"から勝敗を呼び出し、出力します。(例: jaudge[0] なら "あいこ" になります

print(judge[i])

 

 以上が、短い行数でじゃんけんプログラムをかく方法でした。

 

www.makotoblog.net

 

# 勝敗判定の検証(参考)

i = (p - m) % 3 に出し手番号 [ 0: "グー", 1: "チョキ", 2: "パー"を、実際に当てはめてみましょう。

 

1. あいこの場合

i = (0 - 0) % 3 で、 i = 0

i = (1 - 1) % 3 で、 i = 0

i = (2 - 2) % 3 で、 i = 0

結果)どの場合も i = 0 であいこになる。

 

2. プレーヤーが負けの場合

i = (1 - 0) % 3 で、 i = 1

i = (2 - 1) % 3 で、 i = 1

i = (0 - 2) % 3 で、 i = 1

結果)どの場合も i = 1 でプレーヤーの負けになる。

 

3. プレーヤーが勝ちの場合

i = (0 - 1) % 3 で、 i = 2

i = (1 - 2) % 3 で、 i = 2

i = (2 - 0) % 3 で、 i = 2

結果)どの場合も i = 2 でプレーヤーの勝ちになる。

 

www.makotoblog.net

 

まとめ・・・

% を使って余りを求める方法は、ゲームプログラミングをする際によく用いられます。

理屈は難しいと思いますが、身体で覚えてしまえるようにしっかりと復習していきましょう!

 

次回は、じゃんけんゲーム(基本)を完成させたいと思います。

 

それでは、またお会いしましょう!

「 Let’s Python!!🤗」 

・・・ by Python誠。

じゃんけんゲームの作り方③ (if・elif・での勝敗判定)  Let's Python 8(初級編)

どうもです〜 Python誠です。

 

じゃんけんゲームの第3回目を解説していきます。

今回は・・・

  1. if 、elif 、 を使った勝敗判定
  2. 短いプログラムで同じ結果をだす方法

の2つを紹介します。🤔 

 

「if、elif 、を使った勝敗判定」 

 こちらが、前回勝敗判定のプログラムを追加した「じゃんけんプログラム」です。

# 「モンスターじゃんけん③」



import random                    



jan = ["グー", "チョキ", "パー"]



# プレーヤー

print("0:グー 1:チョキ 2:パー")

p = int(input("じゃんけん・・・"))

player = jan[p]

print("プレーヤー: " + player)



# モンスター

m = random.randint(0, 2)

monster = jan[m]

print("モンスター: " + monster)



# 勝敗判定
if player == monster: print("引き分け") elif player == "グー": if monster == "チョキ": print("勝ち") elif monster == "パー": print("負け") elif player == "チョキ": if monster == "グー": print("負け") elif monster == "パー": print("勝ち") elif player == "パー": if monster == "グー": print("勝ち") elif monster == "チョキ": print("負け")

 

# 勝敗判定 について解説していきます。

 

www.makotoblog.net

 

if文での条件分岐

こちらが# 勝敗判定 のすぐ下2行で、「あいこの時」に実行されます。

if player == monster: 

    print("引き分け")
  • 「 if 」は日本語に訳すと「 もし 」ですね。
  •  ifを使ったコードをif文といい、もし条件が成りたてば、つづくブロック(半角スペース4字下げした部分)を実行します。
  • 上のコードでみてみると、if に続く player == monster :  がその条件となり、もし変数playerと変数monsterの中身(出し手)が一緒なら、「 print("引き分け") 」が実行されます。 もし一緒でなければ実行されません。

 

elif文での条件分岐

こちらが if 文につづく5行で、プレーヤーが「グー」の時に、モンスターの出し手に応じて勝敗を出力します。

elif player == "グー":

    if monster == "チョキ":

        print("勝ち")

    elif monster == "パー":

        print("負け")
  •  「 elif 」は、先の if 文の条件が成り立たなかった時に、別の条件が成り立つか?を確認し、条件が成り立てばつづくブロックを実行します。
  • 上のコードでみてみると、elif に続く条件「 プレーヤーがグーの時 」に、「 モンスターがチョキ 」か?「 パー 」か?を判定し、勝敗を出力します。

 

つづく、elif文  

つづく5行ごとの elif で、チョキの時は・・・、パーの時は・・・と条件を分岐し勝敗を出力していきます。

elif player == "チョキ":

    if monster == "グー":

        print("負け")

    elif monster == "パー":

        print("勝ち")



elif player == "パー":

    if monster == "グー":

        print("勝ち")

    elif monster == "チョキ":

        print("負け")

これで全ての勝敗パターンを網羅できました。 

 

何度か実行してみよう!

打ち込んだPythonコードを、IDLEのシェルウィンドウで 新規ファイルに保存し実行 します。

何度か実行してみて、勝敗判定が正しく行われるか?確認してみましょう! 😳

じゃんけんプログラムを何度か実行

 

それぞれの出し手に合った正しい勝敗結果が表示されました。

 

if文はゲームプログラムに限らず、あらゆるプログラムで使用されます。

しっかり、復習しておきましょう!🤔

 

www.makotoblog.net

 

じゃんけんプログラムを短くしよう!

モンスターじゃんけん③では、if文やelif文を使い、出し手・総当たりで勝敗判定を完成させました。

これはこれで、理解しやすいコードになるのですが・・・このままだとプログラムが長すぎます。

今後ゲームプログラミングを作っていくにあたり、長すぎるプログラムはメンテナンスがしにくく、無駄にコンピューターに負担をかけてしまいます。

結果、操作性やレスポンスの悪いプログラムになってしまう恐れがあります。

 

ここで、短いプログラムで同じ結果をだす方法を紹介します。🤔

 

次のプログラムを入力し、実行してみてください。 

# ゲーム:「モンスターじゃんけん④」

import random

jan = ["グー", "チョキ", "パー"]
judge = ["あいこ", "負け", "勝ち"]

# プレーヤー
print("0:グー 1:チョキ 2:パー")
p = int(input("じゃんけん・・・"))
print("プレーヤー: " + jan[p])

# モンスター
m = random.randint(0, 2)
print("モンスター: " + jan[m])

# 勝敗判定
i = (p - m) % 3
print(judge[i])

 

実行すると、こんなに短いプログラムなのに モンスターじゃんけん③ と全く同じ結果になりました!!😳

 

次回は、じゃんけんプログラムを短くかく方法を解説します。

 

それでは、また次回お会いしましょう!

「 Let’s Python!!🤗」 

・・・ by Python誠。

 

じゃんけんゲームの作り方② (引数・戻り値・整数変換)  Let's Python 7(初級編)

こんにちは〜 Python誠です。

 

前回に続いてじゃんけんゲームを解説していきます。

 

「じゃんけんプログラムの解説」 

# 「モンスターじゃんけん②」



import random                    



jan = ["グー", "チョキ", "パー"]



# プレーヤー

print("0:グー 1:チョキ 2:パー")

p = int(input("じゃんけん・・・"))

player = jan[p]

print("プレーヤー: " + player)



# モンスター

m = random.randint(0, 2)

monster = jan[m]

print("モンスター: " + monster)

 

まず、1行目をみてください。

 

1行目: コメント欄の挿入 

# 「モンスターじゃんけん②」
  •  半角のシャープ # はコメント欄なので、# より右の文字は実行されません。

 

7行目からを # プレーヤー 部分 と 13行目らを #モンスター 部分として、プログラムをコメントで分けています。

前回プログラムの「モンスターじゃんけん①」に比べると、今回は # プレーヤー 部分のみを追加し解説してます。

 

引数と戻り値について説明していますが、理解がしにくくても、プログラミングしていくうちに体感として覚えていけるので、どんどん前に進めていきましょう!🤗

 

# プレーヤー 部分の解説

1. 引き数を出力

print("0:グー 1:チョキ 2:パー")
  • print 関数で()の中の 引数 をシェルウィンドウに出力します。
  • 引数 とは、関数を実行したときに引き渡される値のことです。
  • この行の場合、引き数 は 文字列 "0:グー 1:チョキ 2:パー" になり、シェルウィンドウに 出力されます。 

 

2. 戻り値を受け取る

p = int(input("じゃんけん・・・"))

 input("じゃんけん・・・")

  •  imput 関数は()の中の 引数 をシェルウィンドウに出力し、プレーヤーから入力された 戻り値 を受けとります。
  • 戻り値 とは、関数を実行したあとに返される値(文字列)のことです。
  • この場合は 引数 "じゃんけん・・・" ) をシェルウィンドウに出力した後、プレーヤーが入力した「じゃんけんの番号(0〜2)」を 戻り値 として返します。

 int(〇〇〇〇)

  •  int 関数は()の中の 引数 を整数に変換します。

 

p = int(input("じゃんけん・・・"))

この1行で、imput 関数の 戻り値 「じゃんけんの番号(0〜2)」を int() 関数で整数に変換し、変数 p に代入することになります。

 

3. リストの文字列を呼び出し出力

player = jan[p]

print("プレーヤー: " + player) 
  • 前回解説した # モンスター 部分と考え方は同じです。
  • player という変数に、 janリスト p 番目の要素を代入し print()  で出力します。

 

www.makotoblog.net  

ここまでのプログラムを実行

 さあ、プログラムを実行してみましょう。

じゃんけんプログラムを実行

こんな感じになります!😳

 

「じゃんけん・・・・」と表示され、入力待ちになります。

ここでは 0 を入力しました。

すると、プレーヤーとモンスターの出し手が表示されます。

ただし、勝ち負けの判定は表示されません。

 

勝敗判定を追加

 続いて、勝敗判定のプログラムを追加していきましょう!

次のプログラムを「モンスターじゃんけん②」の末尾に追加してください。

# 勝敗判定

if player == monster:

    print("引き分け")



elif player == "グー":

    if monster == "チョキ":

        print("勝ち")

    elif monster == "パー":

        print("負け")



elif player == "チョキ":

    if monster == "グー":

        print("負け")

    elif monster == "パー":

        print("勝ち")



elif player == "パー":

    if monster == "グー":

        print("勝ち")

    elif monster == "チョキ":

        print("負け")

 

次回は、勝敗判定について解説していきます。

 

それでは、また次回お会いしましょう!

「 Let’s Python !!🤗」 

 ・・・ by Python誠。

 

www.makotoblog.net

 

今までのおさらい・・・

  1. Pythonをインストール(公式サイトからダウンロード)
  2. 開発統合環境・IDLEのの設定方法(フォント・ダーク画面)
  3. IDLE・シェルウィンドウの使い方(対話モード)
  4. IDLE・エディタウィンドウの使い方(新規ファイル保存・実行)
  5. じゃんけんゲームの作り方(リスト・乱数・モジュールインポート)

 

じゃんけんゲームの作り方① (リスト・乱数・モジュールインポート)  Let's Python 6(初級編)

こんにちは〜 Python誠です。

 

前回、IDLE・エディタウィンドウの使い方(新規ファイル保存・実行)の最後に「モンスターじゃんけん①」という5行ほどのPythonプログラムを打ち込んで、ファイルに保存・実行しました。

今回はまず、「モンスターじゃんけん①」のPythonコードについてかんたんに解説します。

その後、じゃんけんプログラムをバージョンアップしていきたいと思います。

 

「じゃんけん」プログラムの解説

「モンスターじゃんけん①」

import random                    

jan = ["グー", "チョキ", "パー"]
m = random.randint(0, 2)
monster = jan[m]
print("モンスター: " + monster)

1行目をから順番に確認していきましょう。

 

1行目: モジュールをインポート

import random
  • import は、Pythonに足りない機能(モジュール)を読み込み(インポート)、使えるようにする命令です。
  • 続く random は、乱数(サイコロの目のように偶然の数値)を発生させる為のモジュールです。
  • import random で以後、乱数を発生させることができます。

 

3行目: リストで文字列を番号管理

jan = ["グー", "チョキ", "パー"]
  • jan という変数に グー, チョキ, パー の3種類の文字列が入ったリストを代入しています。
  • リストとは、角括弧( [  ] )で囲んだ数値や文字列などの要素の集まりのことで、それぞれの要素に番号(添え字)をつけて管理することができます。
  • 左の要素から順番に グーは [0]チョキは [1] 、パー [2] の番号(添え字)がそれぞれに割り振られます。
  • 一度せ代入したリストは、 変数名[添え字] と記述することで、後で呼び出すことができます。 例えば jan[2] と記述すると文字列"パー"を呼び出せます。

 

4行目: randomで乱数を発生

m = random.randint(0, 2)
  • random.randint(0, 2で、最小値 0  最大値 2 乱数を発生させ、m という変数に代入しています。
  • ここでの乱数は、01 2 の三つの数値からどれかが選ばれます。

 

5行目:リストの文字列を呼び出す

monster = jan[m]
  • monster という変数に、3行目の janリスト m 番目の要素を代入しています。
  • m は乱数 02 のどれかが代入されています。
  • 例えば、乱数 m 0 の場合は、 jan[m] → jan[0] となり、"グー" が monster に代入されます。
  • m が なら "チョキ" 2なら "パー" が monster に代入されます。

 

6行目:文字列と変数を一緒に出力

print("モンスター: " + monster) 
  • print で()内の要素をシェルウィンドウに出力します。
  • この行の場合、文字列 "モンスター: "  に加えて、変数 monster の中身の文字列( "グー" か  "チョキ"   "パー" のどれか)が一緒に出力されます。

 

www.makotoblog.net

 

「じゃんけん」プログラムの実行結果

上の解説を踏まえて、プログラムの実行結果を確認しましょう。

モンスターじゃんけんの実行結果(シェルウィンドウ)

前回の「 IDLE・エディタウィンドウの使い方(新規ファイル保存・実行) 」の方法でプログラムを実行すると、シェルウィンドウに「 モンスター: チョキ 」と出力(表示)されました。

(皆さんは何が出ましたか?😚)

何度か実行すると、「 パー 」「 グー 」が出力されることを確かめましょう。

 

このプログラムのポイント

このプログラムのポイントは・・・

3行目のリスト「じゃんけんの出し手」を番号(添え字)で管理し、4行目で発生した乱数を使って、5行目のリスト内で ["グー", "チョキ", "パー" のいずれかを呼び出しているところです。

 

 あとは、呼び出した「じゃんけんの出し手」を Print() で出力するだけです。

 

リストは、Pythonプログラミングをする上でとても重要です。

今後のゲームプログラミングでも多用しますので、理解できるよう復習しておいてください。

 

シェルウィンドウの対話モードを使うと、Pythonコードの確認がしやすいので、上手に使いましょう!

Pythonの対話モードでリストの復習

こんな感じでね!🤔

 

www.makotoblog.net

 

じゃんけんプログラムのバージョンアップ

次は、じゃんけんプログラムをバージョンアップしていきます。

今までのようにモンスターだけでなく、プレーヤー(あなた)もPythonでじゃんけんを選択できるようにコードを追加していきます。

 

下のPythonコードをIDLEのエディタウィンドウで新規ファイルを作成し、書いてみましょう!😳

 

# 「モンスターじゃんけん②」

import random                    

jan = ["グー", "チョキ", "パー"]

# プレーヤー
print("0:グー 1:チョキ 2:パー")
p = int(input("じゃんけん・・・"))
player = jan[p]
print("プレーヤー: " + player)

# モンスター
m = random.randint(0, 2)
monster = jan[m]
print("モンスター: " + monster)

次回は「モンスターじゃんけん②」を解説した後に、勝敗判定のコードを追加していきます。

 

それでは、また次回お会いしましょう!

「 Let’s Python !!🤗」 

 ・・・ by Python誠。

 

www.makotoblog.net

 

今までのおさらい・・・

  1. Pythonをインストール(公式サイトからダウンロード)
  2. 開発統合環境・IDLEのの設定方法(フォント・ダーク画面)
  3. IDLE・シェルウィンドウの使い方(対話モード)
  4. IDLE・エディタウィンドウの使い方(新規ファイル保存・実行)

 

IDLE・エディタウィンドウの使い方【2020年版】(新規ファイル作成・保存・実行方法)  Let's Python 5(初級編)

こんにちは〜 Python誠です。

 

前回までは

  1. Pythonのインストール方法
  2. 統合開発環境・IDLEの環境設定方法
  3. IDLE・シェルウィンドウの使い方

 をみてきました。

 

 

今回は、IDLEのエディタウィンドウを使ってPythonプのログラムファイルを作成し、実行する方法を説明します。

 

新規ファイルを作成

まずは、Pythonコードを記述する為の新規ファイルを作成しましょう。

メニューの[ File ] → [ New File ] をクリックしてください。

(ショートカットは「 command + N 」です。

Python・IDLE・エディタウィンドウに直接コードを書く1

 

すると、画面いっぱいに黒いウィンドウが現れます。

これが、エディタウィンドウといってPythonコードを書いていく画面です。

Python・IDLE・エディタウィンドウに直接コードを書く2

ウィンドウ名が「 Untitled(無題) 」になっているので、ファイル名を新たにつけていきましょう。

 

ファイルに名前をつけて保存

メニューの[ File ] → [ Save As... ] をクリックしてください。

(ショートカットは「 shift + command + S 」です。

Python・IDLE・エディタウィンドウに直接コードを書く3

 

今回、あらかじめ保存先として Desktop(デスクトップ) に [ Python_Retoro ] という名のフォルダーを作っておきました。

今後は、このフォルダーにPythonファイルを保存していきます。

 

ファイル保存のウィンドウが現れます。

Save As:右の空白部分に「 test 」 と入力し、右下の [ Save ] をクリックします。

Python・IDLE・エディタウィンドウに直接コードを書く4

 

これで、デスクトップのPython_Retoroフォルダーに「 test.py 」 という名前のファイルが保存されました。(まだ中身はからですけど・・・)

デスクトップのファルダーに名前をつけて保存

 

www.makotoblog.net 

ファイルの拡張子を表示する方法(参考)

ファイル名の末尾に拡張子「 .py 」が表示されなかった方は、ファイルの拡張子を表示できるように設定しましょう。

 (すでに表示されている方は、この節は飛ばしてください)

 

ちなみに、拡張子とは・・・ファイルの属性(タイプ)のことです。

〇〇〇〇.py

 

Finderメニューの[ 環境設定... ] をクリックしてください。

 Finderの環境設定のメニュー

 

次に詳細を選択し「 ☑︎全てのファイル名拡張子を表示 」にチェックを入れます。

Finderの環境設定で拡張子を表示

これで、ファイルの末尾に拡張子が表示されるようになります。

 

www.makotoblog.net

 

保存したファイルを開く

先ほど保存した新規ファイル「 test.py 」を開きましょう。

メニューの[ File ] → [ Open... ] をクリックしてください。

(ショートカットは「 command + O 」です。

Finderでファイルを開く

 

先ほどファイルを保存した、Desktop → Python_Retoroフォルダー → 「 test.py 」 ファイルを選択し、[ Open ]をクリックします。

FinderでPythonファイルを開く

 

これで、エディタウィンドウが開きます。

ウィンドウ名が変更されていることを確認し、Pythonコードを書いていきましょう。

FinderでPythonファイルを開く2

エディタウィンドウでPythonコードをかく

たくさんの準備、お疲れ様でした。😩

さあ、エディタウィンドウに次のPythonコードを書いていみましょう!

 

# 「モンスターじゃんけん①」

import random



jan = ["グー", "チョキ", "パー"]

m = random.randint(0, 2)

monster = jan[m]

print("モンスター: " + monster)

   ・(今後、Pythonコードは上のように表記します)

   ・

   ・

実際のIDLE・エディタウィンドウではこんな画面になります。

IDLEでPythonにモンスターじゃんけん①を打ち込む

 

IDLEのエディタウィンドウに打ち込んだPythonコードを実行するには、先にファイルの保存が必要です。

次の手順でファイルを上書き保存し、実行していきます。

 

ファイルを上書きで保存

メニューの[ File ] → [ Save As ] をクリックしてください。

(ショートカットは「 command + S 」

IDLEのエディタウィンドウのPython実行結果

 

ファイルを実行

メニューの[ Run ] → [ Run Module ] をクリックしてください。

(ショートカットは、ファンクションキーの「 F5 」

IDLEのエディタウィンドウでPythonを実行

 

ファイルを実行すると「モンスター: 〇〇〇」と、モンスターがじゃんけんを仕掛けてきます。

IDLEでファイルの上書き保存

試しに、何度か「 じゃーんけーん♫  チョキ! 」とあなたも声を出しながらファイルを実行してみてください。

モンスターに勝てましたか?😚

 

www.makotoblog.net

 

「モンスターじゃんけん」について

次回「モンスターじゃんけん①」の内容をかんたんに説明しながら、プログラム内容をバージョンアップしていきます。

最終的には、モンスターと頭脳戦で戦う?じゃんけんゲームに仕上げていきたいと思います。(果たして・・・どんなゲームになるのか!?) ( ͡° ͜ʖ ͡°)♪

 

それでは、また次回お会いしましょう!

「 Let’s Python !!🤗」 

 ・・・ by Python誠。

IDLE・シェルウィンドウの使い方【2020年版】(対話モードでPythonコーディング) Let's Python 4(初級編)

こんにちは〜 Python誠 です。

 

前回までに、1. Pythonnのインストール2. 統合開発環境・IDLEの環境設定 を行いました。 

www.makotoblog.net

www.makotoblog.net

 

さっそく、Python IDLEでプログラミングコードを書いていきましょう!!

 

IDLEの対話モード(シェルウィンドウ)

IDLEを起動すると「 python 3.8.2 Shell 」という名前の シェルウィンドウ が立ち上がります。

この状態は、対話モード(インタラクティブシェル)と言い、直接Pythonコードを入力することができます。

 

それでは、シェルウィンドウ画面の「 >>> 」の右にPythonコードを打ち込んでいきます。

(「 >>> 」はプロンプトと言います。) 

Python・IDLEでコードを書く1

 

print 命令で文字を表示する

まずは、「 print("Hello World") 」 とキーボードで入力してください。

全て半角英数で入力します)

Python・IDLEでコードを書く2

 

[ enter ] キーを押してコードを実行すると「 Hello World 」と表示されます。😳

Python・IDLEでコードを書く3

「 print 」 は、カッコで囲まれた中の文字や数値を表示する命令です。

今回はダブルクォーテーション「  」で囲まれた「 Hello World 」という文字列を表示せよ!と命令したことになります。🤔

 

www.makotoblog.net

 

変数に数式を代入する

次に、変数に数式を代入してみましょう。

変数とは、文字や数値に名前をつけることにより再利用しやすくするもののことです。

 

下の画面のように「 a = 1 + 2 」と入力し、[ enter ] キーを押しましょう。

全ての文字と文字の間に、半角スペースを入れてください)

Python・IDLEでコードを書く4

足し算の「 1 + 2 」の計算結果に、「 a 」という名前をつけたことになります。

このことを、プログラミングでは「 変数 a1 + 2 の数式を代入 」と表現します。

 

今後、「 1 + 2 」の数式を使いたいときにキーボードで入力しなくても、変数「 a 」を使って再利用することがでします。🤔

 

変数を表示する

Print 命令を使って、変数を表示してみましょう。 

「 print(a) 」 と入力し、[ enter ] キーで実行してください。Python・IDLEでコードを書く5

 

すると、a に代入した「 1 + 2 」の計算結果「 3 」が表示されます。😳

Python・IDLEでコードを書く6

 

www.makotoblog.net 

IDLEの対話モードは計算機にもなる(参考)

ちなみに、IDLEのシェルウィンドウは簡単な計算機にもなります。

プロンプト「 >>> 」に直接、計算式を入力すると、計算の答えが表示されます。

Python・IDLEでコードを書く7

「 2 + 2 」と入力し実行すると、計算結果「 4 」が表示されます。 

 

IDLE・対話モード(シェルウィンドウ)について

今回、対話モード(シェルウィンドウ)のプロンプト「 >>> 」に直接Pythonコードを書いて実行しました。

しかし、この方法はあくまでもPythonコードの動作確認用の機能になります。

 

今後、何行にもわたるレトロゲーム・プログラミングでは、ファイルにPythonコードを記述し実行していきます。

次回は、その方法について説明していきます。

 

それでは、「 Let’s Python !!🤗」 

 ・・・ by Python誠。

  

www.makotoblog.net

あとがき・・・(佐藤誠のあくまでも独り言)

このゴールデンウィーク中、中学一年生になった息子と「将棋王決定戦 」に挑んでいます。(参加者は私と息子の二人だけですが・・・😩)

 

だいたい毎日2試合づつこなしていって、合計20回対戦し「どちらが将棋が強いのか?どちらが将棋王か?決着をつけよう!!」と約束しました。

 

そして昨日まで6回対戦して、4勝2負で私が勝ち越しています!

♪( ´θ`)ノ

 

今日も、たった今から対戦に望むところです。

「将棋王に俺はなる!!」の意気込みで、息子をコテンパンにやっつけてきます!!😌

   

www.makotoblog.net

統合開発環境・IDLEの環境設定方法【2020年版】(フォントタイプやサイズ、ダーク画面設定)「Let's Python 3(初級編)」

こんばんは〜 Python誠 です。

 

前回は、MacPython3.8をインストールしました。

さっそくPythonを起動したいところですが・・・その前に IDLE について少し説明しましょう。

 

統合開発環境・IDLEとは?

前回Pythonをインストールしたことにより、Macの「 LaunchPad 」に「 IDLE 」というアプリケーションが登録されます。

(ちなみに「 IDLE 」は「 アイドル 」と呼びます。😳)

この「 IDLE 」とは、Pythonに付属する統合開発環境アプリケーションの名前です。

MacのLaunchPadからPythonを実行する

 

統合開発環境とは、プログラムを入力したり、確認・実行できるツールで、「 IDLE 」は非常にシンプルながら使い勝手もよく、とても優れたツールです。

大規模なプログラム製作でなければ十分な機能を持っているので、これからは「 IDLE 」でレトロゲームづくりを進めていきます。

 

(ある程度慣れてくると、もう少し高機能な統合開発環境が欲しくなってきます。

必要な方は、「 Atom 」や「 PyCharm 」など、お気に入りの環境でプログラミングしてください。🤔)

 

 Atom公式サイト:https://atom.io/

 PyCharm公式サイト:https://www.jetbrains.com/ja-jp/pycharm/

 

www.makotoblog.net

 

IDLEをMacのDOCに登録

まずはMacの「 LaunchPad 」に登録された「 IDLE 」を、DOCにドラッグ&ドロップし、すぐに起動できるようにしておきましょう。

MacでダウンロードしたPythonをDOCに入れる

 

www.makotoblog.net 

IDLEの環境設定をカスタマイズ

さあ、IDLEを起動しましょう。

インストールした最新のPythonのバージョン(ここでは「 3.8.2 」)が画面左上に表示されていることを確認します。

Python付属のIDLE(統合開発環境)を立ち上げる

 

1. フォントの設定

続けて、IDLEが使いやすくなるように、 画面表示やフォントなどの環境設定を行います。

Macの画面左上メニューの [ IDLE ] を選択し、[ Preferences... ] をクリックします。

(または、ショートカットの「 command + , 」で実行)

Python付属のIDLE(統合開発環境)の環境設定

 

Settingsのダイアログボックスが表示されます。

メニューから [ Fonts/Tabs ] をクリックし、「 Andale Mono 」を選択します。

(もちろん、個人的にお気に入りのフォントタイプがある場合はそちらを使ってください🤔)

必要に応じて、フォント・サイズも変更しておきましょう。

今回は見やすいように「 Size: 22 」を選択します。

IDLE(統合開発環境)の環境設定でフォントと文字サイズを変更

画面左下の Indentation Width で、プログラミング時のインデックス(コードの左側の余白の数)を変更できます。

ここでは、4 Spaces のままで進めましょう。

 

2. バック画面を黒色に変更

次に、画面が見やすい(目が疲れにくい?)ように、バックを黒色に変更します。

メニューから [ Highlights ] をクリックし、「 IDLE Classic 」を「 IDLE Dark 」に変更します。

IDLEの環境設定でHightLightsをIDLE Darkに変更

変更できたら、[ OK ] ボタンを押して設定を終了します。

 

すると、黒色のバック画面に白色の文字で見やすくなりました。

( なんかちょっと、Proグラマー になった気分? ( ͡° ͜ʖ ͡°) )

IDLE Darkに変更後のPython3.82

 

今日は、ここまでです。 

設定ばかりでは面白くないので、次回からは Python IDLEでプログラミングコードを書いていきましょう!!

 

それでは、「 Let’s Python !!🤗」 

 ・・・ by Python誠。

 

www.makotoblog.net

あとがき・・・(佐藤誠のあくまでも独り言)

忙しかったこともあるけど、ブログを書いていくモチベーションが続かず、ここ数ヶ月はブログの更新頻度が1〜2ヶ月に一度になってしまってました。

しかし、コロナ自粛まっただ中の、このゴールデンウィークを皮切りに「何か前に進めねば!毎日Pythonの記事を更新するぞ!!」と意気込んで記事を描く毎日です。

 

すると、さっそくご褒美の「はてブ砲」をいただきましたーー!!

いや〜、このワクワクする感じ、懐かしい感覚ですね〜?🤔

 

ブックマークしてくれた方々、ありがとうございます!!

はてなブックマークのホットエントリー「はてブ砲」炸裂

 

できる限り更新していこうと思いますので、読んでいただいた方々・・・

どうぞ、これからもよろしくお願いします。 m(._.)m

 

www.makotoblog.net

 

Pythonでレトロゲームを作ろう!!  Python誠の「 Let's Python 1 」

おはようございます。

Python誠 こと、佐藤 誠 です。

 

Pythonレトロゲームを作ろう!

この連休が無駄に過ぎ去ってしまわないように、今日からPythonの記事をできるだけ毎日アップしていきたいと思います。(・・・果たして可能か?🤔)

 

内容は、今ノリに乗っているプログラミング言語「Pthon(パイソン)」で、簡単な2Dレトロゲームを作る方法を、ポイントを絞って記事にしていきたいと思います。

 

www.makotoblog.net

目標のレトロゲームは!?

目指すは・・・

スーパーマリオ』や『魔界村』などのアクションゲーム。

グラディウス』や『ゼビウス』などのシューティングゲーム

ドラクエ』や『イース』などのRPG(ロールプレイング)ゲーム等々・・・ 

アクション横スクロールシューティング

RPGアクションRPG

縦スクロールシューティングホラーアクション

それらのレトロゲームに負けないPythonでの2Dゲームづくりを、ポイントを絞って説明していきます!

それでは、早速行ってみましょう。

 

Let's Python 初級編 メニュー

  1. Pythonをインストール(公式サイトからダウンロード)
  2. 開発統合環境・IDLEのの設定方法(フォント・ダーク画面)
  3. IDLE・シェルウィンドウの使い方(対話モード)
  4. IDLE・エディタウィンドウの使い方(新規ファイル保存・実行)
  5. じゃんけんゲームの作り方(リスト・乱数・モジュールインポート)

       ・

       ・

       ・

1. Pythonのインストール

レトロゲームを作るために、Pythonがインストールされていないとプログラミングができません。

まずは、こちらの Pythonをインストール から初めてみましょう!

 

2. 統合環境・IDLEの環境設定方法 

Python3.8 は無事インストールできましたか?🤔

インストールできた方は、こちらの 「 開発統合環境・IDLEのか環境設定 」を行ってください。

IDLE画面の見た目や、フォントの種類やサイズを使いやすく設定します。

 

3. IDLE・シェルウィンドウの使い方 

IDLE・シェルウィンドウ(対話モード)で、Pythonコードを入力・実行してみましょう。

こちらの 「 シェルウィンドウの使い方 を行ってください。

 

4. IDLE・エディタウィンドウの使い方 

IDLE・エディタウィンドウの使い方(新規ファイル作成・保存実行方法)を説明します。

作成するプログラムは「モンスターじゃんけん」というかんたんなPythonコードを入力し実行してみます。 

 

5. じゃんけんゲームの作り方(リスト・乱数・モジュールインポート)

Pythonでじゃんけんゲームを作っていきます。モジュールのインポートや乱数の発生、リストの使い方も合わせて解説します。

 

 

お疲れ様でしたーー!!  

 順次、更新していきますので、レトロゲームづくりを目指して、どんどんPythonを触ってみましょう!

 

それでは、「 Let’s Python !!🤗」 

 ・・・ by Python誠。