ねねっちと一緒にプログラムを勉強するスレ第2話 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/03/18(土) 13:03:05.05ID:KGlkA67c
ぬるぽって何?
2017/03/18(土) 23:36:20.62ID:Z1poHEqC
今日も一日ガッんばるぞい
2017/03/19(日) 00:18:40.43ID:cSt3/uVu
>>1
れーがい。
4デフォルトの名無しさん
垢版 |
2017/03/19(日) 00:29:34.64ID:dpFhURxm
2ch誕生時ぬるぽ誕生時はねねっちの誕生前史…でも無いか…?
2017/03/19(日) 07:19:32.95ID:lvnI99G6
前スレ

ねねっちと一緒にプログラムを勉強するスレ [無断転載禁止]??2ch.net
http://echo.2ch.net/test/read.cgi/tech/1485415033/
2017/03/19(日) 13:14:33.69ID:3j9rxESx
馬鹿が馬鹿に向けてコーチしてるから、いつまでたっても終わらんな

馬鹿は馬鹿の気持ちがわかるから教師に向いてるとかいうけど
まともな言語使役能力がない馬鹿に教師が務まるわけねえだろバーカ
自分の馬鹿さ加減を正当化する以前に相手の立場、聞き手の立場になってライティングする技術を学べよバーカ
2017/03/19(日) 13:28:09.26ID:GVCm3UtV
馬鹿が大好きな馬鹿
2017/03/19(日) 13:35:24.13ID:MQWsDRoG
>>6
コーチ任せた
2017/03/19(日) 15:26:53.79ID:DJjYEA61
>>6
分からないことがあるから聞いてもいいかな?
2017/03/19(日) 16:55:32.81ID:MC3Ph5Rd
とりあえずどんなに小規模でもいいからアプリケーション一つ作ってみれば何かしら見えるようになる気はするけど

結局プログラミングって技術だから必要になってから学ぶ事柄の方が身につくし
どんなに小規模でもソフトウェア一本作るなら要求されることは多い
2017/03/19(日) 18:32:39.25ID:cSt3/uVu
ポインタ、クラスという2つの大きなカベをぬーぶくんは乗り越えることが出来るかな?
特にポインタはかなり難しい。
2017/03/19(日) 19:42:24.52ID:w6cUNJco
言語1つ習得するのにいつまで掛かっとんじゃい!
2017/03/19(日) 20:15:51.06ID:sUTtusgG
逆に言語を完璧にマスターしようとしたら相当の時間は必要だと思うけど

例えばJavaに限ってもEffecive Javaの内容を実践できるようになるレベルまでたどり着くだけでも相当な時間がいると思う
2017/03/19(日) 21:07:09.25ID:3j9rxESx
まずは五目並べとかを目標にするべきだとおもうの
五目ならべとかくそつまんねえけど、最低限のゲームループははいってるわけでね
おれも大学時代Cでかかされたけど、あれはマジ難しい
インターフェース作るので精一杯で、CPUのAIはランダムに石をおくぐらいしかできんかったわ
2017/03/19(日) 23:12:11.49ID:9swj1Ik4
>>11
お前は何がどこまでできるようになったんだ?
全然プログラミングやってないようだが
2017/03/20(月) 00:22:53.87ID:5XocBJvS
>>15
スッキリわかるJavaの入門編が終わったので、実践編に入ったのですが、難しくてつっかえつっかえです。
例えばオブジェクトクラスに備わっているメソッドのオーバーライドとかで苦戦してます。
あれ必ずやるんですか?しんどいです…。
2017/03/20(月) 01:31:41.05ID:GbEM94zj
まずjavaは難しいからね
継承を中心としたライブラリがあるかと思えば、インターフェースを中心としたライブラリもある

継承を選択すると、データ型に階層構造ができるが、たいてい継承というのは、ある特定の見方で行う分類学みたいなもんだから、この分類に失敗した時点で設計が汚くなる

例えば鳥はflyメソッドを実装すべきだが、飛べない鳥はどうする、swimメソッドを持つ鳥持たない鳥があると思えば哺乳類でも歩けないクジラみたいなのもいる

クラスを動物で例えるのはよくないがイレギュラーを綺麗に処理できるような美しい分類などほぼほぼ存在しない

君はおそらく継承を使った設計などしないし、基本的にすべきじゃない、でも継承を使わないといけないライブラリもあるからね、そういうときはどうするんだろ、
真面目に一つずつオーバーライド実装するかproxyパターンとか使うのかね
結局動的言語のほうが楽なんだよそういうのはJavaだけ勉強してもわからないことだ、もしJavaだけで例えばリフレクションの概念を正確に理解できたとしたらたいしたもんだ、λ式も同じくね
2017/03/20(月) 08:01:55.59ID:8oBPBpt5
>>16
>あれ必ずやるんですか?しんどいです…。
書籍に必ずやりますって買いてあったか?
おまえプログラムできても、プログラマに向いてないからやめたほうがいいよ
周りが迷惑するわ
2017/03/20(月) 16:56:55.64ID:GbEM94zj
静的でもっさいオブジェクト指向言語ってのはそうやって、やれインターフェースがどうだの、やれ継承がどうだのどうでもいいことにいちいち頭を悩ます必要があるからな

正直オブジェクト指向の基本理念は大方失敗してるからそこらへんの技術や思想は無視した方がいい

あれがめんどいと思うなら、動的言語をおすすめする、正直個人でのプログラムにおいてオブジェクト指向はそんなに役に立たない

カプセル化がどうだのいう輩は、ほとんどの言語のライブラリが、オブジェクト指向ライブラリよりもはるかに高いレベルでカプセル化を実現していることに気付かないんだよ
2017/03/20(月) 20:07:41.05ID:ivsP1GF2
言語ひとつ覚えるのにいつまでかかっとんじゃい…うん(´・ω・`)

何かひとつアプリケーションを作れとのことなんで
五目並べはちょっとハードル高いけど
簡単なインベーダーを作ってみようと思う
でも画像をどうやって作ろうか悩む
2017/03/21(火) 00:09:43.10ID:LsnLNCD2
>>17
横だけど、それHead First のデザインパターンの序章である奴だよね。
飛べない鳥とか振る舞いのインターフェースと実装をすれば対応出来る奴じゃん。
オブジェクト指向の基本理念は失敗とかディスってる様だけど、オブジェクト指向を理解出来てない馬鹿がオブジェクト指向を語るなよ。
2017/03/21(火) 00:18:59.12ID:RJ2XVIqX
じゃあその通りに実装すればいいと思うよ

実際飛べない鳥のサンプルコード書いてみ
それがオブジェクト指向のメリットなんだから、喜んで書けるよな
2017/03/21(火) 07:15:17.71ID:LsnLNCD2
>>22
以下になるけど、Strategyで実装すれば書けるだろ。

package test;
class MiniDuckSimulator {
public static void main(String[] args) {
Duck model = new ModelDuck();
model.performFly();
}
}
class ModelDuck extends Duck {
public ModelDuck() {
flyBehavior = new FlyNoWay();
}
}
abstract class Duck {
FlyBehavior flyBehavior;
public Duck() {
}
public void performFly() {
flyBehavior.fly();
}
}
24デフォルトの名無しさん
垢版 |
2017/03/21(火) 07:16:06.90ID:LsnLNCD2
書き込み制限が出た為、分割。

interface FlyBehavior {
public void fly();
}
class FlyNoWay implements FlyBehavior {
public void fly() {
System.out.println("I can't fly");
}
}
class FlyWithWings implements FlyBehavior {
public void fly() {
System.out.println("I'm flying!!");
}
}
2017/03/21(火) 23:08:09.09ID:RJ2XVIqX
え?このプログラムがオブジェクト指向なの?
俺にはこの設計が理解できないなあ

例えば飛べない鳥duckはflyメソッドを持ってはいけないという前提でどうクラス構成するかって話なんだけど、
飛べない鳥duckがそもそもflyを持っていいという設計思想を踏襲するなら、素直にflyメソッドをもつabstract birdクラスまたはflyableインタフェースをDuckは継承または実装し、flyをoverrideあるいはimplementにすればいいと思うんだけど

ストラテジーパターンと言い張ってるけどストラテジーパターンではないよね、それはブリッジパターンだよ
素直にFlyableインタフェースを使ってfly可能なものに対してはflyableインタフェースを素直に実装するのがストラテジーパターンでしょ、間にコンポジションは挟まないよ

という無駄な分類学とデザパタ議論が栄えるだけなのがオブジェクト指向
ここまで一切どのようにエレガントに鳥を飛ばせるかなんて議論なかったでしょ

こういう複雑なだけでくだらない議論に巻き込まれないためにも、動的言語及び関数型言語を勉強する価値がある
2017/03/21(火) 23:31:22.93ID:+RCV7fhe
正しい設計にこだわってすべてが崩壊するよい例だね。
バカは完璧を求めてはいけない。
2017/03/22(水) 00:08:54.02ID:Q7/mY9A+
>>25
ああ、Oreillyの初心者向けの本の序盤に書いてあるレベルだけど、
理解出来ないの?

flyをそのまま実装するとか拡張性が低い実装してんね。
飛べない鳥を具象クラスに追加したりとか
飛べる鳥が骨折して飛べなくなった場合とか対応出来ないだろ。

Strategyってアルゴリズム部分を明確に定義してカプセル化し、
変更や交換がクライアントと独立して行う事が出来るデザパタだけど分からないかな?

bridgeの意味も全然違うし、interfaceから無造作に分類していくと、
実装クラスの数がキリがないから特徴を分離して実装クラスの数を抑えるデザパタだろうが。

てかこの程度のGoFの簡単なデザパタで複雑とかねーわ。
ドメイン駆動設計とか理解出来なさそうだし、
複雑な業務をシステムに落とし込むことは出来なさそうだな。
オブジェクト指向が駄目なんじゃなくて
お前が馬鹿で使いこなしてないだけだから、
オブジェクト指向の基本理念は大方失敗とかほざいてんじゃねーよ。
2017/03/22(水) 00:40:13.35ID:gvAZwZV8
俺は上のコードのやりたいことは概ね理解できたけど、初学者がこれをみて何の黒魔術なんだと思っても何の不思議でもない
たかが飛べない鳥を実装するのに、flybehavior、flywithwings,flynowayというクラス、インタフェースが必要になるとは誰も思っちゃいなかっただろう

実際俺自身これはストラテジーパターンで実装すべき、そしてduckはflyableインタフェースを実装しないべき、だって飛べないんだから、と思っている
何を思ってブリッジパターンにしたのかはそれこそ誰にも解読不能である

僕らはプログラマであって、分類学者じゃない
オブジェクト指向でもてはやされる特徴のうち唯一使えるのはポリモーフィズムだが、実はポリモーフィズムもそんなに役に立たない
ポリモーフィズムが効果的に機能するほどデータ型を作る必要がでた時点で根本的に設計を誤っているからだ

骨折した鳥がどうとか言ってるけど、
骨折した鳥を表現したいなら、鳥クラスのなかにbool型フィールドのisfracturedを追加して内部状態に基づいてflyを切り替えればいい
それがクラスを定義する意味であり、そうしたくないならクラスを宣言する必要がないんだよ

君は間接参照のコストがわかっていないし、gofのパターンもわかってないよ、ちゃんとUML見てくればわかるとおり、ストラテジーパターンはコンポジションを挟まない、ブリッジは挟む
君は変化に対応することに躍起になってるが、それこそ動的言語でサクッとかいたほうが済む話なわけだ、Javaでやることじゃない

クラス設計を過剰に重視する奴は、基本データ構造、特に構造体と辞書型配列とクラスの区別がついていない
29デフォルトの名無しさん
垢版 |
2017/03/22(水) 01:13:13.41ID:gvAZwZV8
たぶんこの問題ならこんな感じのモデルをまず書くんじゃないだろうか。
Javaは久しく書いてないんで、コンパイル通らなかったらごめんな
static class FlyFunction
{static public void fly(bool isFlyable)
if(isFlyable){System.out.println ("I can fly.");}
else {System.out.println ("I cannot fly.");}}
interface Flyable {public void fly();}
interface mayLostWing {public void lostWing();}
//個人的にDuckはFlyableをimplすべきではないが、
public class Duck implement Flyable{
private bool _isFlyable = false;
public void fly(){FlyFunction.fly(_isFlyable);}
}
public class FlyableBird implement Flyable ,mayLostWing
{
private bool _isFlyable = true;
public void fly(){FlyFunction.fly(_isFlyable);}}
public void lostwing(){_isFlyable = false;}}
//curewingなどお好きなメソッドを追加しようね。
}
クラスを使うなら内部フィールドを使わないとクラス使ってる意味ないから。
クラスを使いつつ実際には内部フィールドを参照しないなら、
それはクラスを使いつつも内部状態に依存したくないって気持ちを表している。
それはインスタンスクラスじゃなくてstaticなメソッドクラス、つまり関数ってことなんだよ
これを理解していない限り、無駄に間接参照してパフォーマンスを悪化させるコードの出来上がりだろう。
そしてこれならおそらく誰でも理解できるだろう。

この実装でも不満だけどな。
例えば、飛べない鳥がたくさん出てきたときにどう実装するの?
penguin?chicken?そのたびにクラスを書くのかい?
僕なら辞書配列を使うけどクラスはなんの抽象化の手助けもしてくれないね
penguinクラスとか定義するたびに、flyメソッドを実装したり、lostwingメソッドを実装するのを見て草生えるやろそんなの
2017/03/22(水) 02:32:31.56ID:JXaIwOpQ
>>ぬーぶくん
どうだい?素晴らしいだろう。
Javaをやってみようとは思わんかね?
2017/03/22(水) 03:24:31.66ID:DZdLj/0d
>>30
気持ち悪
だからやんねーっての

どこを見てJavaをやる気になるんだよ
C++でも表現できるわ
3230
垢版 |
2017/03/22(水) 12:14:36.54ID:JXaIwOpQ
>>31
確かに自分でも書いてて気持ち悪い文章だなとは思った。
ちょっとふざけたくなったんです。すんません。
2017/03/22(水) 12:56:40.89ID:Uj/VLma9
ふざけてる場合か!
早く仕事しろ!
2017/03/22(水) 13:03:03.41ID:HAsQj55b
学校早く終わったお

>>30
うーんJavaとかはAndroidアプリ作るには最適だけど
自分はPCのゲーム作りたいからいいかな。
コードの形とか実行速度とかライブラリとか、
どれをとってもあんまりメリットを感じられない。
35デフォルトの名無しさん
垢版 |
2017/03/22(水) 13:37:46.29ID:nJg9yiEm
は?
36デフォルトの名無しさん
垢版 |
2017/03/22(水) 15:16:46.85ID:CS3xBlnx
ねねっちでもC++できるというのにお前らときたら
2017/03/22(水) 15:48:00.79ID:dsEiUABL
>>30
何で他人のコードであたかも自分が書いたかのように威張ってんの?
まず自分がコード書くのが先だろ
38デフォルトの名無しさん
垢版 |
2017/03/22(水) 16:29:42.06ID:R1u9KQvE
>>37
うるせえハゲ
テメェは一生、ゴミコード書き続けてろ
2017/03/22(水) 18:42:35.46ID:Uj/VLma9
34歳最低だな
こいつは一生このままで終わるな
2017/03/22(水) 19:22:50.60ID:JXaIwOpQ
>>32で謝ってるのに、最低とまで言われなきゃいけないのはおかしくない?
まあプログラマー板で言われ慣れてるけどさ。
2017/03/22(水) 19:36:24.52ID:dsEiUABL
>>40
お前馬鹿だろ
2017/03/22(水) 19:53:31.39ID:HAsQj55b
>>40
平謝りしたら全部チャラってどういう
人間ってそういうものじゃないと思うの
2017/03/22(水) 20:06:22.73ID:HAsQj55b
画像の準備終わったからプログラミングに手つけるよ
けど敵の発生と当たり判定どうしよう
2017/03/22(水) 20:54:28.15ID:QtBhfvr1
>>43
敵の発生
https://www.google.co.jp/search?q=%E6%95%B5%E3%81%AE%E7%99%BA%E7%94%9F

当たり判定
https://www.google.co.jp/search?q=%E5%BD%93%E3%81%9F%E3%82%8A%E5%88%A4%E5%AE%9A
2017/03/22(水) 21:00:05.00ID:HAsQj55b
>>44
ggrksって言いたいんか
粘着せんでええんやで
2017/03/22(水) 21:07:04.25ID:J/UeQ48D
敵の発生は、乱数使えばよか。もちろん、敵は複数だから配列とforループを使うように。
当たり判定は、キャラを長方形と見なして、各成分ごとに不等式を使えばよかよ。
2017/03/22(水) 21:13:08.39ID:sbD4JH/G
ぬーぶっちと片山っちやないか
ねねっちをだせ
2017/03/22(水) 21:14:59.71ID:J/UeQ48D
// 15%の確率で。。。
if (std::rand() % 100 < 15)
{
敵の個数を増やす
}
2017/03/22(水) 21:29:14.74ID:J/UeQ48D
自キャラの左上座標を(x, y)とし、自キャラのサイズを(cx, cy)とする。
ある敵キャラの左上座標を(ex, ey)とし、敵キャラのサイズを(dx, dy)とする。
すると自キャラの長方形は(x, y)〜(x+cx, y+cy)となり、敵キャラの長方形は(ex, ey)〜(ex+dx, ey+dy)となる。ここまでわかるか?
2017/03/22(水) 21:38:40.88ID:J/UeQ48D
x成分とy成分に分けて考える。
まず、x成分。x〜x+cxとex〜ex+dxの重なりを判定する問題に帰結する。
xとexの相対的な位置関係を考えると、x<=ex+dx && ex<=x+cxとなる。
2017/03/22(水) 21:40:42.47ID:J/UeQ48D
次にy成分。y〜y+cyとey〜ey+dyの重なりを判定する問題に帰結する。
yとeyの相対的な位置関係を考えると、y<=ey+dy && ey<=y+cyとなる。
2017/03/22(水) 21:43:13.52ID:J/UeQ48D
よって、長方形どうしが重なる条件は、x<=ex+dx && ex<=x+cx && y<=ey+dy && ey<=y+cyとなる。
2017/03/22(水) 21:50:54.32ID:J/UeQ48D
当たり判定で当たりと判定したら、何かのアクションが実行される。
弾が敵キャラに当たれば、敵キャラが消える。
敵キャラと自キャラが当たれば、自キャラがやられ、ライフが減る。ライフがゼロならゲームオーバー。ライフが残っていればある地点までゲームがやり直しになる。
2017/03/22(水) 21:54:52.47ID:J/UeQ48D
キャラが丸いキャラなら、キャラを円形と見なした方が当たり判定が自然になる。
2つの円の当たり判定は、2つの円の中心の間の距離で判定できる。
2017/03/22(水) 21:59:04.74ID:J/UeQ48D
P1(x1, y1), P2(x2, y2)の二点の距離は、std::sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1))で求められる。
56デフォルトの名無しさん
垢版 |
2017/03/22(水) 22:11:08.75ID:nJg9yiEm
これもうガイジだろ
板ごと落とせ
2017/03/22(水) 22:12:30.45ID:J/UeQ48D
初期化(自キャラを配置するなど)。
while (メインループ)
{
背景表示。
キャラ表示。
自キャラと敵キャラの当たり判定。
弾と自キャラの当たり判定。
弾と敵キャラの当たり判定。
自キャラを動かす。
敵キャラを動かす。
弾を動かす。
}
2017/03/22(水) 22:19:10.18ID:J/UeQ48D
初期化(自キャラを配置するなど)。
while (メインループ)
{
switch (ゲームモード)
{
case スタート画面モード:
スタート画面描画。
入力待ち。
break;
case ゲームオーバーモード:
ゲームオーバー画面描画。
時間待ち。
break;
case プレイ中モード:
背景表示。
キャラ表示。
自キャラと敵キャラの当たり判定。
弾と自キャラの当たり判定。
弾と敵キャラの当たり判定。
自キャラを動かす。
敵キャラを動かす。
弾を動かす。
}
}
2017/03/22(水) 22:20:38.30ID:J/UeQ48D
関数を使わないとゲームモードを追加する辺りでこのように相当複雑になってしまう。
2017/03/22(水) 22:35:21.55ID:J/UeQ48D
プログラミングは、プログラムの動作を確認しながら、少しずつ大きくするのが基本。
2017/03/25(土) 09:12:58.20ID:8LYy4yOL
>>34
最後に「関数の使い方は未だよく分からないけど」を付けるともっと笑いが取れると思う。
2017/03/25(土) 09:18:14.18ID:FPIYQgcd
超初心者の質問なんだけど

画像保存フォルダの画像Aを開くとテキストAを出す
画像Bを開いたらテキストBを出す
(Win7や10のデスクトップ上の作業時)

スレチならどのスレッドかな?
2017/03/25(土) 09:58:57.14ID:ra7V2/PG
>>62
質問の意図がわからないので誘導も出来ない
2017/03/25(土) 10:08:47.47ID:FPIYQgcd
>>63
Win10で(特に特定のプログラムやソフトは使っていない状態で)画像出すと
ただ表示さるる、その時に注訳の書いたテキストを出したい

多分コマンドで可能だと思うのだが
スレ検索した所Winコマンド系が見当たらなくて
フリーソフト系で表示させる関連付させるとかだとここじゃないし
2017/03/25(土) 10:49:56.97ID:vdXeyx6o
多分コマンドでは不可能に見えるけどこの板なら
http://echo.2ch.net/test/read.cgi/tech/1489207631/

Windows板は見てみた?
2017/03/25(土) 10:50:24.71ID:p2uTDsGU
>>61
うーんJavaとかはAndroidアプリ作るには最適だけど
自分はPCのゲーム作りたいからいいかな。
コードの形とか実行速度とかライブラリとか、
どれをとってもあんまりメリットを感じられない。
関数の使い方は未だによく分からないけど
2017/03/25(土) 10:51:32.51ID:FPIYQgcd
>>65
そっち見てみます
検索はプログラム板のみでした
2017/03/25(土) 11:25:09.53ID:ra7V2/PG
何がしたいのかやっぱりわからないけどまあいいか
画像の注釈って画像の中に埋め込まれてるコメントとかかな?
2017/03/25(土) 11:31:25.23ID:FPIYQgcd
やってる人居ないのか?
何百とある資料画像出した時
どこで撮ったとか、フリー素材なのかとか
細かい情報がテキストやメモ帳で画像単体で表示と一緒に出れば楽

そこそこやってる人や似たようなことやってる人居ると思ってたよ
70デフォルトの名無しさん
垢版 |
2017/03/25(土) 11:36:19.06ID:iRABigrq
やばい
このスレ最高だわ
ガイジのオンパレード
2017/03/25(土) 11:39:33.34ID:gGodu6Mc
常駐するプログラムで画像を開くアプリのウィンドウハンドルを
定期的に取得して、そこからキャプションに表示されるファイル名を
取ってきて同名のテキストがあれば開くとかすればできそうだけど、
すごく面倒そう
Winコマンド系にあたるのか知らんけど、WSHやPSならWin32APIに
アクセスできるから(WSHはSFC miniみたいなラッパーがないときつい)
可能なような気がするけどね
技術的に興味あるから完成したら呼んでくれ
2017/03/25(土) 11:40:35.59ID:FPIYQgcd
>>70
俺の事かな?すまんねw
向こうに行くから、スレは良いですよ
ここじゃ解決し無さそうだし

さらばじゃ、おまいらはデバッグでもしてろw
2017/03/25(土) 11:42:46.23ID:vdXeyx6o
>>69
そういうのはフォトギャラリー的なソフトで管理するもんじゃないかな
それを自作するってなら分かるけど
2017/03/25(土) 11:47:48.80ID:Hepb4FxQ
あんまり興味ないし詳しくないけどちょっとぐぐってみたよ
要は画像に格納されているメタデータを抽出したいってことだよね

まずメタデータを埋め込めるのはexifフォーマットをサポートしている画像だけね
そういうものの具体的例は、jpegファイルとかね
まずはexifフォーマットとかでググってみて

例えばC#ならファイルをImageオブジェクトとして読み込んで、PropertyItemsメソッドで取得できそうだな
c++やJavaにもにたようなクラスあると思う、ないなら自力でjpegフォーマットを読み込んでパースしてどうぞ
2017/03/25(土) 11:53:16.35ID:Hepb4FxQ
これだけじゃダメなのか

要するにexplorerが発生する操作イベントをフックして拡張するようexplorerのaddinを作りたいってことか

俺には無理だわ、俺なら素直にファイラ作ったほうがはやいと思う
2017/03/25(土) 12:08:02.93ID:ra7V2/PG
画像管理ソフトなんて腐るほどあるとか思うが
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況