🤔 なぜ会社で(チーム開発で)この技法をやるとまずいのか 🤔 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; } .
@Kei N 네, 한국인입니다. 게임을 좋아해서 일본어 공부하다보니 조금은 할 수 있게 된 것 같습니다. 이런 어리숙한 말을 그렇게 평가해주시다니 감사합니다. はい、韓国人です。ゲーム好きで日本語を習ったら少しは出来るようになりました。こんな未熟な言葉をそんなに評価してくださってありがとうございます。:)
🤔 なぜ会社で(チーム開発で)この技法をやるとまずいのか
🤔 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;
}
.
返り値の変数名が汚くて草
古代グルジア語やん
意味不明な英字の羅列が読めてしまうのは何故
import GBAD
自分の環境では普通にコードレビューされるので真似できない・・・
ちょちょいと作ってしまう貴方は神です!
顧客「自分が置いた瞬間に相手に置かれるとぉ、ちょっと早すぎるんだよねぇ。2,3秒後に置いてくれないかなぁ」
for i in 0..9999{}
@@jikantoki フンッ!!!!!!!
冗談だよな…
await new Promise(resolve => setTimeout(resolve, 1000*(Math.round(Math.random())+2))) // async function mousePressed()にして、96行目に追加
良かった…
2:45 うっそだろお前wwwww
テーブルの行の前後に1行ずつ、列の前後に1列ずつ、空固定の行と列を足したテーブルにしておくと、テーブル内を調べて行くループで添え字の判定が不要になります(空の行や列の中味を調べたときに空が理由でループから抜けるから)。ループの判定処理も簡素化されますし、AIの処理が複雑になってテーブルの中味を見る処理が膨大になったときに、処理時間に差が出ます。
納期3分は草
毎回、絶頂できるいいコード書きますね
DLSiteに進出しようと思います
@@heron-no-suugaku 草
昔、excelのvbaでこれを作って遊んだ思い出が浮かんで、その時のスクリプトを見たらやっぱ本家言語最高だなぁーと思っちゃった。
@Kei N いま韓国アイドルが流行ってるらしくて、それで韓国語の人がいるみたいだよ
バカみたいだねw あとネタだったらスマソ
@Kei N 네, 한국인입니다. 게임을 좋아해서 일본어 공부하다보니 조금은 할 수 있게 된 것 같습니다.
이런 어리숙한 말을 그렇게 평가해주시다니 감사합니다.
はい、韓国人です。ゲーム好きで日本語を習ったら少しは出来るようになりました。こんな未熟な言葉をそんなに評価してくださってありがとうございます。:)
@@wimper4591 どんまいやで
あっ、おい、待てぃ!肝心な所(パスの処理)洗い忘れてるゾ
「(江戸っ子)」が入っていない-114514点
直線で全マスを調べたり三角関数で方角決める方式もあるのかと感心しました。なるほどー
私が作った時は(dx,dy)で方角を設定して、再帰探索でひっくり返す枚数と座標を計算したので。
まあ普通に考えたらそれですよね 三角関数のほうが一般的にかけるからこのケースだとコードが小さくて最適だったのかなあと思いながら見てました
会社でやってはいけないっていうのは、分割してチーム開発する際の可読性とかの問題の事だったんですね。
タイトルと概要の説明を動画でちょっとしてほしかったかも。。
勉強ネタとして非常に参考になります!いつもありがとうございます。
しれっとラストパス対応出来てない…?
方向出すために三角関数使う発想すごいです…
方角の概念、三角関数で表せるのこの動画で知った!
めっちゃ良い
「三角関数もあるよ」という一文で、なぜか釣られた自分。
これは完全に趣味用のコードだけど、こんなコード書きたくなる気持ちもよくわかるw
すごい!技が詰まってるかんじしますね
座標値が整数なので三角関数を使うのはちょっと気持ちが悪いなぁ~。自分ならコード量が増えても愚直に(dx, dy)を要素とした8個のリストを書いちゃいます。
今はほぼわからんがいつか必ず理解してやる
2年経ったよ
納期1日増やすから3人で遊べるようにしてほしい()
3人リバーシは草
裏返せないし()
@@nemmu_natto じゃ昨今流行りの量子力学にならって裏にも表にもなり得る第3の状態も
@@nino1991jp 裏でも表でもあるのか(?????)
@@nemmu_natto 置いて観測するまで裏なのか表なのか或いは両方すらあり得るオセロの駒
量子力学なんて堅苦しいものよりシュレディンガーの猫の方分かりやすかったかな
@@nino1991jp なんか22世紀のおもちゃにありそう(???)
【動画見た感想】
ぷももえんぐえげぎぎおんもえちょっちょちゃっさっ
【共有事項】
function gabaanaDaddy(x, y){
if (x == "Oppaigakimochiii" && y == "omankogakimochiii"){
return "gamandekinai!!"
}
}
※ MIT License
穴が緩いからってライセンスまで緩くて草
勉強になります。
タイピングめちゃくちゃ早いですね!!
vimのplugin入ってるからね
サムネに「ポロリもあるよ!!」みたいなノリで「三角関数もあるよ!!」って書くなよww
三角関数(ボロン
草
@@緑川暉昌 ふぅ...
@@n_kura88m ええ…
ポロリと同じくらい一瞬しか登場しないのな
手続き型で書けるのすごい
ちょいちょい語録挟むのほんと草
これで仕事減るかと思ったら分野が
まず違った。
100行で実装はすげー!研修の時Javaで書いたけどもっとあった
今回用いた三角関数についての解説を詳しく聞いてみたい
凄い
Ah... This can be made such easily... T_T
I had spent so much time with headache...
これ相当むずいだろ。
もっと砕いてほしいわ。
こういうの見ると才能だなって思う
オセロって闇雲にたくさん取ってたら負けるゲームだったような…。
だから古典的なって...
この動画だとホントにさくっと作ってるように見えるけど、実際はちょっと時間かかるよね。
ゲームプログラミングの技術の歴史とか解説して欲しいです
勉強サボってたわい、見事に全くわからん
つよすぎいい
はえー、すっごい
これはcanvasで書いてるんですか?
古典的なアルゴリズム!
勝った!
真っ黒にできた!
久しぶりに見たらなんかイントネーション治ってて草
ささっと、いとも簡単にプログラム組めてて天才的ですね・・・(めっちゃ尊敬します!)
と思ったらびっくりするくらいリバーシ弱くて草
動画の最後、勝てました?
顧客はコギャルだったのですか?
最後負けてて草
リバーシをサクッと作ってて驚きました。
知識浅で申し訳ないのですが、これは何という言語に分類されるのでしょうか。
これはJavaScriptと言うやつですね。
教えてくださり、ありがとうございます!
何してるんか分からんww
どーやったらこんな知識つくの?笑
現役(底辺)SEだけど説明が全然わからない。
教科書に出てくるような関数は分かるけど、特有のライブラリとかにあるような関数がわからね。
三角関数、いる?()
このオセロの緑のやつ見た感じ常に表示されてるようですけど、どうやって出すのですか?そもそも初期設定や言語はどうやってするのですか?
うちのチャンネルではp5.jsを使っています。↓の動画で解説してます🐤
ruclips.net/video/rdGKg6VbFBo/видео.html
@@heron-no-suugaku ありがとうございます。検索しても名前が分からなかったキャンバスとかそれだけでも知れて嬉しいです
いいなあ高級言語・・・僕がゲーム作ってた時代はアセンブラしかなかったからなぁ・・・。っていうか三角関数は蛇足なんじゃないかと思うのは僕だけでしょうか?
はえー
おもしれぇ