質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

820閲覧

何を表しているのわかりません。

to_hu

総合スコア4

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/06/04 04:36

下記のコードは本を見て入力したものです。
分からない部分は2つあります。1つは、play_gameメソッドのcards = self.deck.cardsが何を表しているのかが分からないです。
cards = self.
2つ目は、Playerクラスは何をしているのでしょうか。
よろしくお願いいたします。

また、コードを理解するためにやった方が良いアドバイスがあれば、
ご教授頂けると幸いです
【コード】

class Card: #トランプのカードの種類をmarksリストに格納 marks = ['spades','hearts','diamonds','clubs'] #トランプの数をvaluesリストに格納 #None2つはインデックス操作と値を同じにするため #None[0],None[1],'2'[2] values = [None,None, '2','3','4','5','6','7','8','9', '10','Jack','Queen','King','Ace'] def __init__(self,v,m): #markもvalueも整数値 self.value = v self.mark = m #__lt__は < を使ったときに動く def __lt__(self,c2): if self.value < c2: return True if self.value == c2: if self.mark < c2: return True else: return False return False #__gt__は > を使ったときに動く def __gt__(self,c2): if self.value > c2: return True if self.value == c2: if self.mark > c2: return True else: return False return False def __repr__(self): v = self.values[self.value] + ' of ' + self.marks[self.mark] return v card1 = Card(11,1) card2 = Card(11,2) print(card1 < card2) print(card1) from random import shuffle class Deck: def __init__(self): self.cards = [] for i in range(2,15): for j in range(4): self.cards.append(Card(i,j)) shuffle(self.cards) def rm_card(self): if len(self.cards) == 0: return return self.cards.pop() deck = Deck() for card in deck.cards: print(card) class Player: def __init__(self,name): self.wins = 0 self.card = None self.name = name class Game: def __init__(self): name1 = input('プレーヤー1の名前') name2 = input('プレーヤー2の名前') #Deck()はカードの全種類をシャッフルにして入れたもの self.deck = Deck() self.p1 = Player(name1) self.p2 = Player(name2) def wins(self,winner): w = 'このラウンドは{}が勝ちました' w = w.format(winner) print(w) def draw(self,p1n,p1c,p2n,p2c): d = '{} は {}、{} は {} を引きました' d = d.format(p1n,p1c,p2n,p2c) print(d) def play_game(self): cards = self.deck.cards print('ゲームを始めます') while len(cards) >= 2: m = 'qで終了、それ以外のキーでplay' response = input(m) if response == 'q': break p1c = self.deck.rm_card() p2c = self.deck.rm_card() p1n = self.p1.name p2n = self.p2.name self.draw(p1n,p1c,p2n,p2c) if p1c > p2c: self.p1.wins += 1 self.wins(self.p1.name) else: self.p2.wins += 1 self.wins(self.p2.name) win = self.winner(self.p1,self.p2) print('ゲーム終了、{} の勝利です!'.format(win)) def winner(self,p1,p2): if p1.wins > p2.wins: return p1.name if p1.wins < p2.wins: return p2.name return '引き分け!' game = Game() game.play_game() コード

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ockeghem

2021/06/04 04:43

書籍からのプログラムの転載であれば、書籍名等の出典を明記しないと、引用要件を満たせず、無断転載になってしまいますよ。
S.Percentage

2021/06/04 04:50

ちゃんとしたPythonの入門本なら「selfとはなにか」って書いてあると思うんですけど、書いてないです?
guest

回答1

0

ベストアンサー

  • cards = self.deck.cards

場のカードデッキ(シャッフルしたトランプ)を設定しています。

  • Playerクラスは何をしているのでしょうか。

各プレイヤーを表しています。
名前があり、場のカードデッキから引いた手札を持っています。

  • コードを理解するためにやった方が良いアドバイス

Python チュートリアルをひととおり読みましょう。特に9. クラスの部分をよく読みましょう。

投稿2021/06/04 04:53

ppaul

総合スコア24666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

to_hu

2021/06/04 05:05

ありがとうございます。 実際に見て勉強してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問