2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

18 :以下、?ちゃんねるからVIPがお送りします:2019/01/28(月) 00:36:15.782 ID:ZGKwornp0.net
なんでネストが深くなるのかわからん

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

35 :以下、?ちゃんねるからVIPがお送りします:2019/01/28(月) 01:45:26.243 ID:m+L2ArMI0.net
/** 腕立てと腹筋を行う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("腹筋");
 }
}

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

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

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

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

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

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

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

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

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

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

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

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

48 :以下、?ちゃんねるからVIPがお送りします:2019/01/28(月) 02:21:44.998 ID:m+L2ArMI0.net
>>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);
 }
}

49 :以下、?ちゃんねるからVIPがお送りします:2019/01/28(月) 02:26:48.513 ID:XJ2mYhXJD.net
シコシコはぁはぁ

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

51 :以下、?ちゃんねるからVIPがお送りします:2019/01/28(月) 03:16:54.499 ID:SuCZN2Hj0.net
実際テトリスくらいならクラスひとつで関数生やしまくれば書けるはず
(競技プログラミングの問題はオブジェクト指向じゃなくても書けるようになってる)

総レス数 51
12 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★