【Python】初心者でも簡単!トランプゲームを作ってみよう | コピペで気軽にチャレンジ!

※本ページはアフィリエイト広告が含まれています

【Python】初心者でも簡単!トランプゲームを作ってみよう | コピペで気軽にチャレンジ!Python
スポンサーリンク

Pythonを使って簡単なトランプゲームを作る方法を初心者向けに解説します。デッキの生成からスコア計算まで、ステップバイステップで説明していきますので、プログラミング初心者の方でも気軽にチャレンジできます。一緒にPythonでゲーム開発の世界を楽しみましょう!

今回作成するゲームは、プレイヤーとコンピューターが5枚ずつカードを引き、Aの枚数で勝敗を決めるシンプルなトランプゲームです。プレイヤーは一度だけカードを交換する機会があり、最終的にAの枚数が多い方が勝利します。

このゲームから学べること
  1. モジュールのインポート
  2. リストの操作
  3. リスト内包表記
  4. ランダム化
  5. ユーザー入力の処理
  6. 条件分岐
  7. 文字列操作
  8. 関数の活用
  9. イテレーション
  10. インデックスの理解

Pythonの学習をより深めたい方へ:「【2024年最新版】Python講座で学べるプログラミングスクール10選を徹底比較」では、Python講座を提供する優秀スクールの比較と選び方をご紹介しています。自分に合ったスクールを見つけたい方は、ぜひチェックしてください。

スポンサーリンク

トランプゲーム 全体イメージ画像

ゲーム全体イメージ画像
スポンサーリンク

トランプゲーム コード全体像

トランプゲーム コード全体像
import random

# カードのデッキを作成
suits = ['♠', '♥', '♦', '♣']
ranks = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
deck = [f"{rank}{suit}" for suit in suits for rank in ranks]

# デッキをシャッフル
random.shuffle(deck)

# プレイヤーとコンピューターにカードを配る
player_hand = [deck.pop() for _ in range(5)]
computer_hand = [deck.pop() for _ in range(5)]

print("あなたの手札:", player_hand)
print("コンピューターの手札:", ["*****"] * 5)

# カードの交換
change = input("交換したいカードの番号を入力してください(例:1 3 5)、交換しない場合は Enter: ")
if change:
    for i in map(int, change.split()):
        player_hand[i-1] = deck.pop()

print("あなたの新しい手札:", player_hand)

# 単純な勝敗判定(Aの枚数で判定)
player_score = sum(1 for card in player_hand if card[0] == 'A')
computer_score = sum(1 for card in computer_hand if card[0] == 'A')

print("コンピューターの手札:", computer_hand)
print(f"あなたのスコア: {player_score}")
print(f"コンピューターのスコア: {computer_score}")

if player_score > computer_score:
    print("あなたの勝ちです!")
elif player_score < computer_score:
    print("コンピューターの勝ちです。")
else:
    print("引き分けです。")

ゲームの遊び方

  1. ゲームを開始すると、プレイヤーとコンピューターにそれぞれ5枚のカードが配られます。
  2. プレイヤーの手札が表示されます。
  3. カードを交換するかどうか聞かれます。交換したいカードの番号を入力してください(例:1 3 5)。交換しない場合はEnterキーを押します。
  4. 交換後の新しい手札が表示されます。
  5. コンピューターの手札が公開され、それぞれのスコア(Aの枚数)が表示されます。
  6. スコアを比較して、勝敗が決定します。

まずはコピペで作ってゲームをしてみましょう。

スポンサーリンク

トランプゲーム コードの詳細解説

トランプゲーム コードの詳細解説

それでは、コードを更に詳しく解説していきましょう。

1.必要なモジュールのインポート

import random
  • randomモジュールは、Pythonの標準ライブラリに含まれている乱数生成のためのモジュールです。
  • このモジュールを使用することで、乱数の生成やリストの要素のランダムな並べ替えなどができます。
  • 今回のゲームでは、主にカードのシャッフルに使用します。

2.カードデッキの生成

suits = ['♠', '♥', '♦', '♣']
ranks = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
deck = [f"{rank}{suit}" for suit in suits for rank in ranks]
  • suits:トランプの4つのマーク(スート)をリストで定義しています。Unicode文字を使用して、実際のトランプマークを表現しています。
  • ranks:カードの数字(ランク)をリストで定義しています。’A’はエース、’J’はジャック、’Q’はクイーン、’K’はキングを表します。
  • deck:リスト内包表記を使用して、すべての組み合わせのカードを生成しています。
  • for suit in suits for rank in ranksは、2つのforループを1行で書いたものです。
  • f”{rank}{suit}”は、f-string(フォーマット済み文字列リテラル)を使用して、ランクとスートを組み合わせています。
  • 結果として[‘A♠’, ‘A♥’, ‘A♦’, ‘A♣’, ‘2♠’, ‘2♥’, …] のような52枚のカードのリストが生成されます。

3.デッキのシャッフル

random.shuffle(deck)
  • random.shuffle()関数は、リストの要素をランダムに並び替えます。
  • この関数は、引数として渡されたリストを直接変更します(in-place操作)。
  • シャッフル後は、deckリストの要素がランダムな順序に並び替えられます。

4.カードを配る

player_hand = [deck.pop() for _ in range(5)]
computer_hand = [deck.pop() for _ in range(5)]
  • この部分では、リスト内包表記を使用して、プレイヤーとコンピューターにそれぞれ5枚のカードを配っています。
  • deck.pop()
    • pop()メソッドは、リストの最後の要素を取り出し、そのリストから削除します。
    • 引数なしで使用すると、最後の要素を対象とします。
  • [… for _ in range(5)]
    • これは5回繰り返すことを意味します。
    • _はPythonの慣習で、ループ内で使用しない変数を表すためによく使われます。
  • 結果として、pleyer_handとcomputer_handにはそれぞれ5枚のカードが格納され、それらのカードはdeckから削除されます

5.手札の表示

print("あなたの手札:", player_hand)
print("コンピューターの手札:", ["*****"] * 5)
  • print()関数を使用して、プレイヤーの手札を表示します。
  • コンピューターの手札は、 [“*****”] * 5 で5つの”*”からなるリストを生成して表示します。
  • *演算子をリストに使用すると、リストの要素が指定した回数繰り返されます。
  • これにより、プレイヤーは自分の手札を確認できますが、コンピューターの手札は隠されたままになります

6.カードの交換

change = input("交換したいカードの番号を入力してください(例:1 3 5)、交換しない場合は Enter: ")
if change:
    for i in map(int, change.split()):
        player_hand[i-1] = deck.pop()

print("あなたの新しい手札:", player_hand)
  • input()関数:ユーザーからの入力を文字列として受け取ります。
  • if change::入力が空でない場合(つまり、ユーザーが何かを入力した場合)に処理を行います。
  • change.split():入力された文字列をスペースで区切ってリストに変換します。例:’1 3 5′ → [‘1’, ‘3’, ‘5’]
  • map(int, …):リストの各要素にint()関数を適用し、文字列を整数に変換します。
  • for i in …:変換された整数のリストをイテレートします。
  • player_hand[i-1] = deck.pop()
    • i-1としているのは、ユーザーが入力する番号は1から始まるが、リストのインデックスは0から始まるためです。
  • 指定されたインデックスのカードを、デッキから新たに引いたカードと交換します。

7.スコア計算と勝敗判定

player_score = sum(1 for card in player_hand if card[0] == 'A')
computer_score = sum(1 for card in computer_hand if card[0] == 'A')

print("コンピューターの手札:", computer_hand)
print(f"あなたのスコア: {player_score}")
print(f"コンピューターのスコア: {computer_score}")

if player_score > computer_score:
    print("あなたの勝ちです!")
elif player_score < computer_score:
    print("コンピューターの勝ちです。")
else:
    print("引き分けです。")
  • sum(1 for card in player if card[0] == ‘A’)
    • これは条件付きジェネレーター式を使用したスコア計算です。
    • card[0] == ‘A’は、カードの最初の文字(ランク)が’A’かどうかをチェックします。
    • 条件が真の場合に1を返し、それらの合計を計算します。
  • f”あなたのスコア: {player_score}”
    • f-stringを使用して、変数の値を文字列に埋め込んでいます。
  • if, elif, else文
    • スコアを比較して、勝敗を決定します。
  • これにより、プレイヤーとコンピューターのスコアに基づいて適切なメッセージが表示されます。
スポンサーリンク

トランプゲーム 機能の追加

基本的なゲームが完成したら、以下のような機能を追加してみるのも面白いでしょう。

  1. 複数回のラウンドを実装し、総合スコアを計算する。
  2. より複雑な役(ペア、フラッシュなど)を判定する機能を追加する。
  3. コンピューターのAIを改良し、戦略的にカードを交換するようにする。
  4. グラフィカルユーザーインターフェース(GUI)を追加して、カードを視覚的に表示する。

これらの課題に挑戦することで、さらにPythonプログラミングスキルを向上させることができます。

今回、ゲームを作ってきてさらに難易度設定、Tkinterの使用方法など、ゲームにもっと面白い機能を作ってみたいときはプログラミングスクールで学ぶのもよい選択肢です。こちらの記事ではPythonの講座を集めたスクールを紹介しています「【2024年最新版】Python講座で学べるプログラミングスクール10選を徹底比較」のでPython講座を提供する優秀スクールの比較と選び方の参考にしてください。自分に合ったスクールを見つけたい方は、ぜひチェックしてください。

スポンサーリンク

【Python】初心者でも簡単!トランプゲームを作ってみよう | コピペで気軽にチャレンジ! まとめ

【Python】初心者でも簡単!トランプゲームを作ってみよう | コピペで気軽にチャレンジ! まとめ

このシンプルなトランプゲームを通じて、以下のPythonプログラミングの基本概念を学ぶことができます。

このゲームを通じて、これらの概念を実践的に学ぶことができます。さらに、ゲームのルールや機能を拡張することで、より深くPythonプログラミングを学ぶことができるでしょう。

  1. モジュールのインポート: randomモジュールを使用して、プログラムに追加機能を取り入れる方法を学びます。
  2. リストの操作: カードデッキの作成、シャッフル、カードの配布など、リストを使った様々な操作を学びます。
  3. リスト内包表記: デッキの生成やスコア計算で使用される、Pythonの強力な機能であるリスト内包表記を学びます。
  4. ランダム化: random.shuffle()を使用してデッキをシャッフルする方法を学びます。
  5. ユーザー入力の処理: input()関数を使って、ユーザーからの入力を受け取り、処理する方法を学びます。
  6. 条件分岐: if-elif-else文を使用して、ゲームの勝敗を判定する方法を学びます。
  7. 文字列操作: f-文字列を使用して、変数の値を文字列に組み込む方法を学びます。
  8. 関数の活用: sum()map()などの組み込み関数を使用して、効率的にコードを書く方法を学びます。
  9. イテレーション: for文を使用して、リストの要素を繰り返し処理する方法を学びます。
  10. インデックスの理解: リストのインデックスを使って、特定の要素にアクセスしたり、更新したりする方法を学びます。

このチュートリアルでは、Pythonを使って簡単なトランプゲームを作成する方法を学びました。デッキの生成、カードの配布、ユーザー入力の処理、そしてゲームの勝敗判定まで、ステップバイステップで解説しました。

このプロジェクトを通じて、Pythonの基本的な概念や機能を実践的に学ぶことができます。プログラミング初心者の方にとって、このような小さなプロジェクトは、スキルを磨き、自信をつけるための素晴らしい方法です。

まずはこのコードをコピーして実行してみてください。そして、自分なりにゲームを改良したり、新しい機能を追加したりして、プログラミングの楽しさを体験してください。

プログラミングのとてもよい勉強になりますよ!

※本ページはプロモーションが含まれています。

Python
スポンサーリンク
meguをフォローする
WEBらぼ