【電気イスゲーム】をPythonで作ってみた。プログラミングを楽しく学ぶ!
みなさんこんにちは、こんばんは!
今回は、プログラミングでゲームを作ってみました。
みなさんも自分のパソコンで同じように動かし、遊ぶことができます。
まず、「あのゲームとはなんぞや?」と思っている方も多いでしょう。
結論から言うと、
『水曜日のダウンタウン』で話題になった『電気イスゲーム』です。
このゲームは簡単に遊べるように作られており、
コンソールアプリケーションとして実装しています。
楽しみながらプログラミングを学ぶ絶好の機会です。
ぜひ一緒に挑戦してみてください!
コンソールアプリケーションとは
コンソールアプリケーションは、映画の「マトリックス」を思い出してください。
みなさん知っているかな。。。
世代によっては伝わらないかもです。。。
映画「マトリックス」の中で、
画面いっぱいにテキストが流れていくシーンがありますよね?
あるんです。
あのテキストのように、
コンピューターの画面に文字だけが表示され、
マウスやアイコンを使わずにキーボードだけで操作するプログラムが
コンソールアプリケーションです!
具体的なイメージをもってみよう!
例えば、
あなたがコンピューターに話しかけるように、キーボードで質問を入力すると、コンピューターがテキストで答えてくれるようなイメージ。
これをもっと簡単に言うと、
テキストだけでやり取りするチャットのようなもの。
以下は簡易的なコンソールアプリケーションの一例
黒い背景の画面にテキストを表示させたり、
入力することができます。
コンソールアプリケーションの次に、
みなさんが普段使っているブラウザなどで動くアプリケーション、
つまり『Webアプリケーション』があります
コンソールアプリケーションは、
プログラミングの基礎を学ぶための重要なステップであり、
次に進むための土台となります!
コンソールアプリケーションをしっかり理解することで、
将来的にWebアプリケーションなど、より高度なプログラムの開発に挑戦する準備が整います!
少しずつステップアップしていきましょう!!
今回は、コンソールアプリケーションでゲーム作って楽しむところまで行っていきます!
得られること
コンソールアプリケーションのイメージを掴むことができる
プログラム言語(Python)を知ることができる
手軽にPythonを動かせる環境紹介
ゲームのコードがみれる(2/3)
Pythonの基礎を効率よく学べる(一部のみ)
以下、限定公開ゲームのコードが全てみれる
ゲームのコードをコピーで貼り付けてすぐに遊べる
(※)
※Ver1.0.0からどんどんアップデートしていきます!
つまり購入後は、追加購入することなくアップデート内容を見ることができます。アップデートを行い、値段を上げていく予定です。
ゲームのコードを基準にPython基礎を効率良く学べる解説などを足していきます。
プログラミングに興味がある方にとって、どの言語から始めるべきかは大きな課題。
そんな中で、Python(パイソン)は多くの初心者におすすめされる言語の一つでもあります。
そのPythonを使用してコンソールアプリケーションを作っていきます。
Pythonが何か、なぜ人気があるのか、
そして、どのように理解を深めるのかコンソールアプリケーションを題材に楽しく学んでいきます!
Pythonとは?
Pythonは、1991年にグイド・ヴァンロッサムによって発表されたプログラミング言語。シンプルで読みやすい文法と強力な機能を兼ね備えており、初心者からプロフェッショナルまで幅広い層に支持されています。
どんな特徴があるのか
読みやすい文法
豊富なライブラリ
マルチパラダイム
インタプリタ言語
読みやすい文法
Pythonのコードは英語に近い形で書かれているため、プログラミング初心者でも理解しやすいです。
豊富なライブラリ
Pythonには多くのライブラリ(既に書かれたコードの集まり)があり、これを利用することでさまざまな機能を簡単に実装できます。
マルチパラダイム
Pythonはオブジェクト指向、手続き型、関数型のプログラミングをサポートしています。(用語の詳細はこちら)
インタプリタ言語
Pythonはインタプリタ型言語であり、コードを一行ずつ実行するため、プログラムの動作をリアルタイムで確認しやすいです。
なぜPythonが人気なのか?
簡単で明快な文法
Pythonの文法はシンプルでわかりやすいため、プログラミングの基本を学ぶのに適しています。多用途性
ウェブ開発、データ分析、人工知能、機械学習、科学計算など、さまざまな分野で利用されています。大規模なコミュニティ
Pythonのユーザーコミュニティは非常に活発で、オンラインフォーラムやチュートリアル、オープンソースプロジェクトなど、学習をサポートするリソースが豊富です。
Python環境を用意しよう
今回は、難しい環境設定をすることなく、気軽にPythonコードを動かせる環境を紹介します。
手順
①
ブラウザで「Colaboratory」と検索
「Colaboratoryへようこそ-Code」をクリック
②
Colaboratoryへようこそを開いたら
「ファイル」→「ドライブの新しいノートブック」
③
ドライブの新しいノートブックが作成される
(必要に応じて名前を変更する)
④
簡単なコードを書いてみよう
今回は、
『はじめてのPython!』と表示されるコードを記述してみます。
実際に入力してみましょう!
コピーしても貼り付けてもOK
print('はじめてのPython!')
実行:
書いたコードを実行するためには実行マークをクリックします。
このように正しく出力されれば成功です!!
今回はPythonの出力する構文を記述しました。
print()を記述することで
print()のカッコ内に書いた情報を出力させることができます。
このサイトを使用することで、
手軽にPythonのコードを実行して出力を表示させることができます!
難易度を少し上げて
コードを書いてみましょう!
変数を用いたコード
変数とは何か?
変数とはデータを入れる箱のようなもの。
実際に動きを見てから学んでいこう。
name = 'ひこぼし'
print('私の名前は' + name + 'です。')
このコードを動かすと
私の名前はひこぼしです。
このように出力されます。
では、みなさんも自分の名前に置き換えてコードを書いてみましょう。
先ほどの出力の下にカーソルを合わせると「+コード」と表示されるのでクリックする
そして、
ひこぼしの個所を自分の名前に置き換えてコーディング
実行マークをクリックして出力を表示させる
無事、出力されれば成功!
今回は、『name』という変数(箱のようなもの)の中に’ひこぼし’という情報をいれました。
そして、
出力する構文であるprint()に変数『name』を入れて表示させています。
イメージ
print()で変数nameを呼び出すと、変数nameの中の情報が出力される。
変数の扱いと出力方法を学びました。
コレだけでも
大まかな動きも理解することができます。
他にも、
多くの構文があり、
それらを組み合わせることによってコンソールアプリケーションを完成させることが可能です。
ゲーム実行!
電気イスゲームのコンソールアプリケーションを実行
ゲームのルールは以下参照
コンソール画面では数字を入力できる状態。
ここで選択可能な数値を選んで入力していくとゲームが進んでいく。
例えば『7』を入力するとプログラムが動いて新たな出力が表示される
交互に攻防していく
得点もカウントされるようにプログラムされている
これをゲームルールに従って勝敗が決まるまで進める
最終的に勝敗が決まると以下のように表示される
スコアと
どちらが勝ったを表示する
ソースコード公開
ソースコードは画像で公開します。
初心者は実際に写経してコードを動かしてみて下さい!
有料限定では、
コピーしてすぐに実行できるようにテキストで共有してます。
コメントも合わせて記述しているのでわかりやすいです。
では、
ソースコードの画像を
Pythonコードを理解しよう!
ゲーム内コードを用いて解説を行っていきます。
学習する上でプログラミングスクールでは、
各構文を一通り学習するといことがほとんどです。たくさんの木を見ているイメージ。
ここでは、実際のコンソールアプリケーションを用いてソースコードを学んでいきます。
森を見て、そこから一つ一つの木を見ていくイメージです。
ゲームのソースコード解説していきます。
まずは1行目
importについて
import random
これは、Python標準ライブラリの機能を使えるように
呼び出している構文です。
import 呼び出したいライブラリ
今回の場合は、『random』というライブラリを呼び出しています。
『random』の機能を呼び出しているだけなので、
使用するタイミングの際に再度、紹介します。
ここでは、
ライブラリの機能を呼び出して使用していると理解してください。
■初期設定
画像の3行目~10行目
ここでは、初期設定を行っています。
変数で解説したイメージ(name = 'ひこぼし')を思い出して下さい。
そのイメージのように
左側が変数名であって、右側に書かれている情報が格納されます。
print()などで使用したい場合に変数名を記述することで格納された値を扱うことが出来ます。
右側に書かれている情報が少し複雑ですが、
左側の変数に右側の情報が入っていると覚えて下さい。
この変数を使用するタイミングで、
右側の情報を詳しく紹介し触れていきます。
■関数
以下の画像は関数といわれる箇所。
詳しくみていきます!関数という言葉についてわからなくても進んで大丈夫です。
大きなくくりで関数が4つあります。
どこでしょうか??
考えてみて下さい。。。
画像を縮小したため、見にくいかと思いますが、
左側の行数を目印にお伝えします。
12行目 def defense_action(player_name):
25行目 def offense_action(offense_player, offense_player_name):
56行目 def display_scoreboard():
67行目 def check_winner():
関数とは、
特定の機能を行うコードのまとまりと覚えて下さい。
上記の各行に、実施する機能の名前を付けて記述しています。
この機能を使いたい場合は、
関数名(機能の名前)を呼び出すことによって、機能を使用することが出来ます。
56行目の『def display_scoreboard():』を例に解説します。
def display_scoreboard():
def
これは、関数であることを示している
display_scoreboard():
これは関数名を表している。最後に『:』をつけて完成する。
『def display_scoreboard():』と記述した後に、
この関数を呼び出したときに実施したい機能の処理を記述する。今回の場合は、57行目~65行目のコードが該当する。
※処理のコードは左詰めにするのではなく、まとまって右側へコードをずらす必要がある。このスペースを『インデント』という。
図解で理解しよう!
そして、
ここで新たに『引数』というワードが登場。
『引数』は(ひきすう)と言います。いんすうと呼ばないように気を付けて下さい。
■引数
引数とは
わかりやすいように、
先ほど紹介した関数のコードを用いて『引数』を解説します。
引数はカッコの中に記述します。
値を渡して、関数内の処理で値を扱いときに記述します。
56行目の『def display_scoreboard():』はカッコの中に特に値は入っていないですよね。
つまり、値は渡す必要な無く、単純に関数内で処理をするだけ。
12行目『def defense_action(player_name):』の場合、
カッコ内に player_name と書かれていますよね。
関数を扱う際に値を渡して、関数の処理中で引数の情報(値)を扱うできるようにする。この受け渡す役割を持ちます。それが引数です。
引数が2つの場合は、
25行目の『def offense_action(offense_player, offense_player_name):』のようになります。『,(カンマ)』で区切って引数を複数設定できます。
イメージで例えると
運動会のリレーを思い出して下さい。
人から次の人へ継がれていきます。
リレーのときは、バトンを渡していきますよね。バトンが引数のようなもの。
カッコ内に引数が記述されていない場合(引数なしの場合)は、
バトンの無いリレーだと思って下さい。受け渡されたものがないので、タッチして次の人が走る。
引数が複数ある場合は、
バトンを複数持って複数受け渡しているとイメージしてみて下さい。
有料の内容としては、ソースコードとなります。
ソースコードをコピーできてコードを実行することが可能です。
動かすことで楽しみながらコードの理解も深めることができます。
各行にコメントを記載しているので、コードのイメージも付きやすくお勧めとなっています。
ソースコード(コピペ用)
ここから先は
¥ 300
Amazonギフトカード5,000円分が当たる
今は色々なことにチャレンジできてワクワクしてます。人生一度きりです!私の挑戦が、あなたの人生を豊かにするヒントになれば幸いです。応援よろしくお願いします!!