(HSPな人向け)ChatGPTと話しながら、プログラミングの勉強をしてみる

すこーしだけ前に、世間を騒がせたChatGPT。
使い方は様々と言われており、自分のクリエイティビティを刺激してくれます。

ChatGPTのプラン

ChatGPTには2つのプランがあり、ざっくり言うと無料プランと、有料プランに分かれています。
私はお試しとして1ヶ月だけ有料プラン(月額20USドル・2023年8月1日現在)に入ったのですが、課金してもそんなには変わらないんじゃないかなー、という印象です。
一般人、ITにあんま詳しくない素人だと、違いはそんなにないのかもしれません。(あくまで私の感覚値です

プログラミングをゼロからスタートしてみる

さて、私はかねてよりPythonを学習したいと思っており、仕事の手が空いた時にはVS codeを開き、適当な学習サイトをググってみて、そこに載っているコードを自分でタイピングしてみる、と言うことをやっているのですが、

要件 → (見えない何か) → コーディング

この、(見えない何か)の箇所が、どうしても分からないから一向に理解が進まないと言う現状がありました。

そこで、この部分をChatGPTに教えてもらえば良いのでは?と神が降りてきて私に囁き、そうか、とトライしてみることに。

結論から申し上げると、これはめっちゃ役に立ちます。
分からないところをガツガツ聞いても怒られないので、私が納得するところまで聞くことができます。

とは言え、何を学べば良いのだ?!となってしまうんですが、ここで、世界共通でできるゲームを選べば良いんです。
私はポーカーを選びました。

ポーカーで試してみた

まず、ChatGPTにポーカーの要件は?と聞いてみます。
得られた結果がこちら。

以下はポーカーゲームの一般的な要件の例です。ポーカーゲームは多くのバリエーションがあるため、ゲームの具体的なルールによって要件が変わることがありますが、一般的な要件を以下に示します:

  1. デッキの作成:
  • カードのランクとスートを組み合わせてデッキを作成する。
  • デッキには52枚のカードが含まれる。
  1. カードのシャッフル:
  • デッキからカードをランダムにシャッフルする。
  1. プレイヤーの参加:
  • ゲームに参加するプレイヤーを登録する。
  • ゲームには最低2人以上のプレイヤーが必要である。
  1. カードの配布:
  • シャッフルされたデッキからカードを順にプレイヤーに配布する。
  • 各プレイヤーには最初に5枚のカードが配られる。
  1. ベッティング:
  • プレイヤーは手札を見てベッティングを行う。
  • ベッティングには異なるタイプのベット(例:チェック、コール、レイズ)が含まれる。
  1. カード交換(オプション):
  • プレイヤーは一部またはすべての手札を交換することができる(ドロー)。
  • カード交換を行わない場合もある(ドロームーション)。
  1. 役の評価:
  • プレイヤーの手札を評価して役を判定する。
  • 一般的なポーカーの役は、ハイカード、ワンペア、ツーペア、スリーカード、ストレート、フラッシュ、フルハウス、フォーカード、ストレートフラッシュ、ロイヤルフラッシュなどがある。
  1. 勝敗判定:
  • プレイヤーの手札の役を比較して、最も強い役を持つプレイヤーが勝利する。
  • 勝利したプレイヤーはポットを獲得する。
  1. ゲームの繰り返し:
  • ゲームを複数のラウンドで繰り返し行う。
  • プレイヤーは途中で降りる(フォールド)ことができる。

以上が一般的なポーカーゲームの要件の一部です。ゲームのバリエーションやルールによって要件が異なる場合もあるため、具体的なポーカーゲームに応じて要件を調整する必要があります。

ChatGPTの回答(2023年8月1日現在・Chat GPT3.5

ふむふむ。ぱっと見、誰でも知っているような要件ですね。目新しいものは何もない。
さぁ、ここで、またしてもChatGPTに聞いてみます。

コードはこちら。

カードのランクとスートを定義

ranks = [‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ’10’, ‘Jack’, ‘Queen’, ‘King’, ‘Ace’]
suits = [‘Hearts’, ‘Diamonds’, ‘Clubs’, ‘Spades’]

デッキを作成する関数

def create_deck():
deck = [(rank, suit) for suit in suits for rank in ranks]
return deck

1のコード。ChatGPT3.5(2023年8月1日現在

ここで、もし自分のPythonスキルがこのコードを読むに至らない場合、詳しく解説をしてもらう必要があるでしょう。
私の場合、デッキを作成する関数のところがよく分からなかったので、詳しく解説してもらいました。

このような感じで、詳細説明までしてくれるので、聞くのが怖い、と言う人にもおすすめです。

そう、何が良いって相手が機械だから、相手の機嫌などを気にしなくても良いのです!!
私みたいな小心者は、相手の機嫌を伺ってみて、今なら聞ける!みたいなタイミングで聞こうと頑張ってしまうので、そこを気にしなくても良いというのは本当にありがたいです。

脱線しますが、HSP気質の人には機械を相手にするのって良いのかもしれません。
私もHSPなので、人とコミュニケーションするのは嫌いではないけれど、長時間は疲れる、、となってしまうので、いつ、どんな時でも聞ける環境というのはありがたいものです。
聞いても十分な答えをくれなかったり、自分の期待していなかった答えだった時に、突っ込んで聞いてみるとか、そういうのにものすごくカロリーを使う人には、ChatGPTみたいな生成AIを相手にするのってすごく助かります。
そんな人に届いてくれたら嬉しいなぁ、このブログ。