[過去ログ]
Pythonのお勉強 Part68 (1002レス)
Pythonのお勉強 Part68 http://mevius.5ch.net/test/read.cgi/tech/1663235546/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
725: デフォルトの名無しさん (ワッチョイ 927e-THRA) [sage] 2022/11/10(木) 18:14:06.31 ID:y5PDmjdo0 >>724 687が戒めたいのがまさに724みたいな馬鹿野郎なんだろうな。 目的と手段が入れ替わってclass考えて作るのに必死になる馬鹿。 http://mevius.5ch.net/test/read.cgi/tech/1663235546/725
726: デフォルトの名無しさん (ワッチョイ 655f-nsye) [sage] 2022/11/10(木) 18:34:12.90 ID:RApG3JqD0 カードクラス作ってもいいけど、同じカードが存在しない、記号4つと数字1〜13の組み合わせの ものにクラスがいちいちいるかな。 カードクラスはカード1枚を表して、なにができればいいんだ? 記号クラスがあって、各記号クラスがあって、ナンバークラスがあって、 is_MarkMatchとかis_NumberMatchとかもってんの? idとprintがあればいいのかな。まあいいけど、そんだけのために classいちいち用意するのめんどくない? 複数枚のカードを扱うcardsクラスなのかな?機能はいろいろ持てそうだけど ゲーム固有すぎてどうなのかな? http://mevius.5ch.net/test/read.cgi/tech/1663235546/726
727: デフォルトの名無しさん (テテンテンテン MM96-xvRb) [sage] 2022/11/10(木) 19:12:07.27 ID:/sng0JalM 可読性考えるとクラスのほうが良いわな 自分だけが使うなら好きに作ればいい http://mevius.5ch.net/test/read.cgi/tech/1663235546/727
728: デフォルトの名無しさん (ワッチョイ 7247-GkOZ) [sage] 2022/11/10(木) 19:17:47.15 ID:tUNuHkwK0 自分だけが使う場合でも後々困る 読みにくくていいのは再利用しないと判ってる場合 http://mevius.5ch.net/test/read.cgi/tech/1663235546/728
729: デフォルトの名無しさん (ワッチョイ 1997-OSgl) [] 2022/11/10(木) 19:47:31.93 ID:eS5awfmL0 >>725 689だが、トランプはクラスを作った方が(少なくともnamedtuple,dataclass)便利だと思うぞ >>726 記号クラス、番号クラスなんて作らない 記号はenum、番号はそのまま1~13でいい が、どの記号が黒だ赤だ、どの番号が絵柄か(JQKA) みたいなのはたとえインスタンスが一個でもメソッドになってた方が便利だと思うけどなあ。 カードは内部表現とUI上の表現が異なるのが自然だし、そういう意味でもクラスにしておくのは悪くないと思うが クラスにしすぎてもしょうがないというのは、ゲームのルールをクラスにして共通のインタフェース持たせて、バリエーションを切り替えられるようにしても大抵は仕方ないみたいなことだよ もちろん、どんなゲームシステムを作るかによるし、ルールを共通インタフェースで入れ替えられるようにするメリットがある場合もあるけど http://mevius.5ch.net/test/read.cgi/tech/1663235546/729
730: デフォルトの名無しさん (アウアウウー Sacd-nZLu) [sage] 2022/11/10(木) 20:15:59.37 ID:1wmpgP/ea >>726 ちょっと発想が変だよ http://mevius.5ch.net/test/read.cgi/tech/1663235546/730
731: デフォルトの名無しさん (ブーイモ MMad-bOnd) [sage] 2022/11/10(木) 20:18:11.54 ID:TQxJo3Q4M 全てユースケース次第じゃね 13×4のブール配列で持っていたほうが都合がよい場合もあるだろうし http://mevius.5ch.net/test/read.cgi/tech/1663235546/731
732: デフォルトの名無しさん (ワッチョイ 7247-GkOZ) [sage] 2022/11/10(木) 21:05:35.45 ID:tUNuHkwK0 とりあえず作って、必要に応じてリファクタリングしていけばいい http://mevius.5ch.net/test/read.cgi/tech/1663235546/732
733: デフォルトの名無しさん (ワッチョイ b12c-rDMU) [] 2022/11/10(木) 22:35:47.17 ID:SvDTIviz0 カード型のインスタンスを生成するデッキクラスを作りたいやん deck.suffle() hands = deck.draw(5) みたいなさあ あとは各ゲームで処理つくろ http://mevius.5ch.net/test/read.cgi/tech/1663235546/733
734: デフォルトの名無しさん (ワッチョイ 7247-GkOZ) [sage] 2022/11/10(木) 22:41:30.18 ID:tUNuHkwK0 カードのリストでよくね http://mevius.5ch.net/test/read.cgi/tech/1663235546/734
735: 687 (ワッチョイ b11d-rPWN) [sage] 2022/11/10(木) 23:28:06.08 ID:ofaAiG0L0 多くのレスを頂き、ありがたく思います ちょっと自己顕示欲が強い気もしますが、俺のGitHubを公開させて頂くので、 よろしければご覧下さい https://github.com/masa-gh/practice のblackjack_3.pyがそれです これでもクラス使わないで書けるのかな… http://mevius.5ch.net/test/read.cgi/tech/1663235546/735
736: デフォルトの名無しさん (ワッチョイ d201-+3fi) [sage] 2022/11/11(金) 00:15:20.89 ID:ajyQllPs0 力作だね 友人のアドバイスは痛いほどよく分かる クラス云々よりも「ここからメインの処理」以降の各処理を関数にまとめるほうがずっと大事だよ http://mevius.5ch.net/test/read.cgi/tech/1663235546/736
737: デフォルトの名無しさん (ワッチョイ 7247-GkOZ) [sage] 2022/11/11(金) 00:21:32.63 ID:gNt5qX/T0 1関数がでけえ ということを言いたかったんだろう http://mevius.5ch.net/test/read.cgi/tech/1663235546/737
738: デフォルトの名無しさん (ワッチョイ 09f0-Z1Pq) [sage] 2022/11/11(金) 00:23:24.86 ID:Zi2NVkwv0 マサくん http://mevius.5ch.net/test/read.cgi/tech/1663235546/738
739: デフォルトの名無しさん (ワッチョイ 5e10-420S) [] 2022/11/11(金) 00:52:49.95 ID:5ErmYwLs0 何のためにでっかい関数の中にクラス作るのか分からん この設計センスなら友人のアドバイスは正しいな http://mevius.5ch.net/test/read.cgi/tech/1663235546/739
740: デフォルトの名無しさん (アウアウウー Sacd-nZLu) [sage] 2022/11/11(金) 00:55:17.73 ID:n0j9oGtca blackjackで囲むのって意味あんのかね http://mevius.5ch.net/test/read.cgi/tech/1663235546/740
741: 687 (ワッチョイ b11d-rPWN) [sage] 2022/11/11(金) 01:14:49.41 ID:9Wk/PRlY0 レスありがとうございます >>708 クラス使った方が見通し良くなりますよね? スッキリJavaにもそう書いてありました(Pythonの本ではないですが) >>709 複雑にならない方がいいからだそうです >>710 ええ、ですので皆さんの意見をお聞きしたんです >>711 うーん、明らかにプロと思われる方の書き込みもありますし、 信じられるレスはあると思います >>716 ただ彼の主張では、なるべくクラスは使うな、ということでした Javaを独習した経験がある俺からすると、少し疑問符が付くのです http://mevius.5ch.net/test/read.cgi/tech/1663235546/741
742: デフォルトの名無しさん (アウアウウー Sacd-nZLu) [sage] 2022/11/11(金) 01:21:10.00 ID:n0j9oGtca クソクラスをクソと認識できるためにもそれなりの能力が要るからね http://mevius.5ch.net/test/read.cgi/tech/1663235546/742
743: 687 (ワッチョイ b11d-rPWN) [sage] 2022/11/11(金) 01:28:18.01 ID:9Wk/PRlY0 >>724 そうですよね カードのクラス作りました >>726 複数枚のカードを持つCardクラスです ブラックジャックなので、A・J・Q・Kの値は別に決める必要があります >>727 可読性は重視したいです >>736 そう言って頂けると大変ありがたいです やっぱりそこは1つの関数にまとめた方がいいんですね >>737-740 それも友人に、グローバル変数は少なければ少ないほどいい、と言われたのを 受けてのことです http://mevius.5ch.net/test/read.cgi/tech/1663235546/743
744: デフォルトの名無しさん (ワッチョイ 515f-r/4M) [sage] 2022/11/11(金) 01:39:45.03 ID:tK9Svk7P0 >>735 ざっと見た感じ、そりゃ色々言われるわ クラス云々言ってるのに、blackjackっていうデカい関数の中にクラス切ってる時点で吹いたわ あとクラスの役割分担というか、所属してる関数もおかしく感じるわ プレイヤークラスっていう名前なのに、にルール関係のスコア計算、バースト判定とかが入ってるし それこそblackjackのルールを管理をするクラスを作る方が自然だべ あともうし自分で書くとしたら、ルールクラスにis_winっていう関数作って、そこで勝利判定してtrue/falseで返すわ 最後に全パターンで人間/CPUに対して勝利判定かけてるけど、参加プレイヤー/CPUが増えた時の勝利判定の実装とか これベースだと面倒だろうなって思った http://mevius.5ch.net/test/read.cgi/tech/1663235546/744
745: デフォルトの名無しさん (ワッチョイ 515f-r/4M) [sage] 2022/11/11(金) 01:43:33.89 ID:tK9Svk7P0 >>743 >グローバル変数は少なければ少ないほどいい これはまず変数のスコープは狭い方が良い、っていう話だぞ (グローバル変数だとそれこそスコープが広くてどこで書き変わるのかが不明瞭になるから、なるべく使うなって言われてる) バカデカい関数を作るって何の解決にもなってねえwwwwwww http://mevius.5ch.net/test/read.cgi/tech/1663235546/745
746: デフォルトの名無しさん (ワントンキン MM62-76so) [sage] 2022/11/11(金) 05:10:58.43 ID:dIH3TsNBM 使い回さないのに関数化やクラス化する意味ってあるんだろうか http://mevius.5ch.net/test/read.cgi/tech/1663235546/746
747: デフォルトの名無しさん (ワッチョイ 6914-hUUh) [sage] 2022/11/11(金) 06:45:32.82 ID:fLgBQpEC0 is_<動詞> ってたまに見るけどどこかで流行ってるの? http://mevius.5ch.net/test/read.cgi/tech/1663235546/747
748: デフォルトの名無しさん (テテンテンテン MM96-xcLn) [sage] 2022/11/11(金) 07:35:28.77 ID:BuWtLPbxM >>746 この業界には、「一処理は100行に収めるべし」という格言があってな つまり100行以上の処理があったら、100行以内にぶった切って関数にして順次呼ぶべしってことなんだよ 理由は知らん http://mevius.5ch.net/test/read.cgi/tech/1663235546/748
749: デフォルトの名無しさん (アウアウウー Sacd-nZLu) [sage] 2022/11/11(金) 08:51:38.78 ID:QYmFVFm/a まあ分割っていうか処理に名前つけろやって感じだな 抽象的に書こう http://mevius.5ch.net/test/read.cgi/tech/1663235546/749
750: デフォルトの名無しさん (ワッチョイ 7247-GkOZ) [sage] 2022/11/11(金) 09:56:03.89 ID:gNt5qX/T0 でかい関数はあれもやってこれもやってになってるから、 それを機能毎に分割すればいいだけ 1箇所からしか呼ばれない関数がいくつもできるけど、それは問題ない うまく作ってあれば、関数の戻り値を次の関数に渡すだけ、みたいなシンプルな構造に自然となる それぞれの機能が変数をいろいろ共有していて切り分けられなかったら、元々の書き方が悪い http://mevius.5ch.net/test/read.cgi/tech/1663235546/750
751: デフォルトの名無しさん (ワッチョイ 927e-THRA) [sage] 2022/11/11(金) 10:26:37.58 ID:XH1qJoq+0 pythonではクラスをあまり作らないほうがいい、じゃなくて お前にクラスは百年早い、って言いたかったんだろその友人は。 碌に関数も作れないのだからクラスなんて無用の長物。 http://mevius.5ch.net/test/read.cgi/tech/1663235546/751
752: デフォルトの名無しさん (ワッチョイ 9263-zlm6) [sage] 2022/11/11(金) 10:31:34.23 ID:PAETAgDl0 昔、関数ごとに仕様書作成が必要な現場があって、それを嫌って ほとんどの関数が200行を超えるサイズで書かれる様になった http://mevius.5ch.net/test/read.cgi/tech/1663235546/752
753: デフォルトの名無しさん (ワッチョイ 7247-GkOZ) [sage] 2022/11/11(金) 11:00:27.63 ID:gNt5qX/T0 テストができんやろ http://mevius.5ch.net/test/read.cgi/tech/1663235546/753
754: デフォルトの名無しさん (ワントンキン MM62-76so) [sage] 2022/11/11(金) 11:32:04.24 ID:dIH3TsNBM 文書をアウトライン化するような感じで使うのね メンテのときに不要な部分を読み飛ばせるのがメリットか http://mevius.5ch.net/test/read.cgi/tech/1663235546/754
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 248 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.012s