How to (not) code a Reversi

Поделиться
HTML-код
  • Опубликовано: 31 дек 2024

Комментарии • 98

  • @heron-no-suugaku
    @heron-no-suugaku  3 года назад +179

    🤔 なぜ会社で(チーム開発で)この技法をやるとまずいのか
    🤔 Why I put "(not)" in the title
    チーム開発では、↓のようなクラス(interface)を作ります。
    class Game {
    init() //盤面を初期化するメソッド
    putDisk(x,y) //座標xyにディスクdを置く
    isPlaceable(x,y) //座標xyにディスクが置けるか調べる
    等...
    }
    こうしておくと、他の人、UIを作る人などが格段にコードを書きやすくなるからです。
    // クリックしたとき……
    if (game.isPlaceable(x,y)) {
    // 置ける場所なら置く
    game.putDisk(x,y);
    }else{
    // ダメなら音で知らせる
    ui.playSound("NG",x,y);
    }
    クラスを用意しておかないと、サンプルプログラムのmousePressed関数のように、UI側のコードがわかりづらくなってしまいます。
    ただし、メソッドの中身(実装)は他の人が直接触らないので、多少技巧的になっても問題ありません。
    //なんか読めないけど超エレガントな関数
    Game.isPlaceable(x,y) {
    return pumomoenguegegionmoetyottyottyassa;
    }
    In a team dev, we usually create a class (interface).
    class Game {
    init()
    putDisk(x,y)
    isPlaceable(x,y)
    etc...
    }
    This is because it makes it much easier for other people, such as UI designers, to write code.
    // when the player click the board..
    if (game.isPlaceable(x,y)) {
    game.putDisk(x,y);
    }else{
    ui.playSound("NOPE.wav", x,y);
    }
    If there are no class, the UI code gonna be a mess, like the mousePressed function in the example code.
    However, since the implementation of the methods are not directly touched by other people, it is okay to be a bit technical.
    // an elegant function but nobody can read
    Game.isPlaceable(x,y) {
    return pumomoenguegegionmoetyottyottyassa;
    }
    .

    • @k__i
      @k__i 3 года назад +20

      返り値の変数名が汚くて草

    • @nameaka2936
      @nameaka2936 3 года назад +5

      古代グルジア語やん

    • @いむ-z7o
      @いむ-z7o 3 года назад +10

      意味不明な英字の羅列が読めてしまうのは何故

    • @kkdbsr
      @kkdbsr 3 года назад

      import GBAD

    • @yamatoosafune7124
      @yamatoosafune7124 3 года назад +2

      自分の環境では普通にコードレビューされるので真似できない・・・

  • @岩田勝-z2n
    @岩田勝-z2n 3 года назад +32

    ちょちょいと作ってしまう貴方は神です!

  • @ばらさん-b5d
    @ばらさん-b5d 3 года назад +157

    顧客「自分が置いた瞬間に相手に置かれるとぉ、ちょっと早すぎるんだよねぇ。2,3秒後に置いてくれないかなぁ」

    • @jikantoki
      @jikantoki 3 года назад +26

      for i in 0..9999{}

    • @panzerkampfwagenvitigeraus2364
      @panzerkampfwagenvitigeraus2364 3 года назад +8

      @@jikantoki フンッ!!!!!!!

    • @AA-pc7us
      @AA-pc7us 3 года назад +6

      冗談だよな…

    • @gmaiI.com.
      @gmaiI.com. 3 года назад +7

      await new Promise(resolve => setTimeout(resolve, 1000*(Math.round(Math.random())+2))) // async function mousePressed()にして、96行目に追加

    • @AA-pc7us
      @AA-pc7us 3 года назад +1

      良かった…

  • @odabanga
    @odabanga 3 года назад +48

    2:45 うっそだろお前wwwww

  • @kjsaka
    @kjsaka 3 года назад +16

    テーブルの行の前後に1行ずつ、列の前後に1列ずつ、空固定の行と列を足したテーブルにしておくと、テーブル内を調べて行くループで添え字の判定が不要になります(空の行や列の中味を調べたときに空が理由でループから抜けるから)。ループの判定処理も簡素化されますし、AIの処理が複雑になってテーブルの中味を見る処理が膨大になったときに、処理時間に差が出ます。

  • @cat_the_vlover
    @cat_the_vlover 3 года назад +63

    納期3分は草

  • @織田豊-b3z
    @織田豊-b3z 3 года назад +34

    毎回、絶頂できるいいコード書きますね

  • @Diagreen86
    @Diagreen86 3 года назад +53

    昔、excelのvbaでこれを作って遊んだ思い出が浮かんで、その時のスクリプトを見たらやっぱ本家言語最高だなぁーと思っちゃった。

    • @wimper4591
      @wimper4591 3 года назад +4

      @Kei N いま韓国アイドルが流行ってるらしくて、それで韓国語の人がいるみたいだよ
      バカみたいだねw あとネタだったらスマソ

    • @Diagreen86
      @Diagreen86 3 года назад +34

      @Kei N 네, 한국인입니다. 게임을 좋아해서 일본어 공부하다보니 조금은 할 수 있게 된 것 같습니다.
      이런 어리숙한 말을 그렇게 평가해주시다니 감사합니다.
      はい、韓国人です。ゲーム好きで日本語を習ったら少しは出来るようになりました。こんな未熟な言葉をそんなに評価してくださってありがとうございます。:)

    • @storks2838
      @storks2838 3 года назад +11

      @@wimper4591 どんまいやで

  • @volatilerye
    @volatilerye 3 года назад +32

    あっ、おい、待てぃ!肝心な所(パスの処理)洗い忘れてるゾ

    • @himashin3451
      @himashin3451 3 года назад +3

      「(江戸っ子)」が入っていない-114514点

  • @くりーむ-u3k
    @くりーむ-u3k 3 года назад +70

    直線で全マスを調べたり三角関数で方角決める方式もあるのかと感心しました。なるほどー
    私が作った時は(dx,dy)で方角を設定して、再帰探索でひっくり返す枚数と座標を計算したので。

    • @3o1415926535
      @3o1415926535 3 года назад +9

      まあ普通に考えたらそれですよね 三角関数のほうが一般的にかけるからこのケースだとコードが小さくて最適だったのかなあと思いながら見てました

  • @nekoretu
    @nekoretu 3 года назад +14

    会社でやってはいけないっていうのは、分割してチーム開発する際の可読性とかの問題の事だったんですね。
    タイトルと概要の説明を動画でちょっとしてほしかったかも。。

  • @ryoichinose-y9z
    @ryoichinose-y9z 3 года назад +19

    勉強ネタとして非常に参考になります!いつもありがとうございます。

  • @CapGame_
    @CapGame_ 3 года назад +17

    しれっとラストパス対応出来てない…?
    方向出すために三角関数使う発想すごいです…

  • @zza7093
    @zza7093 3 года назад +11

    方角の概念、三角関数で表せるのこの動画で知った!
    めっちゃ良い

  • @北条練
    @北条練 3 года назад +8

    「三角関数もあるよ」という一文で、なぜか釣られた自分。

  • @bake3209
    @bake3209 3 года назад +3

    これは完全に趣味用のコードだけど、こんなコード書きたくなる気持ちもよくわかるw

  • @tamago9760
    @tamago9760 3 года назад +4

    すごい!技が詰まってるかんじしますね

  • @youtsube09
    @youtsube09 3 года назад +30

    座標値が整数なので三角関数を使うのはちょっと気持ちが悪いなぁ~。自分ならコード量が増えても愚直に(dx, dy)を要素とした8個のリストを書いちゃいます。

  • @siu_mai
    @siu_mai 3 года назад +13

    今はほぼわからんがいつか必ず理解してやる

    • @DrEpico
      @DrEpico Год назад +3

      2年経ったよ

  • @nino1991jp
    @nino1991jp 3 года назад +30

    納期1日増やすから3人で遊べるようにしてほしい()

    • @nemmu_natto
      @nemmu_natto 3 года назад +6

      3人リバーシは草
      裏返せないし()

    • @nino1991jp
      @nino1991jp 3 года назад +12

      @@nemmu_natto じゃ昨今流行りの量子力学にならって裏にも表にもなり得る第3の状態も

    • @nemmu_natto
      @nemmu_natto 3 года назад +1

      @@nino1991jp 裏でも表でもあるのか(?????)

    • @nino1991jp
      @nino1991jp 3 года назад +4

      @@nemmu_natto 置いて観測するまで裏なのか表なのか或いは両方すらあり得るオセロの駒
      量子力学なんて堅苦しいものよりシュレディンガーの猫の方分かりやすかったかな

    • @nemmu_natto
      @nemmu_natto 3 года назад +2

      @@nino1991jp なんか22世紀のおもちゃにありそう(???)

  • @kurokuro319
    @kurokuro319 3 года назад +7

    【動画見た感想】
    ぷももえんぐえげぎぎおんもえちょっちょちゃっさっ
    【共有事項】
    function gabaanaDaddy(x, y){
    if (x == "Oppaigakimochiii" && y == "omankogakimochiii"){
    return "gamandekinai!!"
    }
    }
    ※ MIT License

    • @heron-no-suugaku
      @heron-no-suugaku  3 года назад +5

      穴が緩いからってライセンスまで緩くて草

  • @user-lg7lr5up8x
    @user-lg7lr5up8x Год назад

    勉強になります。

  • @swiminfish
    @swiminfish 3 года назад +9

    タイピングめちゃくちゃ早いですね!!

    • @cojitube
      @cojitube 3 года назад +5

      vimのplugin入ってるからね

  • @teknalb
    @teknalb 3 года назад +131

    サムネに「ポロリもあるよ!!」みたいなノリで「三角関数もあるよ!!」って書くなよww

    • @緑川暉昌
      @緑川暉昌 3 года назад +26

      三角関数(ボロン

    • @早打
      @早打 3 года назад

    • @n_kura88m
      @n_kura88m 3 года назад +15

      @@緑川暉昌 ふぅ...

    • @午後の紅茶-r4z
      @午後の紅茶-r4z 3 года назад +2

      @@n_kura88m ええ…

    • @なおき-d3o
      @なおき-d3o 3 года назад +1

      ポロリと同じくらい一瞬しか登場しないのな

  • @paseri9697
    @paseri9697 6 месяцев назад

    手続き型で書けるのすごい

  • @yamaguchi11057
    @yamaguchi11057 3 года назад +2

    ちょいちょい語録挟むのほんと草

  • @ふくまる-k5p
    @ふくまる-k5p 3 года назад +2

    これで仕事減るかと思ったら分野が
    まず違った。

  • @まさやん-q4e
    @まさやん-q4e 3 года назад +6

    100行で実装はすげー!研修の時Javaで書いたけどもっとあった

  • @aa-gl9mq
    @aa-gl9mq 3 года назад +6

    今回用いた三角関数についての解説を詳しく聞いてみたい

  • @bobfredrick4451
    @bobfredrick4451 3 года назад +1

    凄い

  • @keepbryan6697
    @keepbryan6697 3 года назад +24

    Ah... This can be made such easily... T_T
    I had spent so much time with headache...

  • @jojo-fz9cb
    @jojo-fz9cb 3 года назад

    これ相当むずいだろ。
    もっと砕いてほしいわ。

  • @YM-bv1ll
    @YM-bv1ll 3 года назад

    こういうの見ると才能だなって思う

  • @うめはち橙
    @うめはち橙 3 года назад +2

    オセロって闇雲にたくさん取ってたら負けるゲームだったような…。

    • @kaj694
      @kaj694 2 года назад

      だから古典的なって...

  • @mei9316
    @mei9316 3 года назад

    この動画だとホントにさくっと作ってるように見えるけど、実際はちょっと時間かかるよね。

  • @hiroyuki5668
    @hiroyuki5668 3 года назад +2

    ゲームプログラミングの技術の歴史とか解説して欲しいです

  • @AOI-v3q
    @AOI-v3q 3 года назад +1

    勉強サボってたわい、見事に全くわからん

  • @物理教室
    @物理教室 3 года назад

    つよすぎいい

  • @リンケジグ
    @リンケジグ 3 года назад

    はえー、すっごい

  • @user-ol4qh1fj3r
    @user-ol4qh1fj3r 10 месяцев назад

    これはcanvasで書いてるんですか?

  • @yoowhene2710
    @yoowhene2710 3 года назад +7

    古典的なアルゴリズム!

  • @TheStreetBeam
    @TheStreetBeam 2 года назад +1

    勝った!
    真っ黒にできた!

  • @TOU1186
    @TOU1186 3 года назад

    久しぶりに見たらなんかイントネーション治ってて草

  • @すずりん-u1g
    @すずりん-u1g 3 года назад

    ささっと、いとも簡単にプログラム組めてて天才的ですね・・・(めっちゃ尊敬します!)
    と思ったらびっくりするくらいリバーシ弱くて草

  • @ポンコツ屋末代
    @ポンコツ屋末代 3 года назад

    動画の最後、勝てました?

  • @djcoziness8487
    @djcoziness8487 3 года назад

    顧客はコギャルだったのですか?

  • @lien2353
    @lien2353 3 года назад +1

    最後負けてて草

  • @はんなり-v4v
    @はんなり-v4v 3 года назад +9

    リバーシをサクッと作ってて驚きました。
    知識浅で申し訳ないのですが、これは何という言語に分類されるのでしょうか。

    • @ryuuuu4724
      @ryuuuu4724 3 года назад +10

      これはJavaScriptと言うやつですね。

    • @はんなり-v4v
      @はんなり-v4v 3 года назад +1

      教えてくださり、ありがとうございます!

  • @yuya5721
    @yuya5721 3 года назад

    何してるんか分からんww
    どーやったらこんな知識つくの?笑

  • @channel-ml5hq
    @channel-ml5hq 3 года назад +2

    現役(底辺)SEだけど説明が全然わからない。
    教科書に出てくるような関数は分かるけど、特有のライブラリとかにあるような関数がわからね。

  • @ねこ-o9o2o
    @ねこ-o9o2o 3 года назад +5

    三角関数、いる?()

  • @ごろうまる-p2r
    @ごろうまる-p2r 3 года назад +2

    このオセロの緑のやつ見た感じ常に表示されてるようですけど、どうやって出すのですか?そもそも初期設定や言語はどうやってするのですか?

    • @heron-no-suugaku
      @heron-no-suugaku  3 года назад +1

      うちのチャンネルではp5.jsを使っています。↓の動画で解説してます🐤
      ruclips.net/video/rdGKg6VbFBo/видео.html

    • @ごろうまる-p2r
      @ごろうまる-p2r 3 года назад +1

      @@heron-no-suugaku ありがとうございます。検索しても名前が分からなかったキャンバスとかそれだけでも知れて嬉しいです

  • @iromizu641
    @iromizu641 3 года назад

    いいなあ高級言語・・・僕がゲーム作ってた時代はアセンブラしかなかったからなぁ・・・。っていうか三角関数は蛇足なんじゃないかと思うのは僕だけでしょうか?

  • @tadashifujinaga
    @tadashifujinaga 3 года назад

    はえー

  • @user-ft4lt4rt9k
    @user-ft4lt4rt9k 4 месяца назад

    おもしれぇ