自己紹介
私は大学三年生で、大学を卒業するまでに開発のスキルを身に着けたくpythonの勉強を始めました。高校でCの経験は3年ほどあり、プログラミングの基礎概念は理解しています。
学生の特典でGitHub Educationを利用させていただけたので、Copilotと一緒に学習していく過程と初学者として疑問に思った点をメモとして残していきたいと思います。使用モデルはclaude opus 4.5です。※2月4日にしてプレミアムリクエストの制限がかかりました。完全に制限の事を考えていませんでした。次回からはおそらくGPT5miniになります。
作ったもの
#2で制作したターミナル上で動くじゃんけんゲームを三本先取にしてstreamlitを用いてGUIをつけてみました。
学んだこと
- ユーザーがボタンを押すとスクリプト全体が再実行される。だからスコアなどを保持するには
st.session_stateを使う。→セッション状態にすれば再実行されても保持できる -
st.rerun()の入れどころがとても大事。今回はループ処理で三本先取するまでじゃんけんを繰り返すので、入れどころを間違えると永遠にループして画面が表示されなくなる。 -
st.culumnsでボタンを横並びに - whileを用いた繰り返し処理とpythonの条件分岐の書き方
疑問と解決した方法
- 勝負がついているのにボタンが出っぱなしだったり、選んだ手のメッセージでボタンがずれて見栄えが悪い→リセットボタンの追加やボタンを横並びにする。選んだ手や勝敗のメッセージは下に表示するようにすることで解決しました。
- 一回一回得点がリセットされてしまう→streamlitはそういう仕様らしく、
st.session_stateこれを使うことで解決しました。
終わりに
私はスポーツの上達のためにスポーツ選手の動きをまねるのが効果的であるのと同じようにAIの真似をしながら進めていくのが良いと考え、AIの書いてくれたコードをベースに学習を進めています。逐一自分で調べたりわからないコードがあればAIに質問したりしながら作業していますが、間違ったことがあればご指摘いただけると幸いです。