プログラマー超初心者なんだけどテトリス作ったら超絶ネスト地獄になって死んじゃいそう

1: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:16:55.638 ID:WXO2kOZJ0

for()
for()
for()
if()
else()

for()
for()

ってなってんだが
もう殺して
このコード殺してよぉ!!!

2: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:17:26.416 ID:PHMI4iBPa
ゴートゥー文おぬぬめ

3: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:17:31.957 ID:2+C7OFsop
関数化しろ

4: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:19:30.236 ID:WXO2kOZJ0
関数化ってどうすりゃよいの
悩ましいんだ…

19: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:36:48.826 ID:lv+8Htaa0
>>4
ってかオブジェクトなのに関数化とか言ってるようじゃ
根本的に間違ってるな

20: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:37:43.422 ID:WXO2kOZJ0
>>19
でもラムダ式あんじゃん!!!!!

22: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:40:36.073 ID:lv+8Htaa0
>>20
基本ができてない分際で調子乗るな
んで、クラス設計は?

5: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:20:20.335 ID:64hd+yOv0
オブジェクト指向でいこうぜ

6: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:21:28.053 ID:81kgP3s60
ソース見せてみ

9: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:23:47.814 ID:WXO2kOZJ0
>>6
見してアドバイス貰いたいんだけど競技プログラミングの課題だから出せない…
つらいよ…
ちっとも上達しねえんだ…
くるしいよぉ…

7: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:21:30.697 ID:WXO2kOZJ0
どうすりゃいいの…!!!
俺が使ってるのjavaだからオブジェクト指向でかけるんだよ!
ただし俺の頭が追いついてません!!!

8: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:21:43.882 ID:2ZfutnjV0
再帰使え

10: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:24:39.723 ID:Y1Kbzp/Nd
Java Stream API使え

14: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:28:00.309 ID:WXO2kOZJ0
>>10
むじゅくね…?
未だにラムダ式の使い方も理解できねえんだよ…!
でもプログラミングやりたいの…!

11: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:25:08.661 ID:Zn0WN1o5a
テロリストに見えた通報

12: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:27:22.778 ID:5LQxjCBI0
4行でできたテトリスってあったよな15年位前

13: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:27:33.535 ID:Naa37Znl0
クソコードを綺麗にした時の快感を味わえるぞ!やったな!

15: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:33:13.621 ID:WXO2kOZJ0
すごいアホなこと言うんだけど二次元配列ってコレクション使う場合はどうやってやればいいの?
list<フィールドまとめたクラス>
って感じにしなきゃだめ?

16: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:34:44.323 ID:64hd+yOv0
PythonかC++だったら少し知ってるけどJavaかぁ

17: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:36:01.366 ID:lv+8Htaa0
まずどんなクラス設計になってるのかいいたまえ
話はそれからだ

18: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:36:15.782 ID:ZGKwornp0

なんでネストが深くなるのかわからん

4個素材でのパターン定義作って当たり判定してフィールド配列が横一列すべてフラグたってたら消すの繰り返しじゃん

21: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:40:17.497 ID:WXO2kOZJ0
ぜんぜんわからなくて苦しいよ…
誰か助けてよ…!

23: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:43:50.365 ID:jhOyY9oo0
一列揃ってるかチェックする関数を作って
それを上から下まで繰り返す関数を作って
そういうのを落ちてくっついたタイミングとかでメインから呼ぶとか
とりあえず必要な機能を小さめの関数に
テトリス程度にオブジェクト指向とかいらん

24: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:45:01.439 ID:WXO2kOZJ0
クラス設計も何もmainメソッド一本でやってるよ
競技プログラミングのサイトがmainメソッドを内包したクラス一個でなんとかしろって言ってるんだけどstaticってのがよくわかってないせいでmainメソッドからメソッド呼び出したりフィールド呼ぶのに四苦八苦してるよ…
せめてメソッドいっぱい作って可読性上げたいんだけど分かんないんだよぉおおおおお!!!!!

29: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:52:07.965 ID:lv+8Htaa0
>>24
クラス一個とか言うどうしようもない問題を出すサイトがどうしようもない
そんな問題解かないほうがまし
最悪の問題

25: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:45:43.809 ID:WXO2kOZJ0
お手本ほしいよぉ…だれかぁ…

26: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:47:47.513 ID:Y1Kbzp/Nd
何故そのレベルで競技プログラミングなんかしようと思ったのか

27: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:48:48.642 ID:ywv397uH0
それはGUIで作ってるの?
というか言語は?
Java?

28: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:48:49.945 ID:WXO2kOZJ0
だって書かないと忘れちゃうじゃん

30: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:54:16.422 ID:WXO2kOZJ0
でもさでもさ
javaでクラス一個だけでもメソッドいっぱい作って機能小分けにすることできるんでしょ!?
その書き方がわかんねえんだ…

31: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:55:56.677 ID:lv+8Htaa0
>>30
違うサイト行け
お前が今見てるサイトはお話にならない
というか本買って勉強しろ

32: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 00:59:05.239 ID:pRU1xxh5d
メソッドにもstatic付ければ使えるだろ

33: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 01:42:34.257
三ヶ月後にこのコード読んでどう思うかな
って考えながら書けよ

34: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 01:43:49.750 ID:3dlgKBac0
>>33
わかるわけねあだろタコ

35: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 01:45:26.243 ID:m+L2ArMI0

/** 腕立てと腹筋を行うmainメソッド */
public static void main(String[] args) {
for (int i = 0; i < 20; i++) {
System.out.println(“腕立て”);
}

for (int j = 0; j < 50; j++) {
System.out.println(“腹筋”);
}
}

/** 関数化(メソッドの切り出し)するとこうなる */
public static void main(String[] args) {
// 腕立てメソッドで呼び出し
udetate();
// 腹筋メソッドで呼び出し
fukkin();
}

private static void udetate() {
for (int i = 0; i < 20; i++) {
System.out.println(“腕立て”);
}
}

private static void fukkin() {
for (int j = 0; j < 50; j++) {
System.out.println(“腹筋”);
}
}

38: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 01:47:49.442 ID:9Whv4p2O0
>>35
素人丸出し

39: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 01:48:51.640 ID:XJ2mYhXJD
>>38
横からだけど何がいけないんだこれ

40: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 01:52:17.633 ID:WyNEvUEYM
>>39
java業務で扱ったことないけどjavadoc書かんと怒られるとかやない?

48: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 02:21:44.998 ID:m+L2ArMI0

>>40,42 これで良いか>>38が何だったのか良く分からんが

/**
* トレーニングを行う様子と回数を馬鹿みたいに標準出力するメソッド
* @param args コマンドライン引数は使用しない
* @see 尻の穴がかゆい
*/
public static void main(String[] args) {
training(20, “腕立て”);
training(50, “腹筋”);
}

/**
* 引数に渡された回数分、メニューの文字列を出力する
* @param count シコる回数を意味する整数
* @param menu シコれ
*/
private static void training(int count, String menu) {
for (int i = 0; i < count; i++) {
System.out.println(i + “:” +menu);
}
}

41: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 01:54:18.100 ID:m+L2ArMI0
>>38
実際素人だからね
玄人はどうやって書いてんの?

36: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 01:46:20.643 ID:XJ2mYhXJD
テトリスじゃないけどぷよぷよのぷよ消すアルゴリズム説明してくれってDeNAの面接で聞かれたな
ホワイトボードに適当に書いて再帰するんですよで乗り切れたけど

37: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 01:46:45.999 ID:7mbrG9Ka0
2次元配列を理解できているかどうか
話はそこからだろ

42: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 01:56:38.879 ID:pcuKZBcVd
回数を引数にするとか?

43: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 01:57:52.934 ID:D42Y6OIm0
関数化の説明なのに色んなところ変えちゃうと>>1わからないだろうしなぁ

44: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 02:05:55.068 ID:WyNEvUEYM
「フレーム更新」関数にベタ書きするんじゃなくて「ミノ下げる判定」「ミノ動かす判定」「ミノ動かす処理」「ミノ衝突判定」「消す判定」「消す処理」とかそれぞれ関数作って細かくすれば可読性高くてデバッグも楽になるよ

45: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 02:07:50.603 ID:m+L2ArMI0
あと競技プログラミングとか全く知らんのだけど自前クラスとか作っちゃダメなんだっけ?

46: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 02:08:52.096 ID:XJ2mYhXJD
プログラミングコンテストはいかに計算量を減らすかが勝負なのでクラス設計は正直どうでもいいというか出番がない

47: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 02:09:41.606 ID:WyNEvUEYM
速度必要なのにjava使うな

50: 以下、5ちゃんねるからVIPがお送りします 2019/01/28(月) 03:10:45.643 ID:3dlgKBac0
関数電卓から勉強しろ素人

引用元

管理人からひと言

こんなにfor使うことってあるかな・・・・

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

LOOPER/ルーパー [ ブルース・ウィリス ]
価格:1656円(税込、送料無料) (2019/2/11時点)

スポンサーリンク
スポンサーリンク
スポンサーリンク

シェアする

フォローする

スポンサーリンク
スポンサーリンク