Skip to content

seigot/tetris_game_tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of Contents

tetris_tutorial

tetrisプログラミング用のチュートリアルです。
このチュートリアルを理解すればtetrisのブロック操作用サンプルプログラム(block_controller_sample.py)が読めるようになることを目指しています。

プルリクエスト募集中です。

まず動かしてみる

tetrisの「実行環境準備」を参照して、まず動かしてみる。
困った時はFAQなど参照。

Githubリポジトリfork

tetrisをforkする。これはtetrisの右上の「Fork」ボタンを押せばOK
tetrisを「コード作成のはじめかた」にも詳細を記載している

エディタ

世の中には色々なエディタがありますが、最終的には自分の好みで選択するのがよさそうです。

エディタ名 特徴 備考
vi - -
emacs - -
gedit - -
vscode Microsoftのエディタ、機能まぁまぁ、グラフィカルで操作はわかりやすい、ただ重い
MacOSでVisual Studio Codeをインストールする手順
Microsoft Visual Studio Codev1.56.0
UbuntuにVSCodeをインストールする3つの方法
-
spyder pythonの統合開発環境(エディタ進化版)、デバッグとかしやすい、ただ重い -
nano vimよりマシな操作感、軽い、ただ結局コマンドを覚えないと保存すらできない -
vim とりあえず感覚的に操作できないからハードル高い、ただ覚えれば効率は一番いいかも -
その他 - -

参考

更新するかも

ターミナルから使うコマンド

ターミナルから使うコマンドです。
今回は最低限以下を使えれば問題ないはず。

cd     : ディレクトリの移動。change directoryの略
ls     : 現在のディレクトリのファイルを表示。listの略
rm     : ファイルを削除。removeの略
rm  -r : ディレクトリを削除。

参考

ターミナルのよく使うコマンド

git

gitはソフトウェアのバージョン管理システムです。
github上でのtetris用ソースコード管理をコマンドラインから操作することが可能です。
多くのコマンドが存在しますが、今回は最低限以下を使えれば問題ないはず。

git add (ファイル名)   # 指定したファイルを変更対象に登録
git commit           # addしたファイルを登録する(ローカルのgitに登録する)
git push             # 変更を登録する(リモートのgitに登録する)
git pull             # 変更を取り込む

上記コマンドの練習をする場合、以下の練習用リポジトリの1.〜3.を実施してみてください。
test_pull_request
その他、詳しくは参考サイトを参照下さい。

参考

いまさらだけどGitを基本から分かりやすくまとめてみた
【メモ】GitHubでgit clone〜git pushまで
[git] 基本操作(clone、add、commit、pushなど)を覚えて、開発出来るようになる
【Git】基本コマンド

gitコマンド使用例(https://github.com/seigot/test_pull_requestを使う場合)

  • リポジトリをforkする

まず、test_pull_requestにアクセスしてリポジトリをforkする。
右上の「Fork」ボタンを押せばOK

  • リポジトリをcloneする

次に、forkしたリポジトリをgit cloneする
(自分のアカウント名)の部分は、自分アカウント名に置き換える

git clone https://github.com/(自分のアカウント名)/test_pull_request

# 例 (自分のアカウント名)=seigotの場合
git clone https://github.com/seigot/test_pull_request
  • git add/commit/pushする、
cd test_pull_request                      # git clone https://github.com/(自分のアカウント名)/test_pull_requestで取得したリポジトリに移動する。
echo "this_is_test_string" >> README.md   # README.mdファイルを更新する
git add README.md                         # git add
git commit -m "update README.md"          # git commit
git push                                  # git push
  • 更新の確認

https://github.com/(自分のアカウント名)/test_pull_requestにアクセスして、更新が反映されていればOK
(自分のアカウント名)の部分は、自分アカウント名に置き換える

gitコマンド使用例(http://github.com/(自分のアカウント名)/tetrisを使う場合)

例) tetrisをcloneしてきて、block_controller2.pyという名のファイルをお試しでpushする
block_controller2.pyというお試しファイルのpushを好まない人はスキップして問題ありません)

Screenshot

コマンド

cd ~                                                        # homeに移動
rm -rf tetris                                               # ディレクトリ削除
git clone http://github.com/(自分のアカウント名)/tetris       # (自分のアカウント名)/tetrisをcloneしてくる
cd tetris                                                   # tetrisへ移動
cp block_controller.py block_controller2.py                 # とりあえずお試しファイルをコピー
git add block_controller2.py                                # お試しファイルを変更対象に登録
git commit -m "sample commit"                               # addしたファイルを登録する(ローカルリポジトリに登録する)
  ## もしplease tell me who you are とでたら、、ログに出ている以下を入力 
   git config --global user.email "[email protected]"
   git config --global user.name "YourName"
  ## その後、以下を実行してcommit
   git commit -m "sample commit"
   もしくは、
   git commit
   (エディタは esc+:wq  で終了できる)
git push                                                    # リモートリポジトリに登録する
   --> Githubアカウント(ユーザ名、パスワード)入力

githubの自リポジトリ上に変更が加わっていることがみえたらOKです。

githubへpushする際の認証方法の変更

2021/8/13より、Githubへ認証が必要なgit操作をする場合は、Passwordによる認証からアクセストークンを使用した認証に変わったようです。
使用方法は以下の通り公式サイトを参照すればOK。Passwordの代わりにアクセストークンを入力すればOKの様子。

個人アクセストークンを使用する githubの個人アクセストークンを使用する

python

pythonはプログラミング言語の1つです。
研究用途でも用いられる事が多く、サポートも豊富であり、プロトタイプ開発などに便利です。
文法に関しても色々ハマり所はありますが、今回は最低限以下を使えれば問題ないはず。

以下を参考にしています。

tetris_game_tutorial python勉強用ドキュメント
公式サイト: Top - python.jp ゼロからのPython入門講座
【初心者向け】無料でPythonの基本文法を5時間で学ぼう!AI_Academy
AtCoderで始めるPython入門

print
演算子(*,/,+.-)
加算代入演算子(+=)、減算代入演算子(-=)
max,min,sum
論理演算子(and, or)
括弧 ()
if文
比較演算子
list型
辞書型
tuple型
len
for x in [1,2,3,4]:
for x0 in for range(2,8)
continue
3種類のrange,(range(1,3),range(height - 1, 0, -1):,range(width),)
while
関数
ライブラリ
class

おまけ:PythonでFizz Buzz書いてみた
その他、詳しくは参考サイトを参照下さい。

上記の文法の練習として以下の問題(atcoder beginners selection)を解くと良いかもしれません。
https://atcoder.jp/contests/abs

参考

【初心者向け】無料でPythonの基本文法を5時間で学ぼう!
Pythonの基礎基本を30分ですべて終わらせる Python3基礎文法
初心者がPythonの練習

python使用例

tutorialにお試し用pythonプログラムを置きました。
使用手順の詳細はtutorial/README.mdを参照ください。

git clone http://github.com/seigot/tetris_game_tutorial  # tutorialディレクトリをclone
cd tetris_game_tutorial/tutorial                         # tutorialディレクトリへ移動
python3 tutorial1.py                                     # tutorial用プログラム実行
...

tetrisのブロック操作用サンプルプログラム(block_controller_sample.py)での使用例

tetrisのブロック操作用サンプルプログラム(block_controller_sample.py)でのpython使用例

次のステップ

tetrisブロック操作用プログラムについてブロック操作用サンプルプログラムを読み進めて下さい。

その次のステップ

自身のリポジトリ配下のブロック操作用プログラム(block_controller.py)をアップデートしてハイスコアを狙って下さい。

補足

pythonを使う練習として、Atcoderの過去問を解くことをオススメします。
Atcoderの過去問

以下、参考

【初心者向け】無料でPythonの基本文法を5時間で学ぼう!AI_Academy
AtCoderで始めるPython入門
公式サイト: Top - python.jp

About

tetris_game_tutorial

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages