七行プログラミング part3
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
NGNG過去作品は、多分>>2-20を辺り。
■前スレ
http://pc3.2ch.net/test/read.cgi/tech/1018840143/
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG自分の低レベルな作品を煽られた人ですか?
0005デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/984182993/706
http://pc.2ch.net/test/read.cgi/tech/984182993/760
http://pc.2ch.net/test/read.cgi/tech/984182993/770
■DNA
http://pc.2ch.net/test/read.cgi/tech/984182993/762
■e
http://pc.2ch.net/test/read.cgi/tech/984182993/769
■mersenne twister
http://pc.2ch.net/test/read.cgi/tech/984182993/749
http://pc.2ch.net/test/read.cgi/tech/984182993/750
http://pc.2ch.net/test/read.cgi/tech/984182993/753
■BMPGEN
http://pc.2ch.net/test/read.cgi/tech/984182993/775
■tar -xvzf
http://pc.2ch.net/test/read.cgi/tech/984182993/776
■蛇
http://pc.2ch.net/test/read.cgi/tech/984182993/792
http://pc.2ch.net/test/read.cgi/tech/984182993/798
■proxy
http://pc.2ch.net/test/read.cgi/tech/984182993/835
http://pc.2ch.net/test/read.cgi/tech/984182993/839
■BBS
http://pc.2ch.net/test/read.cgi/tech/984182993/840
http://pc.2ch.net/test/read.cgi/tech/984182993/841
http://pc.2ch.net/test/read.cgi/tech/984182993/842
http://pc.2ch.net/test/read.cgi/tech/984182993/877
0006デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/984182993/849
http://pc.2ch.net/test/read.cgi/tech/984182993/852
http://pc.2ch.net/test/read.cgi/tech/984182993/853
http://pc.2ch.net/test/read.cgi/tech/984182993/856
http://pc.2ch.net/test/read.cgi/tech/984182993/866
http://pc.2ch.net/test/read.cgi/tech/984182993/869
http://pc.2ch.net/test/read.cgi/tech/984182993/870
http://pc.2ch.net/test/read.cgi/tech/984182993/879
http://pc.2ch.net/test/read.cgi/tech/984182993/885
http://pc.2ch.net/test/read.cgi/tech/984182993/905
■calendar
http://pc.2ch.net/test/read.cgi/tech/984182993/904
■再帰アフォ
http://pc.2ch.net/test/read.cgi/tech/984182993/646
■BASIC
http://pc.2ch.net/test/read.cgi/tech/984182993/448
http://pc.2ch.net/test/read.cgi/tech/984182993/497
http://pc.2ch.net/test/read.cgi/tech/984182993/498
http://pc.2ch.net/test/read.cgi/tech/984182993/510
http://pc.2ch.net/test/read.cgi/tech/984182993/511
http://pc.2ch.net/test/read.cgi/tech/984182993/514
0007デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/984182993/52
http://pc.2ch.net/test/read.cgi/tech/984182993/75
http://pc.2ch.net/test/read.cgi/tech/984182993/76
http://pc.2ch.net/test/read.cgi/tech/984182993/78
http://pc.2ch.net/test/read.cgi/tech/984182993/89
■ラスタスクロール
http://pc.2ch.net/test/read.cgi/tech/984182993/105
http://pc.2ch.net/test/read.cgi/tech/984182993/125
http://pc.2ch.net/test/read.cgi/tech/984182993/129
■インデント揃え
http://pc.2ch.net/test/read.cgi/tech/984182993/116(http://pc.2ch.net/test/read.cgi/tech/984182993/126
http://pc.2ch.net/test/read.cgi/tech/984182993/138)
http://pc.2ch.net/test/read.cgi/tech/984182993/688
0008デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/984182993/101
http://pc.2ch.net/test/read.cgi/tech/984182993/135
http://pc.2ch.net/test/read.cgi/tech/984182993/146
http://pc.2ch.net/test/read.cgi/tech/984182993/153(http://pc.2ch.net/test/read.cgi/tech/984182993/154)
http://pc.2ch.net/test/read.cgi/tech/984182993/696
http://pc.2ch.net/test/read.cgi/tech/984182993/737
http://pc.2ch.net/test/read.cgi/tech/984182993/740
http://pc.2ch.net/test/read.cgi/tech/984182993/744
■倉庫番
http://pc.2ch.net/test/read.cgi/tech/984182993/118(http://pc.2ch.net/test/read.cgi/tech/984182993/120)
http://pc.2ch.net/test/read.cgi/tech/984182993/150(http://pc.2ch.net/test/read.cgi/tech/984182993/148)
http://pc.2ch.net/test/read.cgi/tech/984182993/179(http://pc.2ch.net/test/read.cgi/tech/984182993/180)
http://pc.2ch.net/test/read.cgi/tech/984182993/774
■HTTPクライアント
http://pc.2ch.net/test/read.cgi/tech/984182993/161
■動画再生?
http://pc.2ch.net/test/read.cgi/tech/984182993/205
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/984182993/170
http://pc.2ch.net/test/read.cgi/tech/984182993/209
■迷路(模様?)
http://pc.2ch.net/test/read.cgi/tech/984182993/283
http://pc.2ch.net/test/read.cgi/tech/984182993/285
(http://pc.2ch.net/test/read.cgi/tech/984182993/287)
http://pc.2ch.net/test/read.cgi/tech/984182993/305
■ツール
http://pc.2ch.net/test/read.cgi/tech/984182993/319
■ライフゲェム
http://pc.2ch.net/test/read.cgi/tech/984182993/320
http://pc.2ch.net/test/read.cgi/tech/984182993/812
http://pc.2ch.net/test/read.cgi/tech/984182993/815
http://pc.2ch.net/test/read.cgi/tech/984182993/817
http://pc.2ch.net/test/read.cgi/tech/984182993/818
http://pc.2ch.net/test/read.cgi/tech/984182993/822
0011デフォルトの名無しさん
NGNGなぜpart1の作品をはる?!?!
0012デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/984182993/336
http://pc.2ch.net/test/read.cgi/tech/984182993/337
http://pc.2ch.net/test/read.cgi/tech/984182993/352
http://pc.2ch.net/test/read.cgi/tech/984182993/372
■四則演算
http://pc.2ch.net/test/read.cgi/tech/984182993/396
http://pc.2ch.net/test/read.cgi/tech/984182993/397
http://pc.2ch.net/test/read.cgi/tech/984182993/402
http://pc.2ch.net/test/read.cgi/tech/984182993/424
http://pc.2ch.net/test/read.cgi/tech/984182993/430
■nCr(重複組み合わせ)
http://pc.2ch.net/test/read.cgi/tech/984182993/486
■BASE64
http://pc.2ch.net/test/read.cgi/tech/984182993/488
http://pc.2ch.net/test/read.cgi/tech/984182993/493
http://pc.2ch.net/test/read.cgi/tech/984182993/494
■マインスイーパ
http://pc.2ch.net/test/read.cgi/tech/984182993/385
http://pc.2ch.net/test/read.cgi/tech/984182993/537
http://pc.2ch.net/test/read.cgi/tech/984182993/540
■tic-tac-toe
http://pc.2ch.net/test/read.cgi/tech/984182993/336
>519
http://pc.2ch.net/test/read.cgi/tech/984182993/526
■high&low
http://pc.2ch.net/test/read.cgi/tech/984182993/530
0014デフォルトの名無しさん
NGNG0015前スレの950
NGNGhttp://pc.2ch.net/test/read.cgi/tech/984182993/425
http://pc.2ch.net/test/read.cgi/tech/984182993/428
■素因数分解
http://pc.2ch.net/test/read.cgi/tech/984182993/573
http://pc.2ch.net/test/read.cgi/tech/984182993/574
■dump
http://pc.2ch.net/test/read.cgi/tech/984182993/609
http://pc.2ch.net/test/read.cgi/tech/984182993/612
■起動時間表示
http://pc.2ch.net/test/read.cgi/tech/984182993/623
http://pc.2ch.net/test/read.cgi/tech/984182993/624
http://pc.2ch.net/test/read.cgi/tech/984182993/625
http://pc.2ch.net/test/read.cgi/tech/984182993/627
http://pc.2ch.net/test/read.cgi/tech/984182993/630
http://pc.2ch.net/test/read.cgi/tech/984182993/631
■MIDIピアノ
http://pc.2ch.net/test/read.cgi/tech/984182993/687
0016デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNG0020前スレの950
NGNG0021デフォルトの名無しさん
NGNG0022前スレの950
NGNG0023デフォルトの名無しさん
NGNG0025前スレの950
NGNG前スレの作品一覧
http://pc3.2ch.net/test/read.cgi/tech/1018840143/900-906n
追加作品
Prologインタープリタ http://pc3.2ch.net/test/read.cgi/tech/1018840143/914
前スレの残りの作品はどうすべきか(rengecorderとか
http://pc3.2ch.net/test/read.cgi/tech/1018840143/907-
0026デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1018840143/900-906n
0027デフォルトの名無しさん
NGNGケコーン
0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNGすげえ
0031デフォルトの名無しさん
NGNG自作自演?
003330
NGNG0034デフォルトの名無しさん
NGNGいいから失せろ
お前らも荒らしてんだよ
0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNGつーか、もう、このスレ終わりだね!
0039デフォルトの名無しさん
NGNGPrologは凄いとは思うが、だからといって載せていたら
スレタイ意味無いし、何でもアリになる。
正規表現も凄いと思うしな。
てことで、推薦品
http://pc3.2ch.net/test/read.cgi/tech/1018840143/894-895
ドラクエ
0040デフォルトの名無しさん
NGNG正規表現ってあったっけ?
0041デフォルトの名無しさん
NGNG896
0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNGそんなのどこで決めたんだろう・・・・
7行で限定したら作品の幅が(以下省略
なので、モチベーション維持という意味でも十分凄いと思う作品なら
載せてもいいと思われ。投稿量そんなに多くないんだし。
0044デフォルトの名無しさん
NGNG説明ないからドラクエの続きかと思った
0045デフォルトの名無しさん
NGNGいやいや、7行超えの番号を記載するのは、
「これ7行にしてみろやゴラァ!」「してやるぜゴラァ!」
のためかと。
あくまでも最終目的の7行以下を見据えてトライトライトライなのだ!
0046デフォルトの名無しさん
NGNGPart1の903より。
俺もこれを基本ルールとするべきだと思った。
すごけりゃ良いというのなら、七行プログラミングである意味も無いと思うし。
> 名作候補作品、勝手に選択
> 選定に当たっては、7行達成を厳格なルールとしました
(略)
> >>822>>839>>842>>880
0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNG7行で
0052デフォルトの名無しさん
NGNG前スレ896に出てきたgrepは、egrep相当の機能が実に巧妙に組まれている。
grepは通常、正規表現->NFA->DFAの変換というステップが必要だから7行は難しい。
7行にするには純粋grep相当に機能を落とさないとだめだろう。
どちらにしろ、もし896が自分で作ったのだとするなら、とてつもなくすごいことだ。
0053デフォルトの名無しさん
NGNG0054lisper
NGNGアプしても良いですか?
一応、GC、関数トレース、リスト操作、再帰、高階、内部関数とかできます。
0055デフォルトの名無しさん
NGNGドラクエより短いなら許す
0056デフォルトの名無しさん
NGNGどっかにアップして、URL貼り付けてよ
0057デフォルトの名無しさん
NGNG44行がどうやったら7行になるんだよ。
お前自分の書いたのを人に見せたいだけのリアル厨房か?
0058lisper
NGNG0059デフォルトの名無しさん
NGNGrangecorderとかハフマンとか、
解説読んでも分からず、7行ソース見て理解したクチなので、
漏れは挑戦してみるよ!
0060デフォルトの名無しさん
NGNGそんなこと言わずに上げてくださいよー。
省機能版が7行になるかも知れないじゃないですかー。
0061デフォルトの名無しさん
NGNGサブセットをまず7行で作ってみたい
0062デフォルトの名無しさん
NGNGわざわざ書き込むなよ。下らねぇ自己顕示欲だな
>>60
なるわけねぇだろ?
0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNGなるわけねーだろレベルで言ったらオセロやテトリスの方がよっぽどって感じだったよ
あと圧縮関係のも超無理っぽかったよな
0065デフォルトの名無しさん
NGNG圧縮は楽勝だっただろ。印象で語るな、お前展開したのか?
オセロとテトリスは確かに凄かったな。
それでもlisp44行は絶対に7行にはならない。ちょっとは頭使え。
いいか、厨の為に説明してやるけれど、短くするのはデータ構造が重要なんだよ。
最初から44行にしか落とせないプログラマーが音頭を取ったら、その時点で不可能。
コードは小手先で短くできるけど、データ構造は作った奴の能力そのままなんだよ。
だからlisperみたいな厨丸出しの奴が最初に出したら絶対に出来ねぇ。
0066デフォルトの名無しさん
NGNG仕切るなぼけ。
作品を作る奴が一番偉いんだよ。無能は引っ込んでろ。
0067デフォルトの名無しさん
NGNGわざわざトレースとかgcを入れたあたりで7行にするつもりが無いというのが分かり切ってる。
0068デフォルトの名無しさん
NGNGできない厨は消えろ。
0069デフォルトの名無しさん
NGNG最初は長くてもかまわんだろ。
圧縮する奴は結局根本から作り直すだけだ。
0070デフォルトの名無しさん
NGNGまずPrologを7行に汁
話はそれからだ。
0071デフォルトの名無しさん
NGNG>>68
おいおい、オマエモナー言わせるなよ…。
俺は今までここで何作か出してるぜ。疑うなら現実的な問題出してみ?作ってやるからよ。
つーかレベル低い奴らが出しゃばってくるから有能な奴がこねぇんだよ
頼むから消えてくれ
0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNG何がそれからだよ。
出来ないことを自慢げに語るな。
0074デフォルトの名無しさん
NGNG根本から作り出すならlisperとかいう厨はいらねぇだろ?
なにが「44行になりますた・・・。アプしても良いですか?」だ。消えろ
0075デフォルトの名無しさん
NGNGまずPrologを7行に汁
0076デフォルトの名無しさん
NGNG0077デフォルトの名無しさん
NGNG大体の参加者はそう考えてんだよ。
0078デフォルトの名無しさん
NGNGかなり辛そうだ。大体俺はprologしらないからちょいきつい。
0079デフォルトの名無しさん
NGNG紛らわしい言い方すんなw
0080デフォルトの名無しさん
NGNG前スレから見る限り、過去参加者なのかも知れないな。
今回も単なるギャラリーが出しゃばってるだけと思われ
0081デフォルトの名無しさん
NGNG44行だろうがいいものは賞賛されるだろう。
こんな下らん議論よりも44行のソースの方が遥かに価値があるわな。
0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNGうp→できるかも→みんながんばる
アップすることに反対はしないよ、俺は。
0084デフォルトの名無しさん
NGNGいいものを観賞して賞賛したいなら新スレ作った方がいいだろ。
お前の頭も結構下らないぞ
0085デフォルトの名無しさん
NGNG0086デフォルトの名無しさん
NGNGいいものはいい、ダメなものはダメ、そんなの各自の頭で判断すりゃいい。
0087デフォルトの名無しさん
NGNG7行にはハナから興味無いとしたら、スレ違いだし。
0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNGだからお前がそのためのスレ作れよ。「いいプログラムを観賞して賞賛するスレ」とか言って。
ここは7行プログラムスレなのに、
>44行だろうがいいものは賞賛されるだろう。
みたいな下らない書き込みするな。頼むから。
0091デフォルトの名無しさん
NGNG環境はなんなんだ。
0092デフォルトの名無しさん
NGNG10行を超えるものだって7行になっただろうが。
最初から「絶対無理」とかいうあんたが最低だよ。
無理かどうかはやってみて分かるはずだ。
最初から諦めてるようじゃそれがあんたの限界だよ。
0093デフォルトの名無しさん
NGNG2 とにかく、縮めテクニックを極めるスレに方針転換し、次スレからスレタイを変える前提で進める
どうする?
0094デフォルトの名無しさん
NGNGがいいこと行った。
0095デフォルトの名無しさん
NGNGお前lisperの自作自演か?
lisperは「ママー僕の書いたプログラム見てー」という気持ちが見え見えなんだよ
7行スレにアップしたいなら、最初から機能を制限して挑戦してるはずだろ?
lisperが本気で7行狙ってたら、いらない機能は最初から落としてるんだよ。
だからあいつはあの書き込みをする時点で厨房発覚なんだよ。首吊ってることを祈る
0096デフォルトの名無しさん
NGNG2は全然違うだろ。7行という微妙な制約が無かったら、
「僕はこれで縮めたつもりだから見てください」っていう厨房多発が目に見える
絶対に1だ
0097デフォルトの名無しさん
NGNGコンパイラ選ぶような下らないソースは放置すれば?
0098デフォルトの名無しさん
NGNGそれは分かってるんだけど、今回のlisperの件や>>43みたいなのが出てきて、
スレの趣旨を無視しまくった方向に持っていこうとするやん。
それだったらなんで7行スレでやってるんだと言いたいんだけどね。
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNG今までlisperを叩きまくった俺が言うのも何だけど、他人のコードを読む事は
とても勉強になるんだよ。独りでやっても限界はあるけれど、有能な奴とふれあえば
自然と知識・経験が増えていくんだ。7行スレで俺はそれを再認識した。
だから、とにかくソースをアップしてくれという奴らの気持ちは解るが、
このスレでそれをやると、今回のような下らない厨房が大挙して押し寄せて、
スレのレベルをsageまくることは間違いない。7行で偉大な作品を達成する奴と、
44行でどうでもいいプログラムを書く奴が同じ土俵に立ってもメリットは無いんだよ。
だから、このスレは「7行」という制約の元、有能な(一部無能だが)人材が
暇つぶしに才能をアピールする、そういう場であり続けて欲しい。part1はそうだった。
前スレではもう今さらかつての優秀な人が戻ってこないかと思ってたが、
最後の方で円周率、prolog(内容はしらんがソースはたいしたもんだ)なんてものが出てきて
俺はもう少しこのスレに期待することにした。
0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNGもう少し具体的に頼む。役はともかく、対コンピュータとか、二人うちとか
0103デフォルトの名無しさん
NGNGスマン、あんたもすれ違いだから、7行にまとめる努力してくれ
0104デフォルトの名無しさん
NGNGお前みたいな奴がこのスレのレベルを下げてるんだよ・・・気付け、もしくは失せろ
0105デフォルトの名無しさん
NGNG最後の砦?麻雀だろーというのが周囲の(俺の)期待♪
当然、対コンピュータかな。対戦ならネット経由まで出来て欲しい気がする。
対コンピュータならゲーセンの2人打ちでもOKでしょ。
0106デフォルトの名無しさん
NGNGは同意できる点もあるが、保守的だと思うな。
スレなんざ、流れによって変わるものだろ。
昔を懐かしむのは勝手だが押し付けるのはもっと勝手だ。
0107デフォルトの名無しさん
NGNGでも今回のLisperみたいに、
厨は出来れば来ないで欲しいぞ
今のスレの流れは厨房にopenすぎると思うが
0108デフォルトの名無しさん
NGNGやりたいようにやればいいじゃんか。
0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNG失せろ。はい次
0111デフォルトの名無しさん
NGNGそれは言えるね。
0112デフォルトの名無しさん
NGNG何様のつもり? お前が仕切るなって。 嫌ならお前が消えればいいじゃん。
0113デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNG失せろ。はい次
0115デフォルトの名無しさん
NGNGだから、流れを変えるというのなら
7行スレに拘らずに、次からスレタイ変えろと。
0116デフォルトの名無しさん
NGNGもうこなくていいよ
0117デフォルトの名無しさん
NGNGつーか、今から新スレ作ってもいいんじゃない?
0118デフォルトの名無しさん
NGNG俺も>>108に同意だ。やりたいよーにやりゃーいい。
荒らしたければ荒らせばいいわな。
くだらん発言は無視すればいいだけのこと。
無視できない俺も厨だが、な。
0119デフォルトの名無しさん
NGNGわざわざスレ違いをお子さんでも。
0120デフォルトの名無しさん
NGNG自縄自縛。何様ですかぁ?
0121デフォルトの名無しさん
NGNGところで、「仕切ろうとするあんた」って誰?
0122デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNG匿名の2chでは特定できんわ。
しいて言うなら最初にLisperとやらにカエレ!といった奴だな。
0124デフォルトの名無しさん
NGNGほれ。
0125デフォルトの名無しさん
NGNGlisperは厨だと思うけど?
厨房を排除しようというのは仕切るとは違うんじゃないの?
0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNG0128デフォルトの名無しさん
NGNGこんな下らないスレをageんなよ
0129デフォルトの名無しさん
NGNG〔自分のなわで自分をしばる意〕自分の言動が自分を束縛して、自由に振る舞えず苦しむこと。「―に陥る」
0130デフォルトの名無しさん
NGNG0131デフォルトの名無しさん
NGNG下らないからageるんだろ?
0132デフォルトの名無しさん
NGNG微妙に会話になってないよ
0133デフォルトの名無しさん
NGNGそもそも厨房という断定が高圧的なんだよ。
>一応、GC、関数トレース、リスト操作、再帰、高階、内部関数とかできます。
少なくともプログラミングを習って1ヶ月程度の発言とは思えないしな。
正直、長さはともかくアプして欲しかったぞ。俺は。
0134デフォルトの名無しさん
NGNG好きなようにやればいいってのは嘘だろ〜
スレ違いはダメだと思うぞ。JavaスレでHSPの質問とか(w
0135デフォルトの名無しさん
NGNG0136デフォルトの名無しさん
NGNGつーかあんたが「最初にLisperとやらにカエレ!といった奴」ですか?
わかりやすい様にコテハンにでもなってくれ
0137デフォルトの名無しさん
NGNGならば自分でスレ立てれば?って何度も言われているけれど。
このスレは「七行プログラミング」だったと思ったけど?
技術があるから厨房ではないわけではないと思う。>>95がいいこと言ってる
0138デフォルトの名無しさん
NGNG0139デフォルトの名無しさん
NGNG変数に代入するときは全部こうするのかと思ったんですが、2回目以降に
エラーが出てしまって困っています。助けてください。
0140デフォルトの名無しさん
NGNG0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNG0144デフォルトの名無しさん
NGNG0145デフォルトの名無しさん
NGNGこの板はID出ないから他の板に移動が手っ取り早いよ
0146デフォルトの名無しさん
NGNGんなもん最初だけ。ソースさえ見せれば良スレになる。早く立てれ。
0147デフォルトの名無しさん
NGNG「自信作ソースをアップして、みんなでさらに改良するスレ」とかどう?
0148デフォルトの名無しさん
NGNGhttp://corn.2ch.net/news2/
微妙に板違いか。
0149デフォルトの名無しさん
NGNGそのタイトルだと、視認性落としてまで短くする意味が無くなるね。
0150デフォルトの名無しさん
NGNG0151デフォルトの名無しさん
NGNG1画面て?縦横どれぐらい?80x25?
2chなら「省略されました」が出ないぐらいかな。
0152暇人
NGNG2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
0153暇人
NGNG0154デフォルトの名無しさん
NGNG新スレ立てたがってるひとはここをパクれ。
つーか。わざわざ、行数制限する必要ない。できるだけ短い
プログラムってい方向じゃないんだから。いわば、アレだ。
長編AAみたいな。
0155デフォルトの名無しさん
NGNG7行スレはやっぱり7行でやって欲しいと思いますので、新スレには大賛成です。
>>150さんみたく、「1画面プログラミング」とかにしたらいいんじゃないでしょうか?79×24?
もしくは、「read.cgiが悲鳴をあげるまで」とかも面白そうかな(w
0156デフォルトの名無しさん
NGNG11234567890123456789012345678901234567890123456789012345678901234567890123456789
21234567890123456789012345678901234567890123456789012345678901234567890123456789
31234567890123456789012345678901234567890123456789012345678901234567890123456789
41234567890123456789012345678901234567890123456789012345678901234567890123456789
51234567890123456789012345678901234567890123456789012345678901234567890123456789
61234567890123456789012345678901234567890123456789012345678901234567890123456789
71234567890123456789012345678901234567890123456789012345678901234567890123456789
81234567890123456789012345678901234567890123456789012345678901234567890123456789
91234567890123456789012345678901234567890123456789012345678901234567890123456789
a1234567890123456789012345678901234567890123456789012345678901234567890123456789
b1234567890123456789012345678901234567890123456789012345678901234567890123456789
c1234567890123456789012345678901234567890123456789012345678901234567890123456789
d1234567890123456789012345678901234567890123456789012345678901234567890123456789
e1234567890123456789012345678901234567890123456789012345678901234567890123456789
f1234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
11234567890123456789012345678901234567890123456789012345678901234567890123456789
21234567890123456789012345678901234567890123456789012345678901234567890123456789
31234567890123456789012345678901234567890123456789012345678901234567890123456789
41234567890123456789012345678901234567890123456789012345678901234567890123456789
51234567890123456789012345678901234567890123456789012345678901234567890123456789
0157デフォルトの名無しさん
NGNG目に見えてるでしょ。
0158デフォルトの名無しさん
NGNG0159デフォルトの名無しさん
NGNG・目標7行。
・馴れ合い歓迎。
・ストイックに究めたい人は本家7行スレへ。
みたいな感じで。
0160デフォルトの名無しさん
NGNG0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNGそれが出来ると最高だけれど、重複スレ立てるな!って言われそう
0165デフォルトの名無しさん
NGNGそ。17行からは省略されるけど。
0166デフォルトの名無しさん
NGNG0167デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1012694261/l50
0168デフォルトの名無しさん
NGNGじゃあ、マ板いけば?
0169デフォルトの名無しさん
NGNGなんでマ?
0170デフォルトの名無しさん
NGNGhttp://ton.2ch.net/test/read.cgi/gline/1028811653/
>>70はよく読んで勉強してきてよ
0171デフォルトの名無しさん
NGNG0172デフォルトの名無しさん
NGNG↓どうぞ
0173デフォルトの名無しさん
NGNG0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNGメール欄を読んでしまったオレモナー。
0176デフォルトの名無しさん
NGNG0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNGprintf使いたくないんで。(putsは改行打たれちゃうので却下)
0180デフォルトの名無しさん
NGNG詭弁の特徴ガイドライン(>>170)を読んでるところだから笑えた。
>>172
1行80文字(79文字+改行)というのは、昔のコンソールから来てるんじゃないですか?
とすると、1画面は24列が正しいかと思います
0181デフォルトの名無しさん
NGNG0182デフォルトの名無しさん
NGNGデータの構造をいじって何とかすれば、大抵printf1個で短く出来るみたいだよ
過去のプログラムを参考にしてみて下さい。
0183デフォルトの名無しさん
NGNG行だね。スマソ
0184179
NGNGありがとうございます。
1.while(*s)putchar(*s++);
2.for(;*s;)putchar(*s++);
3.p(s){printf(s)}
沢山使う場合、やっぱ3番みたいなのを定義するのが簡単でしょうか。
0185デフォルトの名無しさん
NGNG0186179
NGNG0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNG短くするためのテクニックはスレ違いじゃないよぉ
(というか、話の流れを変えようとしてくれた179氏の意志があれば汲みたい)
そうではなくて、例えばオセロは、配列データの中身が
0:空白 3:○ 6:● 9:改行
みたいな感じで、出力するときに
printf(" \0○\0●\0\n\0"+data[n])
とやっていた。
工夫次第で、printfを1カ所しか書かなくても大丈夫だよ
0190デフォルトの名無しさん
NGNGで、lisperのような人は排除していっても問題ないと。
0191デフォルトの名無しさん
NGNG仕切り厨房とソースくれ厨房がただ騒いでただけの様な気も。
0192デフォルトの名無しさん
NGNG・コード以外でコミュニケーションするのを禁止
0193デフォルトの名無しさん
NGNG「縮める気はないんだけど、僕のソース見て」
という態度だと思うよ。
0194デフォルトの名無しさん
NGNG殺伐としたスレになりそうな予感
0195デフォルトの名無しさん
NGNGmain(){printf("クソコードあげんな(゚ Д゚)ゴルァルァルァ\n");}
こんな感じのクソコードが(以下略
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNG何様ですか?
つーかスレ立ててくださいよ。
0199デフォルトの名無しさん
NGNG0200200
NGNG0201唐突に
NGNG0202デフォルトの名無しさん
NGNG0203pythonクソ
NGNG0204デフォルトの名無しさん
NGNG移動してネ☆
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNG0208デフォルトの名無しさん
NGNG終 冬
0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNG0211デフォルトの名無しさん
NGNG0212デフォルトの名無しさん
NGNG−−−−−−終冬−−−−−−
0213デフォルトの名無しさん
NGNGお ま え が な ん と か し ろ
0214デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNG0216デフォルトの名無しさん
NGNGs/sled/thread/g
0217デフォルトの名無しさん
NGNG0218デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNG放火魔?
0220デフォルトの名無しさん
NGNGなんで、保守派がなんとかしなきゃいけないんだよ。つーかタイトルも
決まってないしね。テンプレ作ってくれたらスレぐらい作るよ。
0221デフォルトの名無しさん
NGNG0222デフォルトの名無しさん
NGNG0223デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNG「釣りバカ日誌パート1」
0225デフォルトの名無しさん
NGNGそれでいいんなら立てるよ?
↓以下、賛同者5名以上で立てる。
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNG0228デフォルトの名無しさん
NGNG0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNG賛成。たてれ。
0231225
NGNG>またの機会にどうぞ。。。
残念だったなおまいら。
0232デフォルトの名無しさん
NGNGくれぐれもマ板に立てろよ
0233デフォルトの名無しさん
NGNG0234デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1033220509/
立てた
0237225
NGNG釣りバカ日誌パート1
http://pc.2ch.net/test/read.cgi/prog/1033220523/
0238225
NGNGもう知らん。
0239デフォルトの名無しさん
NGNG0240デフォルトの名無しさん
NGNG0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNG何様ですか?
0244デフォルトの名無しさん
NGNG>>243
0245デフォルトの名無しさん
NGNGよかったね!
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNGある意味ふさわしいとも言えるな。
0248デフォルトの名無しさん
NGNGお前はアホだ。
0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNGで、誰が見ても 7行になりそうに無かったら、叩きゃいいんじゃないの ?
プログラマだったら、ソースで語ろうよ。
0251デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1033220509/3
0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNG0254デフォルトの名無しさん
NGNGプログラマだったら概要で見積もれるようになれよ
0255デフォルトの名無しさん
NGNGどうでもいいけど>>237の2で激しくワラタよ
0256デフォルトの名無しさん
NGNG自分の見積もりを過信するなよ
0257デフォルトの名無しさん
NGNG0258デフォルトの名無しさん
NGNG↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
0259デフォルトの名無しさん
NGNG0260デフォルトの名無しさん
NGNG0261デフォルトの名無しさん
NGNGhttp://menme.net/ssc/
http://www.co-op.or.jp/jccu/coop_shouhin/new/02_03/03c_05.htm
0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNG0264デフォルトの名無しさん
NGNG>>236-237
0265デフォルトの名無しさん
NGNG0266デフォルトの名無しさん
NGNGとりあえず荒氏が去るまで寝かせておけ
平日になればおさまるだろ
0267Part1の853
NGNGますます分からんようになった。(´・ω・`)
0268デフォルトの名無しさん
NGNG7行以下ならここ、
それ以上だったらこっち
http://pc3.2ch.net/test/read.cgi/tech/1033220509/
マ板のは微妙に意味が違ってきてる
0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNG0271デフォルトの名無しさん
NGNG正直、それが安全だね。
0272デフォルトの名無しさん
NGNG0273Part1の853
NGNG俺はPerlしか書けない低レベルな厨だし、
遊び相手がいないと面白くないから、
こういう暖簾分けをした以上、こっちに顔出すのは憚られるのね。
…消えるのが一番いいかな。(w
0274デフォルトの名無しさん
NGNGアプすつには彼の許可が必要。
みんなひれ伏すように。
0275デフォルトの名無しさん
NGNG別にperlで7行じゃ駄目なのものなんだろうか?
ワンライナー以上ショート以下、でも機能はそれ以上ってことで
7行なんだと思ってたんだけど。
短くするってのは無駄を徹底的に省くって意味じゃなかったのかな?
0276デフォルトの名無しさん
NGNGevalがあったりする方がテクニックが広がって面白いのではなかろうか。
あと、言語を選べばワンライナーになるものを、わざわざCとかJavaで
やって7行問題に仕立て上げるのもつまらんと思うし。grepとか。
0277デフォルトの名無しさん
NGNGまあ処理系依存がなくて設計を工夫して極限まで短いなら面白いと思う。
ただそれを1バイト短くすることはどうでもいいというか、そんなことする位なら
一番短くなる言語で書けばいいじゃんって感じもするね。
0278デフォルトの名無しさん
NGNGC#で適当に書いてみた画像ビューア
using System.Drawing;using System.Drawing.Imaging;using System.Windows.Forms;
using System;class B:Form{Image i=null;public static void Main(){Application.
Run(new B());}public B(){Menu=new MainMenu(new MenuItem[]{new MenuItem("&File"
,new MenuItem[]{new MenuItem("&Open...",new EventHandler(fo))})});}protected
override void OnPaint(PaintEventArgs e){if(i!=null)e.Graphics.DrawImage(i,0,0
);}void fo(object o,EventArgs e){OpenFileDialog d = new OpenFileDialog();if(d.
ShowDialog()==DialogResult.OK){i=Image.FromFile(d.FileName);Invalidate();}}}
0279デフォルトの名無しさん
NGNG278が流れを変えた!? エライ!!
0280デフォルトの名無しさん
NGNGでも、C#分からないっす。スマソ。
0281デフォルトの名無しさん
NGNG[STAThread]が抜けてるのでd.ShowDialog()が失敗する・・・
0282278
NGNGあれ、漏れのところでは別に問題ないけどなぁ
0283デフォルトの名無しさん
NGNG別居してくれない?
0284怒らないから教えてごらん
NGNG具体的にどのレス?
0285デフォルトの名無しさん
NGNG0287デフォルトの名無しさん
NGNGあなたも含めてべとべとです。
7行スレで7行以外のネタを出して居直る神経がわからんよ、ホント。
0288281
NGNGうーん、ウチの環境だとd.ShowDialog()呼んだところで固まって帰ってこなくなります。
http://pc.2ch.net/tech/kako/1016/10165/1016597767.html のレス25
>COMの機能を使う場合は、STAスレッドで動作することを明記しなければならない
>Beta2のバグで、この属性がついていないフォームでも(一見)正しく動作してしまっていた
もしかしてβ使ってます?
0289284
NGNG0290デフォルトの名無しさん
NGNGOpenFileDialogはコモンダイアログコントロールだから、
COMじゃないと思うけど・・・
0291278
NGNGGDI+ってCOMかなぁ?
0292デフォルトの名無しさん
NGNG0293らいふげーむ
NGNG9行になってしまいまつた。
#include <windows.h>
int mx=200,my=200;typedef struct{char f[40000];}F;static F n,t;int WINAPI
WinMain(HINSTANCE q,HINSTANCE w,PSTR e,int r){HDC a=CreateDC("DISPLAY",0,0,0);
long i,x,y,p;int c=0,s;for(i=0;i<mx*my;i++) n.f[i]=rand()%2;while(c<100){for(
y=0;y<my;y++){for(x=0;x<mx;x++){s=0;for(i=0;i<9;i++)if (i!=4 && n.f[((y+(i/3-1
)+my)%my)*mx+((x+(i%3-1)+mx)%mx)]==1)s++;t.f[x+y*mx]=s;}}for(y=0;y<my;y++){for
(x=0;x<mx;x++){p=x+y*my;if(t.f[p]==3)n.f[p]=1;else if(t.f[p]==2);else n.f[p]=
0;if (n.f[p])SetPixel(a,x,y,RGB(255,0,0));else SetPixel(a,x,y,RGB(0,0,0));}}
c++;}DeleteDC(a);}
0294デフォルトの名無しさん
NGNGつーか自分の環境でちゃんと動いてるの?
0295281
NGNGうちも同バージョン。[STAThread]入れれば動いたんで、
コモンダイアログコントロールがCOMをラップしてるのかもとオモタ。
ildasmで実装がどうなってるのかぼちぼち調べてみるナリ。
0296デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
NGNG普通になんで動かなかったのか知りたい(w
0300278
NGNGC#の行連結子みたいなの誰か知らない?
[STAthread]を入れようと思うのだが、微妙に足りなくて・・・
0303デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1024746501/835
に再現手順を書いてみました。
0304デフォルトの名無しさん
NGNG散々偉そうなセリフを吐いたんだから実力を見せつけろよ
0305278
NGNG行をつなげられたらFileも救えたんだが・・・
using System.Drawing;using System.Drawing.Imaging;using System.Windows.Forms;
using System;class B:Form{[STAThread]static void Main(){Application.Run(new B(
));}public B(){Menu=new MainMenu(new MenuItem[]{new MenuItem("&F",new MenuItem
[]{new MenuItem("&Open...",new EventHandler(c))})});}protected override void
OnPaint (PaintEventArgs e){if(i!=null)e.Graphics.DrawImage(i,0,0);}Image i=
null;void c (object o,EventArgs e){OpenFileDialog d=new OpenFileDialog();if(d.
ShowDialog()==DialogResult.OK){i=Image.FromFile(d.FileName);Invalidate();}}}
0306らいふげーむ
NGNG#include <windows.h>
int X=200,Y=200;typedef struct{char f[40000];}F;static F n,t;int WINAPI
WinMain(HINSTANCE q,HINSTANCE w,PSTR e,int r){HDC a=CreateDC("DISPLAY",0,0,0);
long i,x,y,p,c=0,s;for(i=0;i<X*Y;i++) n.f[i]=rand()%2;while(c<100){for(y=0;y<Y
;y++){for(x=0;x<X;x++){s=0;for(i=0;i<9;i++)if (i!=4&&n.f[((y+(i/3-1)+Y)%Y)*X+(
(x+(i%3-1)+X)%X)]==1)s++;t.f[x+y*X]=s;}}for(y=0;y<Y;y++){for(x=0;x<X;x++){p=x+
y*Y;if(t.f[p]==3)n.f[p]=1;else if(t.f[p]==2);else n.f[p]=0;if (n.f[p])SetPixel
(a,x,y,RGB(255,0,0));else SetPixel(a,x,y,RGB(0,0,0));}}c++;}DeleteDC(a);}
0308デフォルトの名無しさん
NGNG3行目の
>public B()
は
B()
に可能。これでFileも救済できると思われ。
0311デフォルトの名無しさん
NGNG#include <windows.h>
int i,x,y,s,X=200,Y,c=0;struct{int f[40000];}n,t;WINAPI WinMain(HINSTANCE q,
HINSTANCE w,PSTR e,int p){HDC a=CreateDC("DISPLAY",0,0,0);Y=X;for(i=X*Y;i--;)n
.f[i]=rand()%2;c=0;while(c++<99){for(y=Y;y--;)for(x=X;x--;)for(i=s=0;i<9;t.f[x
+y*X]=s,i++)if(i!=4&&n.f[((y+i/3-1+Y)%Y)*X+((x+i%3-1+X)%X)]==1)s++;for(y=Y;y--
;)for(x=X;x--;){p=x+y*Y;s=t.f[p];if(s-3){if(s-2)n.f[p]=0;}else n.f[p]=1;
SetPixel(a,x,y,255*!!n.f[p]);}}DeleteDC(a);}
0312デフォルトの名無しさん
NGNG甘いな。
>>304
どーよ?とはいってもほとんど先人達の技のパクリだけどな。
#include <windows.h>
#include <stdlib.h>
int WINAPI WinMain(HINSTANCE q,HINSTANCE w,PSTR e,int r){const int a=200,b=200
;HDC d=CreateDC("DISPLAY",0,0,0);int n[a*b],t[a*b],y,p;for(r=p=0;p<a*b;n[p++]=
rand()%2);for(;r<200;r++){for(y=0;y<a*b;y++)if(r%2)(t[y]==3)?n[y]=1:(t[y]==2)?
0:(n[y]=0),SetPixel(d,y%a,y/a,RGB(255,0,0)*n[y]);else for(t[y]=p=0;p<9;p++)t[y
]+=(p-4)?n[y+(p%3-1)*a+p/3-1]:0;}DeleteDC(d);InvalidateRect(0,0,0);return 0;}
描画領域は自由に変えれるし(a,b)、後かたづけはやってるし(InvalidateRect)、
intとか一切省略してないし、#includeは全てつけているし、returnもしている
文句つける場所あるか?
0313278
NGNG窓の中でおながいします・・・
>>308
これで最後にして寝ます
using System.Drawing;using System.Drawing.Imaging;using System.Windows.Forms;
using System;class B:Form{[STAThread]static void Main(){Application.Run(new B(
));}B(){Menu=new MainMenu(new MenuItem[]{new MenuItem("&File",new MenuItem[]{
new MenuItem("&Open...",new EventHandler(c))})});}protected override void
OnPaint(PaintEventArgs e){if(i!=null)e.Graphics.DrawImage(i,0,0);}Image i=null
;void c(object o,EventArgs e){OpenFileDialog d=new OpenFileDialog();if(d.
ShowDialog()==DialogResult.OK){i=Image.FromFile(d.FileName);Invalidate();}}}
0314デフォルトの名無しさん
NGNGなんだかなぁ…
0315デフォルトの名無しさん
NGNG・・・その挑戦はきつい・・・
&File復活おめ
0316デフォルトの名無しさん
NGNGお前らみたいに凄いのを凄いと素直に言えない奴らが厨房なんだよ。
0317デフォルトの名無しさん
NGNGつくづく性格悪いな・・・
0318デフォルトの名無しさん
NGNG>>137
>技術があるから厨房ではないわけではないと思う
0319デフォルトの名無しさん
NGNGなんで匿名掲示板で礼儀正しくしてなきゃいけねぇんだよ。
つーかプログラム叩いてくれよ。
>>318
スマソ・・
0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNGCだと簡単すぎた
0322デフォルトの名無しさん
NGNGだからといって、その前に出した311を蔑む必要があるか?
0323デフォルトの名無しさん
NGNG被害妄想。甘いものは甘い。自分よりレベルの低いコードだから指摘しましたが何か?
0324デフォルトの名無しさん
NGNG7行化に協力してくれてthx>311
0325デフォルトの名無しさん
NGNG> 文句つける場所あるか?
だめ、
> for(t[y]=p=0;p<9;p++)
> t[y]+=(p-4)?n[y+(p%3-1)*a+p/3-1]:0;
y = 0; p = 0 の時に n[] の範囲外をアクセスするぞ。元のプログラムが、
n.f[((y+i/3-1+Y)%Y)*X+((x+i%3-1+X)%X)]
とまだるっこしいことをやってる意味を考えろ。
0326デフォルトの名無しさん
NGNGその通りだ。スマソ
0327デフォルトの名無しさん
NGNG#include <windows.h>
int WINAPI WinMain(HINSTANCE i,HINSTANCE,PSTR,int){int a=120,n[a*102],t[a*102],
y,p,c,m[8],r;WNDCLASS w={67,DefWindowProc,0,0,i,0,0,0,0,"a"};RegisterClass(&w);
HWND g;HDC d=GetDC(g=CreateWindow("a","life game",513<<19,1<<31,1<<31,a,100,0,0
,i,0));for(c=p=0;p<a*102;n[p++]=((y=y*9+5)>>12)%2);while(GetMessage((MSG*)m,g,0
,0)!=-1){if(m[1]==15){for(c++,y=a;y<a*101;y++)if(c%2)for(t[y]=p=0;p<9;p++)t[y]
+=(p-4)?n[y+(p%3-1)*a+p/3-1]:0;else(t[y]==3)?n[y]=1:(t[y]==2)?0:(n[y]=0),SetPi\
xel(d,y%a,y/a-1,255*n[y]);}DispatchMessage((MSG*)m);InvalidateRect(g,0,0);}ret\
urn 0;}
境界条件が嘘だけどまあいいだろう。
今9行。Cで書いたら7行はすぐだろうな。
0328デフォルトの名無しさん
NGNG>>311のコードから。
#include <windows.h>
int i,x,y,s,X=200,Y,c=0;struct{int f[40000];}n,t;WINAPI WinMain(q,w,e,p){HDC a
=CreateDC("DISPLAY",0,0,0);Y=X;for(i=X*Y;i--;)n.f[i]=rand()%2;c=0;while(c++<99
){for(y=Y;y--;)for(x=X;x--;)for(i=s=0;i<9;t.f[x+y*X]=s,i++)if(i!=4&&n.f[((y+i/
3-1+Y)%Y)*X+((x+i%3-1+X)%X)]==1)s++;for(y=Y;y--;)for(x=X;x--;){p=x+y*Y;s=t.f[p
];if(s-3){if(s-2)n.f[p]=0;}else n.f[p]=1;SetPixel(a,x,y,255*!!n.f[p]);}}
DeleteDC(a);}
0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNG何様ですか?(笑
0331328
NGNGこれで6行。
>>328から。
#include <windows.h>
int i,x,y,s,a,X=200,Y,c=0;struct{int f[40000];}n,t;WINAPI WinMain(q,w,e,p){Y=X
;a=CreateDC("DISPLAY",0,0,0);for(i=X*Y;i--;)n.f[i]=rand()%2;c=0;while(c++<99){
for(y=Y;y--;)for(x=X;x--;)for(i=s=0;i<9;t.f[x+y*X]=s,i++)if(i!=4&&n.f[((y+i/3-
1+Y)%Y)*X+((x+i%3-1+X)%X)]==1)s++;for(y=Y;y--;)for(x=X;x--;){p=x+y*Y;s=t.f[p];
n.f[p]=(s-3)?(s-2)?0:n.f[p]:1;SetPixel(a,x,y,255*!!n.f[p]);}}DeleteDC(a);}
0332デフォルトの名無しさん
NGNGtypedef unsigned char*U,V;V Z[9999],H[999];c,f;U P,Q,r,s,t,u;C(b){*Q++=b;}I(c){
return c&&strchr("*+?",c);}N(U p){return(c=p[1]<<8|p[2])?*p==7?p-c:p+c:0;}S(o,p
)U p;{for(s=Q,Q+=3;s-->p;s[3]=*s);*p=o,p[1]=p[2]=0;}T(U p,U v){for(;N(p);p=N(p)
);p[2]=c=*p==7?p-v:v-p;p[1]=c>>8;}O(U p,U v){*p-6||T(p+3,v);}D(o){r=Q;*Q++=o;*Q
++=0;*Q++=0;return r;}M(U p){U n,q;for(;p;p=n){n=N(p);c=*p;if(!c||c==1&&P!=Q||c
==2&&*P||c==3&&!*P++||c==4&&(!*P||!strchr(p+3,*P++))||c==5&&strchr(p+3,*P++)||c
==8&&p[3]!=*P++)return!c;if(c>9)return M(n);if(c==6){for(q=P;!(f=M(p+3))&&(p=N(
p))&&*p==6;P=q);return f;}}}G(p,F){U r=p?(r=D(10)),T(r,B()),r:B();for(;*P=='|';
F=f,P++,T(r,B()),f=f?F:f);T(r,u=D(p?11:0));for(t=r;t;t=N(t))O(t,u);if(p?*P++-41
:*P)E();return r;}E(){exit(1);}L(){for(D(*P==94?P++,5:4),(*P==93||*P==45)&&C(*P
++);*P&&*P!=93;)if(*P-45)C(*P++);else if(*++P-93&&*P)for(c=P[-2];c<=*P++;P--,C(
c++));else C(45);*P++-93&&E();C(0);}B(){U p,q;for(f=0,p=D(6),q=0;*P&&*P-'|'&&*P
-41;(q&&T(q,u)),q=u)f=0,(c=*P++)==94?D(1):c==36?D(2):c==46?f=1,D(3):c==91?f=1,L
():c==40?r=G(1):I(c)?E():((c-92||*P++||E()),f=1,D(8),C(P[-1])),u=r,I(c=*P)&&(!f
&&c-47&&E(),f=0,c==42?S(6,u),O(u,D(7)),O(u,u),T(u,D(6)),T(u,D(9)):c==43?f=1,T(u
,t=D(6)),T(D(7),u),T(t,D(6)),T(u,D(9)):(S(6,u),T(u,D(6)),T(u,t=D(9)),O(u,t)),I(
*++P)&&E());q||D(9);return p;}main(c,v)char**v;{for(P=v[1],Q=Z,G(0);gets(H);)
for(Q=s=H;P=s,M(Z)?puts(H),0:*s++;);}
0333デフォルトの名無しさん
NGNG#include <windows.h>
WinMain(HINSTANCE,HINSTANCE,PSTR,int r){const int a=200,b=a,c=a*b;int n[c*2],*t
=n,y=0,p;HDC d=GetDC(0);for(;t<n+c;*t++=rand()%2);for(r=200;r--;){for(;y<c;y++)
for(t[y]=p=0;p<9;p++)t[y]+=(p-4)?n[y+(p%3-1)*a+p/3-1]:0;for(;y--;)SetPixel(d,y%
a,y/a,255*(n[y]=t[y]^2?t[y]==3:n[y]));}InvalidateRect(0,0,!ReleaseDC(0,d));}
とりあえず、バグも残ってるんでうまく解消する方法を模索中。
windows.hにWinMainのプロトタイプ宣言が入っているので、
呼び出し規約WINAPIは記述しなくてもOK
>SetPixel(d,y%a,y/a,255*(n[y]=t[y]^2?t[y]==3:n[y]));
これが目玉(そうでもないか
0334デフォルトの名無しさん
NGNGVC++6.0SP5でビルドすると、
LifeGame.cpp(2) : error C2057: 定数式が必要です。
LifeGame.cpp(2) : error C2466: サイズが 0 の配列を割当てまたは宣言しようとしました。
LifeGame.cpp(2) : error C2133: 'n' : サイズが不明です。
LifeGame.cpp(2) : error C2057: 定数式が必要です。
LifeGame.cpp(2) : error C2466: サイズが 0 の配列を割当てまたは宣言しようとしました。
LifeGame.cpp(2) : error C2133: 't' : サイズが不明です。
って怒られるけど、何かオプション必要?
0335デフォルトの名無しさん
NGNG定数式が必要だと思われ。
>n[a*102],
ところでC++ってこんなことできたっけ?(allocaがいらなくなる?)
gccの拡張機能にあったかもしれないけど。
0336デフォルトの名無しさん
NGNGとりあえず、6行。VC++ 6 + SP5 では動いた。
#include <windows.h>
extern int rand();const int x=200,y=200,m=x*y;int n[m],t[m],i,z=m,c=100,s;int
WINAPI WinMain(HINSTANCE,HINSTANCE,PSTR,int){HDC a=CreateDC("DISPLAY",0,0,0);
for(;z--;)n[z]=rand()%2;for(;c--;){for(z=m;z--;){for(s=i=0;i<9;i++)s+=i!=4&&n[
((z/x+i/3-1+x)%x)*x+(z%x+i%3-1+x)%x];t[z]=s==3?1:s==2?n[z]:0;}for(z=m;z--;)
SetPixel(a,z%x,z/x,(n[z]=t[z])*255);}DeleteDC(a);return!InvalidateRect(0,0,0);}
0337デフォルトの名無しさん
NGNG拡張子をcppにするとコンパイルできるよ
って、なってるみたいね。わからん。
0338デフォルトの名無しさん
NGNG0339デフォルトの名無しさん
NGNGさわやかな朝。
0340デフォルトの名無しさん
NGNG0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNG> 拡張子をcppにするとコンパイルできるよ
> って、なってるみたいね。わからん。
うちの VC++6 (SP5) だとコンパイル/実行はできる。ただし以下の警告が出る。
test.cpp(2) : warning C4007: 'WinMain' : '__stdcall' でなければなりません。
test.cpp(5) : warning C4508: 'WinMain' : 関数に戻り値の型が指定されていません。戻り値を void 型と見なします。
リンク中...
ブラウザ データベースを作成中...
test.exe - エラー 0、警告 2
0344デフォルトの名無しさん
NGNGB()のforループがとんでもないね
0345生ものゲーム
NGNGint WINAPI WinMain(HINSTANCE i,HINSTANCE,PSTR,int c){int a=200,b=a*a,n[b],t[b],
y,p=b,m[8];WNDCLASS w={67,DefWindowProc,0,0,i,0,0,0,0,"a"};HWND g;RegisterClass
(&w);HDC d=GetDC(g=CreateWindow("a","生",513<<19,0,0,a,a,0,0,i,0));for(;p--;)n[
p]=rand()%2;while(~GetMessage((MSG*)m,g,0,0)){for(c++,y=b;--y;)if(c%2)for(t[y]=
p=0;p<9;p++)t[y]+=p-4&&n[y+(p%3-1)*a+p/3-1];else n[y]=t[y]==3||t[y]==2&&n[y],
SetPixel(d,y%a,y/a,255*n[y]);DispatchMessage((MSG*)m);InvalidateRect(g,0,0);}}
0346デフォルトの名無しさん
NGNG窓7行達成おめ
0347デフォルトの名無しさん
NGNG0348デフォルトの名無しさん
NGNGあなたもかなり偉そうだぞ。そういう書き込みはまた厨房を召還してしまう。
コードに突っ込みを入れるなり自分で作品を出して言うべし。
ちなみに口が悪いから評価されてないけど、>>312はなかなかの作品だと思う。
0349デフォルトの名無しさん
NGNGなかなかの作品ならあれからさらに2行も縮まるかボケ
0350デフォルトの名無しさん
NGNG自分が嫌いだからと言ってソースも読まずに叩くなよ。
そういう事がやりたいなら板違いだからマ板へ行け
0351デフォルトの名無しさん
NGNG作品以前に人間性に問題あるよ
0352デフォルトの名無しさん
NGNGそれ(348=312=100)、どうせ特定できないし、荒れる要因になるので、放置の方向で。
0353デフォルトの名無しさん
NGNG79*7=553文字あると、かなりの範囲まで表現できると思いますた。
0354デフォルトの名無しさん
NGNGって最近のコンパイラは1行256文字超えても大丈夫?
0355Part2の989
NGNGchar s[999],*p=s;k(){while(*p==32)++p;}a(void){int r=0;if(*p=='('){char c=*++p
;++p;k();r=a();if(c==43)r+=a();else if(c==45)r-=a();else if(c==42)r*=a();else
if(c==47)r/=a();else if(c==37)r%=a();else if(c==80)printf("%d\n",r);else if(76
==c){int i,n=r;char*b=p;for(i=0;i<n;++i){p=b;r=a();}}++p;}else do{r=r*10+*(p++
)-'0';}while(*p!=32&&*p!=')');k();return r;}main(){gets(s);a();return 0;}
lisp風電卓、再び6行に縮めることができました。
仕様(俺がlisp知らないので適当)
(演算子 式 式) …計算 + - * / %
(P 式) …式を表示、結果は式の値そのまま
(L 回数 式) …式を回数繰り返す、結果は最後に実行した式の値
条件判断と再帰呼出しができるようにしたいなー。
そうすればLも廃止できるし…後一行の余裕でどうにかならないかしら。
0356名無しさん@Emacs
NGNG前置記法と言うです。
0357デフォルトの名無しさん
NGNG(P (+ 1 2 3))
3
せっかくの前置記法なのに勿体ない。
あと、Lって何に使えるの?
ソースは今から読みまふ。
そのまま寝てしまいそうですがw
0358デフォルトの名無しさん
NGNG関数作れる様にできるといいね。条件式も。
関数定義:(F 名前 引数 値)
条件式:(? 条件 真 偽)
最低F?=+-があればフィボナッチとか書ける様になると思う。
(F f(n)(?(= n 0)0(?(= n 1)1(+(f(- n 1))(f(- n 2))))))
=>f
(f 20)
=>6765
0359278
NGNGそれを省いて、代わりにスクロールバーを入れてみた。
そして、&Fileは再び階層ごと消えてしまった。
using System;using System.Drawing;using System.Windows.Forms;class B:Form{B(){
Menu=new MainMenu(new MenuItem[]{new MenuItem("&Open...",new EventHandler(c))}
);AutoScroll=1>0;}Image i=null;void c(object o,EventArgs e){OpenFileDialog d=
new OpenFileDialog();if(d.ShowDialog()==DialogResult.OK){i=Image.FromFile(d.
FileName);AutoScrollMinSize=i.Size;Invalidate();}}[STAThread]static void Main(
){Application.Run(new B());}protected override void OnPaint(PaintEventArgs e){
if(i!=null)e.Graphics.DrawImage(i,new Rectangle(AutoScrollPosition,i.Size));}}
0360デフォルトの名無しさん
NGNGまぁいいや、マジレス。俺も縮めた。
しかし、これを言うと特定されるから言いたくなかった。
以上
んじゃ。
0361Part2の989
NGNGchar s[999],*p=s;k(){while(*p==32)++p;}a(void){int r=0;if(*p==40){char c=*++p;
++p;k();r=a();(c==43)?r+=a():(c==45)?r-=a():(c==42)?r*=a():(c==47)?r/=a():(c==
37)?r%=a():(c==61)?r=r==a():(c==62)?r=r>a():(c==60)?r=r<a():(c==80)?printf(
"%d\n",r):(c==63)?r?r=a(),a():(a(),r=a()):0;++p;}else do{r=r*10+*(p++)-48;}
while(*p!=32&&*p!=41);k();return r;}main(){gets(s);a();return 0;}
Lを廃止
= > < 追加
? 追加
ifを?:に書き換えて短縮
で、まだ6行なので、関数定義いけるか…?
0362Part2の989
NGNG・関数は1つだけ定義できる
・引数は1つだけ渡せる
(F 式) で定義。式中では引数はXで参照。
(C 式) で呼びだし。式の値が呼びだし先のXに。
で、>>358のフィボナッチを計算できないかな〜と(w
複数行の入力を受け付ける余裕はなさげなので、関数定義は0を返すようにして、↓な感じ
(+ (F (?(= X 0)0(?(= X 1)1(+(C(- X 1))(C(- X 2)))))) (C 20))
0363デフォルトの名無しさん
NGNG間違ってたらスマソ。
#include<stdio.h>
char s[999],*p=s;k(){while(*p==32)++p;}a(){int r=0;if(*p==40){char c=*++p;++p;
k();r=a();r=c-43?c-45?c-42?c-47?c-37?c-61?c-62?c-60?c-80?c-63?0:r?a(),a():(a()
,r=a()):printf("%d\n",r):r<a():r>a():r==a():r%a():r/a():r*a():r-a():r+a();++p;
}else do r=r*10+*(p++)-48;while(*p-32&&*p-41);k();return r;}main(){gets(s);a()
;return 0;}
0364363
NGNG0365Part2の989
NGNGありがとうございます。
でも増えちゃったんですね〜関数定義追加したら。
#include<stdio.h>
char*f,s[999],*p=s;k(){while(*p==32)++p;}a(int x){int r=0;if(*p==40){char*b,c=
*++p;++p;k();r=a(x);(c==43)?r+=a(x):(c==45)?r-=a(x):(c==42)?r*=a(x):(c==47)?r
/=a(x):(c==37)?r%=a(x):(c==61)?r=r==a(x):(c==62)?r=r>a(x):(c==60)?r=r<a(x):(c
==80)?printf("%d\n",r):(c==63)?r?r=a(x),x=a(x):a(x),r=a(x):(c==70)?(f=p),r=(a(
x),0):(c==67)?(b=p),(p=f),(r=a(r)),(int)(p=b):0;++p;}else if(*p==88){r=x;++p;}
else do{r=r*10+*(p++)-48;}while(*p-32&&*p-41);k();return r;}main(){gets(s);a(0
);return 0;}
(+ (F X (+ X 2)) (P (C 1))) ==> 3 は動作確認しましたが、
フィボナッチが計算できない〜…デバッグしなければ。
関数定義は (F ダミー引数定義 式) となり、結果は0、ダミー引数定義はX固定です。
0366363
NGNGmain(){gets(s);printf("\d\n",a());}
0367Part2の989
NGNG0368363
NGNGこれで5行
#include<stdio.h>
char s[999],*p=s;k(){while(*p==32)++p;}a(){int r=0;if(*p==40){char c=*++p;++p;
k();r=a();r=c-43?c-45?c-42?c-47?c-37?c-61?c-62?c-60?c-63?0:r?a(),a():(a(),r=a(
)):r<a():r>a():r==a():r%a():r/a():r*a():r-a():r+a();++p;}else do r=r*10+*(p++)
-48;while(*p-32&&*p-41);k();return r;}main(){gets(s);printf("%d\n",a());}
0369363
NGNGr?a(),a():(a(),r=a())の部分をどうにかしないと…
0370363
NGNG#include<stdio.h>
char s[999],*p=s;k(){while(*p==32)++p;}a(){int r=0;if(*p==40){char c=*++p;++p;
k();r=a();if(c==63)r?r=a(),a():(r=a(a()));else r=c-43?c-45?c-42?c-47?c-37?c-61
?c-62?c-60?0:r<a():r>a():r==a():r%a():r/a():r*a():r-a():r+a();++p;}else do r=r
*10+*(p++)-48;while(*p-32&&*p-41);k();return r;}main(){gets(s);printf("%d\n",a
());}
0371Part2の989
NGNG#include<stdio.h>
char*f,s[999],*p=s;k(){while(*p==32)++p;}a(int x){int r=0;if(*p==40){char*b,c=
*++p;++p;k();r=a(x);c==43?r+=a(x):c==45?r-=a(x):c==42?r*=a(x):c==47?r/=a(x):c
==37?r%=a(x):c==61?r=r==a(x):c==62?r=r>a(x):c==60?r=r<a(x):c==80?printf("%d\n"
,r):c==63?((b=f),r?(r=a(x)),(f=0),a(x),(f=b),0:((f=0),a(x),(f=b),r=a(x))):c==
70?((b=p),r=(a(x),0),(f=b),0):c==67?(f?((b=p),(p=f),(r=a(r)),(p=b),0):0):0;++p
;}else if(*p==88){r=x;++p;}else do{r=r*10+*(p++)-48;}while(*p-32&&*p-41&&*p-40
);k();return r;}main(){gets(s);a(0);}
(+ (F X (?(= X 0)0(?(= X 1)1(+(C(- X 1))(C(- X 2)))))) (P(C 20))) ==> 6765
現在8行。%辺りの使わない演算子は消してしまってもいいかな?
0372363
NGNG凄い!とうとうやったね。
で、Pと無駄な括弧省いたら7行になったよ。(Pいるの?)
#include<stdio.h>
char*f,s[999],*p=s;k(){while(*p==32)++p;}a(int x){int r=0;if(*p==40){char*b,c=
*++p;++p;k();r=a(x);c==43?r+=a(x):c==45?r-=a(x):c==42?r*=a(x):c==47?r/=a(x):c
==37?r%=a(x):c==61?r=r==a(x):c==62?r=r>a(x):c==60?r=r<a(x):c==63?(b=f,r?r=a(x)
,f=0,a(x),f=b,0:(f=0,a(x),f=b,r=a(x))):c==70?b=p,r=(a(x),0),f=b,0:c==67?(f?(b=
p,p=f,r=a(r),p=b,0):0):0;++p;}else if(*p==88)r=x,++p;else do{r=r*10+*(p++)-48;
}while(*p-32&&*p-41&&*p-40);k();return r;}main(){gets(s);printf("%d\n",a(0));}
(+ (F X (?(= X 0)0(?(= X 1)1(+(C(- X 1))(C(- X 2)))))) (C 20))
6765
0373Part2の989
NGNG無駄な括弧は、デバッグ時書いていたものを、優先順位的に消してもいいものか迷ってました。
サンクス、大感謝です!
Pは、最終的に7行「lispインタプリタ」を名乗りたかったので(←lisp知らないくせに)、
計算以外の命令文っぽいものを残しときたかっただけです(w
ってことでPの代わりに%を省略。これでも7行。
#include<stdio.h>
char*f,s[999],*p=s;k(){while(*p==32)++p;}a(int x){int r=0;if(*p==40){char*b,c=
*++p;++p;k();r=a(x);c==43?r+=a(x):c==45?r-=a(x):c==42?r*=a(x):c==47?r/=a(x):c
==61?r=r==a(x):c==62?r=r>a(x):c==60?r=r<a(x):c==63?(b=f,r?r=a(x),f=0,a(x),f=b,
0:(f=0,a(x),f=b,r=a(x))):c==70?b=p,r=(a(x),0),f=b,0:c==67?(f?(b=p,p=f,r=a(r),p
=b,0):0):c==80?printf("%d\n",r):0;++p;}else if(*p==88)r=x,++p;else do{r=r*10+*
(p++)-48;}while(*p-32&&*p-41&&*p-40);k();return r;}main(){gets(s);a(0);}
0374363
NGNGそれだったら本物のLISPインタプリタと同じ様に、read-eval-print-loop
にすると良いよ。(行入力にループ追加、%,Pを省略しました。終了はCtrl+Z)
#include<stdio.h>
char*f,s[999],*p=s;k(){while(*p==32)++p;}a(int x){int r=0;if(*p==40){char*b,c=
*++p;++p;k();r=a(x);c==43?r+=a(x):c==45?r-=a(x):c==42?r*=a(x):c==47?r/=a(x):c
==61?r=r==a(x):c==62?r=r>a(x):c==60?r=r<a(x):c==63?(b=f,r?r=a(x),f=0,a(x),f=b,
0:(f=0,a(x),f=b,r=a(x))):c==70?b=p,r=(a(x),0),f=b,0:c==67?(f?(b=p,p=f,r=a(r),p
=b,0):0):0;++p;}else if(*p==88)r=x,++p;else do{r=r*10+*(p++)-48;}while(*p-32&&
*p-41&&*p-40);k();return r;}main(){while(gets(s))p=s,printf("%d\n",a(0));}
0375デフォルトの名無しさん
NGNG0376デフォルトの名無しさん
NGNG最初の *p=s は main()でやってるので *p でいいのでは?
あと、終わりのほうのdo while()(10進文字列->intですよね?)の条件は
(*p>47&*p<58)でいいと思う。
うー、なんでwhileじゃなくdo whileなのかワカラン。わしがなにか読み落としとるのかー?
0377デフォルトの名無しさん
NGNG>347 <-> >374
0378デフォルトの名無しさん
NGNG0379デフォルトの名無しさん
NGNG038060cm浮き上がるストレート
NGNGどなたか縮めてください。または縮める方法やこつを教えてください。
long z;char j[]="000102101112202122001020011121021222001122021120",s[][17]={
"\x1b[>5h","回:+ 止:1~3 終:/"," "};int g,a,b,e[28][3],o=9,m[3],n[8],Y[3],c=0;
main(){S(0);H(6,33);S(1);for(;;){g=kbhit()?getch():0;H(20,37);printf("%5d",o);
if(c>4)c=0;for(a=0;a<8;a++){if(c<1){m[a/3]=2;n[a]=0;Y[a/3]=0;for(b=0;b<84;b++)
e[b/3][b%3]=rand()%7;}if(c==1){m[a/3]=0;if(a>6)c=2;}if(c>1&&a<3){b=Y[a];if(m[a
]<1&&g==49+a)m[a]=1;if(m[a]==1&&b%3==0){m[a]=2;c++;}if(m[a]<2)Y[a]=b==83?0:b+1
;}}if(c<1&&g==43){c=1;o--;}if(g==47||o<0)return;if(c>4){b=0;for(a=0;a<43;a+=6)
if(R(a,0,1)==R(a,2,3)&&R(a,0,1)==R(a,4,5)){b++;n[a/6]=1;}o+=b*b*b;}if(c>1){for
(a=0;a<81;a++){H(17-a/9,32+a%9*2);for(b=0;b<47;b+=2)if(n[b/6]==1&&j[b]-48==a/9
/3&&j[b+1]-48==a%9/3)M(5);M(e[L((Y[a%9/3]+a/9)/3)][a%9/3]+41);S(2);M(0);}}for(
z=0;z<2000000;z++);}}L(a){return a-=a>27?28:0;}R(a,b,c){return e[L(j[a+b]-48+Y
[j[a+c]-48]/3)][j[a+c]-48];}M(a){printf("\x1b[%dm",a);}S(a){printf("%s",s[a]);
}H(y,x){printf("\x1b[%d;%dH",y,x);}
0381デフォルトの名無しさん
NGNG2 printfはまとめろ
3 桁の多い定数は何とかして圧縮汁
4 a==1?1:0はa-1?0:1/a^1?0:1に置き換えられる
0382デフォルトの名無しさん
NGNG我流だけじゃ大して面白くもない
0383デフォルトの名無しさん
NGNG縮めてやれよ
0384デフォルトの名無しさん
NGNGNTなんでエスケープシーケンスが正常に表示されないんだよ
0385デフォルトの名無しさん
NGNG文句言ってないで自分でなんとかしろ
0386デフォルトの名無しさん
NGNGうるせーな、面倒なんだよ
0387デフォルトの名無しさん
NGNGだったら文句言うなボケ
038860cm浮き上がるストレート
NGNGお答えありがとうございます。
>1 エスケープシーケンス使うのやめれ
使わなくても作れたのですが、へぼプラグラムをカバーするために
使いました。確かにかなり文字数を消費してしまいます。
もしエスケプに変わる、関数なんかでもっと小さくかけるのなんかが
あったら教えてください。
>2 printfはまとめろ
これはかなり考えていたのですが。
今回はint用、文字列用、色変え用、カーソル移動用に分けて使いました。
種類の違うのを1つにする方法はあるのでしょうか。
または、それはないので、1種類しか使わないプログラムを作るように
したほうがよいのでしょうか。
>3 桁の多い定数は何とかして圧縮汁
48桁×3パターンだったので3進数扱いにしてやったのですが、
処理のほうで意外と文字数が増えてしまったので断念しました。
>4 a==1?1:0はa-1?0:1/a^1?0:1に置き換えられる
確かに。分岐時の省略は、!=0の意味になりますからね。
1文字でも大事にしないといけませんね。
0389デフォルトの名無しさん
NGNGすでにソース見てもなにやってるかわからん(w
0390363
NGNG>>376,>>378を反映してさらに短くなりました。
数文字余ったので結果出力に=>を追加,%を復活させました。
#include<stdio.h>
char*f,s[999],*p;k(){while(*p==32)++p;}a(x){int r=0;if(*p==40){char*b,c=*++p;
++p;k();r=a(x);c==43?r+=a(x):c==45?r-=a(x):c==42?r*=a(x):c==47?r/=a(x):c==37?r
%=a(x):c==61?r=r==a(x):c==62?r=r>a(x):c==60?r=r<a(x):c==63?(b=f,r?r=a(x),f=0,a
(x),f=b,0:(f=0,a(x),f=b,r=a(x))):c==70?b=p,r=(a(x),0),f=b,0:c==67?(f?(b=p,p=f,
r=a(r),p=b,0):0):0;++p;}else if(*p==88)r=x,++p;else while(*p>47&&*p<58)r=r*10+
*(p++)-48;k();return r;}main(){while(gets(s))p=s,printf("=>%d\n",a(0));}
>>379の、==を-に直すアイデアは、左辺値のエラーが出るので保留です。
該当部分を括弧で括るとエラーは出なくなりますが、逆に増えてしまいました。
0391デフォルトの名無しさん
NGNG# 初代スレ745のそれと違いサイズ制限無し
圧縮>exec src dst e
展開>exec src dst
#include<stdio.h>
FILE*G,*P;unsigned U[258]={1,1},C=4,L,W=~0,X=256,N,K,A=2,Z,T;f(l,w){for(L+=W*l;
(W*=w)<=~L*X/X||W<X*X&&(W=65535&-L);L*=w=X)Z?N=N*X+getc(G):putc(L>>24,P);}main(
i,v)char**v;{G=fopen(v[1],"rb");P=fopen(v[2],"wb");for(Z=i<4;C--;Z&&f(0,1))W/=X
;for(W=C;C;Z*--C&&putc(C-1,P)){i=Z?0:getc(G)+2;W/=A++;for(K=C=0;T=U[C],Z?W*(K+T
)<=N-L:i--;C++)K+=T;f(T?K:0,T+!T);T*C||f((W/=X,C=C?C:(N-L)/W+2)-2,1);for(K=++U[
C]/X?A=2,258:1;--K>1;)A+=U[K]/=2;}for(T=4;T--;f(0,1))W/=X;fclose(P);fclose(G);}
0392デフォルトの名無しさん
NGNGヒョ準入出力使ったら短くなるかな?
exec e <src >dst
0393デフォルトの名無しさん
NGNGGC・クロージャ・リスト操作・リストのプリンタ・エラーチェックいっさいなしと、
かなり機能を絞りましたが全然小さくなりません。お前らもっと縮められませんか?
#include <stdio.h>
typedef int*O,(*F)();d[9<<20];j[768];O e=d,f,g,b,h,i,x,y;k,l,m,n,o;A(p,q){i=e++
;*e++=p;*e++=q;}B(r){i=e;*e++=1;*e++=r;}C(s){i=s;}D(O t){for(l=0;!*t;t=t[2])l+=
(y=t[1])[1];B(l);}E(O t){m=(y=t[1])[1];B(*(t=t[2])?-m:m-(D(t),l));}P(O t){for(i
=f,n=1;!*t;t=t[2])m=(y=t[1])[1],n?n=0,l=m:m-l&&(i=g);}G(O t){O s=t[2];c(t[1]);i
=i-g||!*(s=s[2])?s[1]:g;c(i);}Q(O t){A(b,t[2]);h=t[1];h[2]=i;i=h;}H(v,w){i=j+v*
3;if(!*i)*i=2,i[1]=i,i[2]=w;}J(O t){for(i=g;!*t;h=t[2],t[2]=i,i=t,t=h);}K(O s){
O t=g;for(;!*s;c(s[1]),A(i,t),t=i,s=s[2]);J(t);}c(O s){O t=h=s[1],u=x,z,a;i=0;
if(*s==1)i=s;if(*s>1)for(i=h,z=u;!*z&&(i=(a=z[1])[2],a[1]!=s);i=h,z=z[2]);if(!*
s&&*h>1&&((t=h[2])<d||t>e))*h-3?K(s[2]),((F)t)(i):((F)t)(s[2]);if(!i){for(t=t[2
],z=t[1],K(s[2]),a=i;!*z;A(z[1],a[1]),A(i,x),x=i,z=z[2],a=a[2]);for(;!*(t=t[2])
;c(t[1]));}x=u;}N(){O t=g;for(;L(),i;A(i,t),t=i);J(t);}L(){for(i=0;(k=getchar()
)==32||k==10;);for(l=n=o=0;~k&&!strchr(" \n()",k);o=o?o:k,l=l*10+(k-=48),n|=(O)
k>9,k=getchar());o?ungetc(k,stdin),n?H(o,C):B(l):k-40||N();}main(){H(78,C);g=x=
i;H(84,C);f=i;H(76,C);b=i;H(63,G);*i=3;H(68,Q);*i=3;H(43,D);H(45,E);H(61,P);for
(;L(),i;)if(c(i),*i)*i-1?printf("%c\n",(i-j)/3):printf("%d\n",i[1]);}
0394393
NGNGD name lambda-list &rest body
? test then [else]
+ &rest numbers
- number &rest numbers
= &rest numbers
フィボナッチはこんな感じで。
(D f (x) (? (= x 0) 0 (? (= x 1) 1 (+ (f (- x 1)) (f (- x 2))))))
(f 20) -> 6765
0395デフォルトの名無しさん
NGNGどんどん凄くなってくけど、これを7行は難しいかも。
0396!380
NGNGとくにスゲーということはないですが、せっかくなので。
#include <stdio.h>
#include <signal.h>
int x=30,y,a,b,c,o,p,q,r=0,s=0,t=0,u=0,v=0,w=0;char*m="0123456789abcdef";void
H(n){a?(a=0):b?(b=0):c?(c=0):0;}int main(){signal(SIGINT,H);for(printf("%d>",x)
,scanf("%d",&y);x>0;x+=y*(((m[o]&m[p])==m[q])+((m[r]&m[s])==m[t])+((m[u]&m[v])
==m[w]))*2-y)for(a=b=c=1;a|b|c;printf("%c%c%c\n",m[r],m[s],m[t])){a?o=r,r=u++,u
%=16:0;b?p=s,s=v++,v%=16:0;c?q=t,t=w++,w%=16:0;}return 0;}
0397396
NGNG3x3を表示するのは無理(環境に依存しないで画面クリアやカーソル移動
するのができない)なのでまんなかの横1列のみ表示。上と下の列は内部
的には存在する。最初に持ち点が表示されるので、賭け点を入力する。
持ち点がなくなったら終了。目はCtrl-Cでとめる。横の列1ライン揃いで2倍
リターン。3ラインあるので最大6倍リターン(目の並びや長さをいじってネ)。
#Ctrl-Cを目をとめるのに使っているので強制終了はできません。あしからず
・メモ
gcc2.95.3-5で-Wallオプションでおこられないことを確認済み。
規格マニアも(たぶん)安心。
・裏技(バグ技)
掛け点に負数を入れると。。
\rにしようかとも思いましたが、難しくなりすぎるので却下。
\nでも十分ムズイですが。
横を3ラインじゃなくて1ラインにすればもう1行はいけそうですな。
全然関係ないですが>376の(*p>47&*p<58)の&は&&のミスではないです。
比較系の演算子(と!)は、&よりも優先順位が高く、かつ、0/1を返すことが
保証されているので。
0398363
NGNG>全然関係ないですが>376の(*p>47&*p<58)の&は&&のミスではないです。
そうでしたか。
手元にちゃんとした資料が無かったので確認できませんでした。
==を-に変換できたら組みこんでみます。
0399Part2の989
NGNG演算子減らしてでも、複数の文の実行 (...) (...) サポートできないだろうか?
+で連結するのもアレなので…。
それと、関数定義の空読みの時とりあえず0を使ってますけど、
割り算のことを考えると0以外しないとまずいかも。
0400デフォルトの名無しさん
NGNG必要だと思いますがどうでしょう?パート1では砂嵐とかオセロとか
オリジナルのソースもアップされていたよね。
今は釣り馬鹿日誌もあるから、そちらでオリジナルコードを披露してみては?
0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNG仕切んなハゲ。
0403デフォルトの名無しさん
NGNGすげえ使える
0404デフォルトの名無しさん
NGNG0405デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNG0407デフォルトの名無しさん
NGNG0408デフォルトの名無しさん
NGNG0409デフォルトの名無しさん
NGNG0410デフォルトの名無しさん
NGNG0411デフォルトの名無しさん
NGNG0412デフォルトの名無しさん
NGNG0413308
NGNGusing System;using System.Drawing;using System.Windows.Forms;class B:Form{Image
i;B(){Menu=new MainMenu(new MenuItem[]{new MenuItem("&File",new MenuItem[]{new
MenuItem("&Open...",new EventHandler(c))})});AutoScroll=1>0;}void c(object o,
EventArgs e){OpenFileDialog d=new OpenFileDialog();if((int)d.ShowDialog()==1){i
=Image.FromFile(d.FileName);AutoScrollMinSize=i.Size;Invalidate();}}[STAThread]
static void Main(){Application.Run(new B());}protected override void OnPaint(
PaintEventArgs e){if(i!=null)e.Graphics.DrawImage(i,new Point(0));}}
0414ロムスカ・パロ・ウル・308
NGNG0415デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNGその代わり、スクロールバーを動かすと絵がおかしくなる。
0417ロムスカ・パロ・ウル・308
NGNG・・・だからAutoScrollPosition(>>359)になってたのか。
納得。しかし書き換えると17文字超過・・・
0418デフォルトの名無しさん
NGNGあ,どっかで見た名前だと思ってたらあいつかあ。
「見たまえ,これが納期を7日間延ばしたという天のバグだ。インドらの野望とも呼ばれているがね」
0419デフォルトの名無しさん
NGNGやべぇ、すっごくワロタw
0420308
NGNGe.Graphics.DrawImage(i,AutoScrollPosition);
でOKなのか。スクロールしても大丈夫そうだし。
using System;using System.Drawing;using System.Windows.Forms;class B:Form{Image
i;B(){Menu=new MainMenu(new MenuItem[]{new MenuItem("&File",new MenuItem[]{new
MenuItem("&Open...",new EventHandler(c))})});AutoScroll=1>0;}void c(object o,
EventArgs e){OpenFileDialog d=new OpenFileDialog();if((int)d.ShowDialog()==1){i
=Image.FromFile(d.FileName);AutoScrollMinSize=i.Size;Invalidate();}}[STAThread]
static void Main(){Application.Run(new B());}protected override void OnPaint(
PaintEventArgs e){if(i!=null)e.Graphics.DrawImage(i,AutoScrollPosition);}}
今度こそ・・・
0422デフォルトの名無しさん
NGNG指摘サンクス。サンプル.jpgでテストしてたんで気づかなかった。
やはりRectangle(AutoScrollPosition,i.Size)でやるべきか・・・
0424デフォルトの名無しさん
NGNGexec [D|E] < src > dst
unsigned U[257],C=1,L,H=~0,W,X=256,N,K,A,Z,r,s,t,F,T=1<<30;g(a){for(r=0;a--;r=r
+r|t>>--s&1)!s?s=8,t=getchar():0;}p(a,b){for(;b--;++s>7?putchar(t),s=t=0:0)t=t+
t|a>>b&1;}o(x){for(p(x=L>>x,!Z);F;F--)p(~x,!Z);}main(i,v)char**v;{for(Z=69-*v[1
],Z?g(32),N=r:0;C;Z*C&&putchar(C-1)){Z||(i=getchar()+1);W=(H-L)/(K=++A+X);for(C
=X;K+=~U[C],Z?W*K>N-L:C-i;C--);H=L+W*(++U[C]+K)-1;for(L+=W*K;K=L^H,~K>>31|K&L&T
;L+=L,H-=~H,N+=Z?g(1),N+r:0)K>>31?++F,N^=T,L&=T-1,H|=T:o(31);for(K=A>>16?A=0:H;
K<=X;)A+=U[K++]/=8;}Z||(++F,o(30),p(0,37));}
0425デフォルトの名無しさん
NGNG機能減らさんと縮みそうにないけどな。
#include <stdio.h>
typedef*P,N;N H[4096],F,g[256],m,X,r,t,e,s,c,i;P A=H,D=H+1,M=H+2;G(x){x&&!(x&3)
&&M[x]!=m?M[x]=m,G(A[x]),G(D[x]):0;}S(){F=0;for(i=4092;i;i-=4)M[i]-m?A[i]=F,F=i
,M[i]=m:0;}C(x,y){N z;if(!F){m++;G(x);G(y);G(X);G(r);G(t);G(e);G(s);for(i=256;i
--;)G(g[i]);S();}F||exit(puts("nomem"));F=A[z=F];A[z]=x;D[z]=y;return z;}Q(){(c
=getchar())<0&&exit(0);c<33&&Q();}L(){N x;Q();return c-41?x=R(),C(x,L()):0;}R()
{return c-40?c*8+2:L();}a(x){putchar(x);}W(x){a(x&1?36:x&2?x/8:40);if(!(x&3)){
while(x)W(A[x]),a(32),(x=D[x])&3?a(46),W(x),x=0:0;a(41);}}U(x){s=C(x,s);}O(){i=
A[s];s=D[s];return i;}B(x){x?B(D[x]),X=A[x],E(),U(r):0;}N*V(x,y){return y?A[i=A
[y]]-x?V(x,D[y]):&D[i]:&g[x/8];}b(){for(;t;t=D[t])e=C(C(A[t],O()),e);for(t=r;X=
A[t],D[t];t=D[t])E();}E(){N x=1;U(e);U(t);while(x)x=0,r=X?~X&2?(t=D[X],r=A[X])-
650?r-610?r-266?r-586?B(t=X),O(),r&1?i=r/8,i?i-1?i-3?i-4?i-5?t=O(),C(t,O()):O()
==O()?930:0:(W(t=O()),t):(Q(),R()):D[O()]:A[O()]:(e=A[r],t=A[i=D[r]],r=D[i],b()
,x=1):(X=A[t],E(),X=r?A[D[t]]:A[D[D[t]]],x=1):(X=A[D[t]],E(),*V(A[t],e)=r):C(e,
t):A[t]:*V(X,e):0;t=O();e=O();}main(){g[65]=1;g[68]=9;g[67]=17;g[82]=25;g[87]=
33;g[61]=41;while(1)Q(),X=R(),E(),W(r),a(10);}
0426425
NGNGスペシャルフォームは
(! var exp) ; 変数に代入 (Q exp) ; クオート
(L param body...) ; λ (I test then else) ; If then else
ビルトイン関数は
(C a d) ; cons (A x), (D x) ; car, cdr
(R) (W x) ; read, write (= x y) ; eq?
とりあえずハノイの塔
(! h (L (f t v d)
(I (= d ())
()
((L () (h f v t (D d))
(W (C (A d) (C f (C t ()))))
(h v t f (D d)))))))
(h (Q A) (Q B) (Q C) (Q (4 3 2 1)))
末尾再帰で無限ループ
(! z (L (x) (z x)))
(z (Q a))
0427デフォルトの名無しさん
NGNGげ、末尾再帰対応っすか。
参りました。
0428デフォルトの名無しさん
NGNG0429デフォルトの名無しさん
NGNG0430278
NGNGトイレでガンバッてたら、namespace使うのを思いついた。
「釣りバカ」の>>24も参考にさせてもらいました。
namespace System{using Drawing;using Windows.Forms;class B:Form{void c(object
o,EventArgs e){OpenFileDialog d=new OpenFileDialog();if((int)d.ShowDialog()==1
){b=new Bitmap(d.FileName);AutoScrollMinSize=b.Size;Refresh();}}protected
override void OnPaint(PaintEventArgs e){if(b!=null)e.Graphics.DrawImage(b,new
Rectangle(AutoScrollPosition,b.Size));}Bitmap b;[STAThread]static void Main(){
Application.Run(new B());}B(){Menu=new MainMenu(new MenuItem[]{new MenuItem(
"&File",new MenuItem[]{new MenuItem("&Open...",new EventHandler(c))})});}}}
0431308
NGNGnamespace System・・・それは流石に思いつかなかったw
尽くせるだけの手を尽くしてもうだめぽと思ってたけど、
探せばあるんだな・・・
Refresh()は全く知らなかったんでMSDNで調べてきます。
0432デフォルトの名無しさん
NGNG関係ないけどDES符号ってどっかの国の外へは持ちこんじゃいけないとか
話なかった?
0434デフォルトの名無しさん
NGNG日経エレクトロニクス no.825(2002-7-1)号 P228「TechTale」より
>「あのー,山岸さん。ちょっと相談があるのですが」
>「どうしたー」
>「例の実験の件なんですが。実はですね,どうやら成功したようなんです」
>「え?何だって?」
>「DESの解読、うまくいったんですよ」
0435デフォルトの名無しさん
NGNG(#`Д´)<マヂデスカッ
0436デフォルトの名無しさん
NGNGどのレベルの「解読」にもよりますな。
http://ne.nikkeibp.co.jp/NE/2002/020701/tt.html
http://www8.ocn.ne.jp/~a-little/Kumo/data/HPR054.htm
0437デフォルトの名無しさん
NGNG広めたいと思ったある人は、ソースコードを載せた本を出版した
という話を聞いたことがある(本ならOKなんかいな?)。その本には
ご丁寧にOCRの方法まで載ってたとか。。
0438デフォルトの名無しさん
NGNG0439デフォルトの名無しさん
NGNG0440デフォルトの名無しさん
NGNG0441デフォルトの名無しさん
NGNGって、簡単でしたね。
main(a,v){int c;while((c=getchar()+1))putchar(a>1?c-2:c);}
引数なしでエンコード、ありでデコード
hal < hal.c | hal dmy > hal.dec
0442デフォルトの名無しさん
NGNG0443デフォルトの名無しさん
NGNGmain(a,v){int c;while(c=getchar()+1)putchar(a>1?c:c-2);}
0444デフォルトの名無しさん
NGNG0445デフォルトの名無しさん
NGNG#include <stdio.h>
double sin(),fabs();char D[64]={128},b[128];unsigned s[4],X[16],C[2],x,y,z,w,E[
]={0x67452301,0xefcdab89,0x98badcfe,271733878};i,j,k,l,m,n,t,u;main(a,v)char**v
;{FILE*f=fopen(v[1],"rb");do{l=n=fread(b,1,u=64,f);C[1]+=((*C+=l*8)<l*8)+l>>29;
if(l-u){for(i=*C/8%u,j=i<56?56:120,i=j-i;i--;b[l+i]=D[i]);l=j+8;memcpy(b+j,C,8)
;}for(m=0;m<l;m+=u){memcpy(X,b+m,u);for(i=4;i--;s[i]=E[i]);for(j=0;j<4;j++)for(
i=-1,k="@AE@"[j];++i<16;k+="AECG"[j])w=t=(16-i)%4,x=s[++w%4],y=s[++w%4],z=s[++w
%4],y=s[t]+(j-3?j-2?j-1?x&y|~x&z:x&z|y&~z:x^y^z:y^(x|~z))+(w=fabs(sin(j*16+1.+i
))*(~0U+1.))+X[k=(k-u)%16],z="GLQVEINTDKPWFJOU"[j*4+i%4]-u,s[t]=x+(y<<z|y>>32-z
);for(i=4;i--;E[i]+=s[i]);}}while(n==u);for(memcpy(b,E,16);i<15;)printf("%02x",
b[++i]&255);}
0446デフォルトの名無しさん
NGNG・79文字+改行
・78文字+改行
の2派が存在するみたいですけど、どっちが正しいんでしょうか?
0447デフォルトの名無しさん
NGNGこりゃまた圧縮されてるね。
MD5って128bitを吐き出す一方向ハッシュ関数のことなのか。
ファイル名を引数にして実行するのね。
自分自身を実行すると
c:\md5\Release>md5 md5.exe
a94f0a85a2906a403c16c7fc3ec78562
おー、なんか動いてる。やるね。
問題はこの数値があってるかどうかの検証が分からないことか・・・。
0448デフォルトの名無しさん
NGNG0449デフォルトの名無しさん
NGNG0450デフォルトの名無しさん
NGNG昔の端末は一行80文字だった。
それに収まるように、ということなので79文字+改行が正しい。
0451デフォルトの名無しさん
NGNG一行弱縮めてみた。
#include <stdio.h>
double sin(),fabs();i,j,l=16,m,n,t,u=64,g=16;unsigned s[4],X[32],B,C,x,y,z,w,k,
E[4]={0x67452301,0xefcdab89};main(a,v)char**v;{FILE*f=fopen(v[1],"rb");E[2]=~*E
;E[3]=~E[1];do{n=fread(X,1,u,f);C+=n*8;B+=(C<n*8)+n>>29;if(n-u){i=C/8%u;X[l=i<
56?14:30]=C;X[i/4]|=128<<i%4*8;X[++l]=B;}for(m=0;m<l;m+=g){memcpy(s,E,g);for(j=
0;j<4;j++)for(i=-1,k="@AE@"[j];++i<g;k+="AECG"[j])w=t=(g-i)%4,x=s[++w%4],y=s[++
w%4],z=s[++w%4],y=s[t]+(j-3?j-2?j-1?x&y|~x&z:x&z|y&~z:x^y^z:y^(x|~z))+(w=fabs(
sin(j*g+1.+i))*(~0U+1.))+X[m+k%g],z="GLQVEINTDKPWFJOU"[j*4+i%4]-u,s[t]=x+(y<<z|
y>>32-z);for(i=4;i--;E[i]+=s[i]);}memset(X,0,u);}while(n==u);for(;++i<g;printf(
"%02x",(E[i/4]>>i%4*8)&255));}
0452デフォルトの名無しさん
NGNG改行が 0x0A なのか, 0x0D 0x0A なのかという質問じゃないのかえ?
0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNGあのテーブルってどうやって作ったんだろうなあ
生成できればなあ。
なんか強力な暗号で7行で書けそうなのってないかな?
>>452
端末から送るのがCRでホストが送るのがCRLFだっけ?
内部コードの話ならOS-9とかもCRだったかな?
0455デフォルトの名無しさん
NGNG端末からもホストからもCRでもLFでもなんでも趣味の世界です
一番多いパターンにあわせると
0456デフォルトの名無しさん
NGNGIBMの技術者と思われ。
S-BOXの中身はどうでもいいよ、とDESの仕様書には書いてあるけど
みんなそのまま使ってるしね。
ちなみにS-BOXの一部は
static const int sbox[8][4][16]= {
{ { 14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7 },
{ 0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8 },
{ 4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0 },
{ 15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13 }
},
こんなのが8個もあっては7行じゃ絶対無理っぽい・・・。
0457デフォルトの名無しさん
NGNGFealとか、EPOCHとかどう?日本のだけど。
0458デフォルトの名無しさん
NGNG#include <windows.h>
#include <stdio.h>
#define _ (double)rand()/(double)RAND_MAX
INT WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,INT){DWORD current=timeGetTime();
char msg[256];LPCSTR str="さいたま";HDC hdc=GetDC(NULL);for(int i=0;i<1<<16;
i++){SetBkColor(hdc,RGB(255*_,255*_,255*_));TextOut(hdc,1024*_-10,768*_-10,
str,strlen(str));}ReleaseDC(NULL,hdc);InvalidateRect(NULL,NULL,FALSE);
sprintf(msg,"%f SaitamPerSecond",float(1<<16)/float(timeGetTime()-current));
MessageBox(NULL,msg,"SaitamaBenchMark",MB_OK);return 0;}
ベンチじゃないと6行。
#include <windows.h>
#define _ (double)rand()/(double)RAND_MAX
INT WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,INT){
LPCSTR str="さいたま";HDC hdc=GetDC(NULL);for(int i=0;i<1<<16;i++)
{SetBkColor(hdc,RGB(255*_,255*_,255*_));TextOut(hdc,1024*_-10,768*_-10,str,
strlen(str));}ReleaseDC(NULL,hdc);InvalidateRect(NULL,NULL,FALSE);return 0;}
…逝ってきます。
0459デフォルトの名無しさん
NGNG512M以上でバグってたのを修正、>451から約1行削減
#include <stdio.h>
double sin(),fabs();size_t s[4],X[32],B,C,x,y,z,k,E[4],i,j=8,l=16,m,n=64,u=64,g
=16;main(char*a,char**v){FILE*f=fopen(v[1],"rb");for(a=E;j--;)a[j+8]=~(a[j]=1+j
*34);for(a=X;n/u;memset(X,m=0,u))for(n=fread(X,1,u,f),C+=n*8,B+=C<n,n-u?X[l=14+
n/56*g]=C,a[n]|=128,X[++l]=B:0;m<l;m+=g){for(memcpy(s,E,g);k="@AE@"[++j];)for(i
=0;i<g;s[-i++&3]=x+(y<<z|y>>32-z),k+="AECG"[j])x=s[1-i&3],y=s[2-i&3],z=s[~i&3],
y=s[-i&3]+(j-3?j-2?j?x&z|y&~z:x&y|~x&z:x^y^z:y^(x|~z))+X[m+k%g]+fabs(sin(j*g+i+
1.))*(~0U+1.),z="GLQVEINTDKPWFJOU"[j*4+i%4]-u;for(;j--;E[j]+=s[j]);}for(a=E;++j
<g;printf("%02x",a[j]&255));}
0460458
NGNG#include <stdio.h>
INT WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,INT){DWORD c=timeGetTime();char m
[256];LPCSTR s="さいたま";HDC h=GetDC(0);for(int i=0;i<1<<16;i++){SetBkColor(h,
RGB(rand()>>7,rand()>>7,rand()>>7));TextOut(h,4*(rand()>>7)-9,3*(rand()>>7)-9,s
,strlen(s));}ReleaseDC(0,h);InvalidateRect(0,0,FALSE);sprintf(m,"%f Saitama/s",
(1<<16)/float(timeGetTime()-c));MessageBox(0,m,"SaitamaBench",MB_OK);return 0;}
…なにやってんだ、オレ。
0461デフォルトの名無しさん
NGNG・・・ってくだらなすぎ(w
もうちっと面白いベンチマークキボンヌ
0462デフォルトの名無しさん
NGNGAAのさいたまが出てくるといいなぁ。
0463デフォルトの名無しさん
NGNGあのAAって元々何なの?
自民党のマスコット?
0464デフォルトの名無しさん
NGNG2 let b= 20
3 let c= a+ b
4 let d= c-a
5 let e= d-b
6 print e
7 goto 1
0465デフォルトの名無しさん
NGNGfor(;;){
;
;
;
;
}
}
0467デフォルトの名無しさん
NGNG正 >>278
0468デフォルトの名無しさん
NGNGテトリスが7行なら余裕でそ。
問題は2PにするかCPUにするかだが、2Pが妥当か。
0469デフォルトの名無しさん
NGNG>テトリスが7行なら余裕でそ。
だったら、さっさとお前が作れよ
0472デフォルトの名無しさん
NGNG「さいたま」の太陽だけとかなら、何とかなる?
0474デフォルトの名無しさん
NGNG俺は78+改行で作っていたけど、それは一部のUnix端末では79で折り返す
普通じゃない端末があったから。可能なら78+改行を目指す方がいいけど、
もちろん79+改行で何の問題もないです。
0475デフォルトの名無しさん
NGNGそんなものがあったのか…
ちなみに何ていう端末か教えて欲しい。
誰か78桁で折り返す端末を見つけ出せっ!
0476デフォルトの名無しさん
NGNGMSXだと縦横のサイズを変えられる。
あとは、端末エミュレータ(KTERMとか)。
・・・だめ?
0477458
NGNGしかも半角と全角が混ざっているからずれるし。
色々変態なこと書いてるのは目を瞑ってください。
#include <windows.h>
#include <stdio.h>
INT WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,INT){HDC h=GetDC(0);char m[64];int
x,y;LPCSTR s[5]={" \ │ / "," / ̄\ ","─( ゚∀゚ )─"," \_/ ",
" / │ \ "};LONG c=timeGetTime();for(int i=0;i<32768;i++){SetBkColor(h,rand
()<<9^rand());x=rand()%1024-20,y=rand()%768-20;for(int n=0;n<5;n++)TextOut(h,x,
y+18*n,s[n],12);}InvalidateRect(0,0,0);sprintf(m,"%f Saitama/s",32768000/float(
timeGetTime()-c));ReleaseDC(0,h);MessageBox(0,m,"SaitamaBench",0);return 0;}
0478デフォルトの名無しさん
NGNGループ回数を10の倍数にして、
sprintfをwsprintfにして、%d.%dみたいに書けば、
sprintfが取れて、stdio.hをインクルードしなくて済むんじゃない?
0479デフォルトの名無しさん
NGNGどうせ機種依存なのだからstdio.hはいらないといってみるテスト
0480デフォルトの名無しさん
NGNGはcppだと思うので、
stdio.hの代わりに
EXTERN_C int sprintf(PSTR,PCSTR,...);
でどうよ。
0481デフォルトの名無しさん
NGNG後はrand()を関数ポインタで置き換えるればいいかな〜
#include <windows.h>
#include <stdio.h>
INT WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,INT){char m[64];LONG c=timeGetTime
();HDC h=GetDC(0);for(int x,y,n,i=32768;i--;)for(SetBkColor(h,rand()<<9^rand())
,x=rand()%1024-20,y=rand()%768-20,n=5;n--;)TextOut(h,x,y+17*n,"\ │ / \0 "
" / ̄\ \0─( ゚∀゚ )─\0 \_/ \0/ │ \ "+n*13,12);InvalidateRect
(0,0,0);sprintf(m,"%f Saitama/s",32768000/float(timeGetTime()-c));ReleaseDC(0,h
);MessageBox(0,m,"SaitamaBench",0);return 0;}
0482458
NGNGやっぱ見栄えとソース量はアンビバレンツなのだろうか…(泣)
ちなみに結果表示の文字に半角カタカナとかを用いるとちょっと縮まりますね(ぉ
0483デフォルトの名無しさん
NGNG0484デフォルトの名無しさん
NGNG11998.535335 Saitama/sダターヨ。
0485デフォルトの名無しさん
NGNG確認はcygwinのg++ Version 2.95.3-5
コンパイルは
g++ saitama.C -mwindows -luser32 -lwinmm -mno-cygwin
でやった。
#include <windows.h>
extern"C"{int rand();int sprintf(char*,char*,...);}INT WINAPI WinMain(HINSTANCE
,HINSTANCE,LPSTR,INT){int x,y,n,j,i=1<<15;LONG c=timeGetTime();char m[i];HDC h=
GetDC(0);for(j=i;i--;)for(SetBkColor(h,rand()<<9^rand()),x=rand()%1024-20,n=5,y
=rand()%768-20;n--;)TextOut(h,x,y+17*n,"\ │ / \0 / ̄\ \0─( ゚∀゚ )"
"─\0 \_/ \0/ │ \ "+n*13,12);InvalidateRect(0,0,0);sprintf(m,"%f "
"埼玉s",j*1e3/(timeGetTime()-c));ReleaseDC(0,h);MessageBox(0,m,"埼玉Bench",0);}
0486458
NGNGVC++6でコンパイルしてみた。
saitama.cpp(3) : error C2057: 定数式が必要です。
saitama.cpp(3) : error C2466: サイズが 0 の配列を割当てまたは宣言しようとしました。
saitama.cpp(3) : error C2133: 'm' : サイズが不明です。
saitama.cpp(7) : warning C4508: 'WinMain' : 関数に戻り値の型が指定されていません。戻り値を void 型と見なします。
cl.exe の実行エラー
がーそΣ( ̄□ ̄;)
0487デフォルトの名無しさん
NGNG0488デフォルトの名無しさん
NGNGするってーと、プログラム本体が
#include <windows.h>
X
で、コンパイルオプション(コマンドライン)が
g++ -DX="extern\"C\"{int rand();int sprintf(char*,char*,...); ..." \
saitama.C -mwindows -luser32 -lwinmm -mno-cygwin
というのはありですか?
0489485
NGNGVC持ってないからチェキ出来ないけどコレでどうよ。
#include <windows.h>
extern"C"{int rand();int sprintf(char*,char*,...);}INT WINAPI WinMain(HINSTANCE
,HINSTANCE,LPSTR,INT){int x,y,n,j,i=1<<15;LONG c=timeGetTime();char m[99];HDC h
=GetDC(0);for(j=i;i--;)for(SetBkColor(h,rand()<<9^rand()),x=rand()%1024-20,n=5,
y=rand()%768-20;n--;)TextOut(h,x,y+17*n,"\ │ / \0 / ̄\ \0─( ゚∀゚ )"
"─\0 \_/ \0/ │ \ "+n*13,12);InvalidateRect(0,0,0);sprintf(m,"%f "
"埼玉s",j*1e3/(timeGetTime()-c));ReleaseDC(0,h);MessageBox(0,m,"埼玉Bench",0);}
0490デフォルトの名無しさん
NGNGワーニング出るけどコンパイルできたよん(VC++6)
25381.874516 埼玉s ですた。
0491480
NGNG#include <windows.h>
EXTERN_C{int rand(),x,y,n,j,i=1<<15;}INT WINAPI WinMain(HMODULE,HMODULE,PSTR,
INT){ULONG k,c=timeGetTime();char m[99];HDC h=GetDC(0);for(j=i;i--;)for(SetBk\
Color(h,rand()<<9^rand()),x=rand()%1024-20,n=5,y=rand()%768-20;n--;)TextOut(h,
x,y+17*n,"\ │ / \0 / ̄\ \0─( ゚∀゚ )─\0 \_/ \0/ │ \ "
+n*13,12);InvalidateRect(0,0,0);k=timeGetTime()-c;wsprintf(m,"%d.%04d 埼玉s",(
j*=1000)/k,j%k*1000/k);ReleaseDC(0,h);MessageBox(0,m,"埼玉Bench",0);return 0;}
0492デフォルトの名無しさん
NGNGバチーリです
0493485
NGNGこれ、VC++でもOK?
#include <windows.h>
EXTERN_C{int rand(),x,y,n,j,i=1<<15;}INT WINAPI WinMain(HMODULE,HMODULE,PSTR,I\
NT){ULONG c=timeGetTime();char m[99];HDC h=GetDC(0);for(j=i;i--;)for(SetBkColor
(h,rand()<<9^rand()),x=rand()%1024-20,n=5,y=rand()%768-20;n--;)TextOut(h,x,y+n*
17,"\ │ / \0 / ̄\ \0─( ゚∀゚ )─\0 \_/ \0/ │ \ "+13*n,
12);InvalidateRect(0,0,0);c=timeGetTime()-c;j*=1000;ReleaseDC(0,h);wsprintf(m,
"%d.%04d saitama/s",j/c,j%c*1000/c);MessageBox(0,m,"SaitamaBench",0);return 0;}
0494デフォルトの名無しさん
NGNGwindows.hがstdlib.hをincludeしているので、randの宣言はやめた。
#include <windows.h>
char*p,m[]="\ │ / / ̄\ ─( ゚∀゚ )─ \_/ / │ \ ";int x
,y,j,i=1<<15;INT NTAPI WinMain(HMODULE,HMODULE,PSTR,INT){ULONG c=timeGetTime();
HDC h=GetDC(0);for(;j++-i;)for(SetBkColor(h,rand()<<9^rand()),x=rand()%1024-20,
y=rand()%768-37,p=m;*p;p+=12)TextOut(h,x,y+=17,p,12);i*=j=1000;InvalidateRect(0
,0,0);c=timeGetTime()-c;wsprintf(m,"%d.%03d saitama/s",i/c,i%c*j/c);ReleaseDC(0
,h);return!MessageBox(0,m,"SaitamaBench",0);}
0495458
NGNG#後はAAに黒い四角が紛れ込むのが問題かなぁ…
0496デフォルトの名無しさん
NGNG↓そこだけ修正したver.
#include <windows.h>
char*p,m[]="\ │ / / ̄\ ─( ゚∀゚ )─ \_/ / │ \ ";int x
,y,j,i=1<<15;INT NTAPI WinMain(HMODULE,HMODULE,PSTR,INT){ULONG c=timeGetTime();
HDC h=GetDC(0);for(;j++-i;)for(SetBkColor(h,rand()<<9^rand()),x=rand()%1024-20,
y=rand()%768-37,p=m;*p;p+=12)TextOut(h,x,y+=17,p,12);i*=j=1000;InvalidateRect(0
,0,0);c=timeGetTime()-c;wsprintf(m,"%d.%03d saitama/s",i/c,i%c*j/c);ReleaseDC(0
,h);return!MessageBox(0,m,"SaitamaBench",0);}
0497デフォルトの名無しさん
NGNG0498デフォルトの名無しさん
NGNG環境および、エラーの発生したと思われる箇所をどうぞ
0499デフォルトの名無しさん
NGNGソース:>>496 環境:VC++6.0 エラー:3行目
0500デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNG俺はWindows持ってないんだけど...
0503デフォルトの名無しさん
NGNG呼び出し規約から、WinMainの引数型は省略できるよー
WinMain(p,q,r,s)〜
0504503
NGNGchar*p,m[]="\ │ / / ̄\ ─( ゚∀゚ )─ \_/ / │ \ ";int x
,y,j,i=1<<15;INT NTAPI WinMain(q,r,s,t){ULONG c=timeGetTime();
HDC h=GetDC(0);for(;j++-i;)for(SetBkColor(h,rand()<<9^rand()),x=rand()%1024-20,
y=rand()%768-37,p=m;*p;p+=12)TextOut(h,x,y+=17,p,12);i*=j=1000;InvalidateRect(0
,0,0);c=timeGetTime()-c;wsprintf(m,"%d.%03d saitama/s",i/c,i%c*j/c);ReleaseDC(0
,h);return!MessageBox(0,m,"SaitamaBench",0);}
>>493
警告でるけどVCもokです
cl saitama.c user32.lib gdi32.lib winmm.lib
0505デフォルトの名無しさん
NGNGtimeGetTimeの代わりに、GetTickCountを使うと、winmm.libが要らなくなる。
0506458
NGNG精度が高いからtimeGetTime使ったけど、
特に細かく計測する必要は無いと考えればGetTickCountでもいいかもしれません。
winmm.libがいらないって言うのはおいしいのでw
0507デフォルトの名無しさん
NGNGextern "C"{extern int rand();}int main(){WindowPtr w;Rect R;short h,v;RGBColor
b={0,0,0},c;int i=65536;InitGraf(&qd.thePort);InitFonts();GetFNum("\pOsaka",
&h);SetRect(&R,0,0,1024,768);InitWindows();w=NewCWindow(0,&R,"\pSaitamaBench",
1,0,(WindowPtr)-1,1,0);SetPort((GrafPtr)w);TextFont(h);for(;i--;){c.red=rand()
*2;c.green=rand()*2;c.blue=rand()*2;h=(rand()>>5)-11;v=3*(rand()>>7);MoveTo(h,
v);SetRect(&R,h-2,v-11,h+48,v+2);RGBForeColor(&c);PaintRect(&R);RGBForeColor(
&b);DrawString("\pさいたま");}return 0;}
CW7、MacOS9.2で確認。
ベンチマークついてないし、AAも出てこないのでsage。
0509デフォルトの名無しさん
NGNGCW持ってません。
MPWでもコンパイルできるのかな、
使ったことないけど(w
0510デフォルトの名無しさん
NGNGてかObject-Cで書いてくだされ(笑
0511デフォルトの名無しさん
NGNGObjective-Cか。iveがたらなんだか。。(´・ω・`)
0512デフォルトの名無しさん
NGNG過去の7行未達コードでも上げれば?
0513デフォルトの名無しさん
NGNGexec S euc sjis
exec E sjis euc
#include<stdio.h>
int x=256,c,d;main(e,v)char**v;{FILE*r=fopen(v[2],"rb"),*w=fopen(v[3],"wb");for
(e=*v[1]-83;~(c=getc(r));c&&putc(c,w))c=c>>7?e?c-161U>62?d=getc(r),c>249?d|=c*x
,c=d%x,d-=d>64091?3356+(c<92?67:c-128U<28):c>73?c-85U>2?30837+(c-84?c-91?(c>83?
c-88?98-c:0:40)-1447:0:21):2907:2897,c=d/x,d%=x:0,(128|c+c+31+d/159)*x+d+(d>158
?2:97-d/128):c+36352:(d=getc(r),142-c?d-=c&1?97-d/224:2,((c-1)/2+49+c/223*64)*x
+d:d):c-13?10-c|e?c:3338:0,c/x&&putc(c/x,w);fclose(r);fclose(w);return 0;}
0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNG不可能ならu-adpcmでもいいから.
0516デフォルトの名無しさん
NGNG0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNGお前が作れ
0519デフォルトの名無しさん
NGNGもしできたら俺の処女をあげるよ。
0520デフォルトの名無しさん
NGNG実用的な7行(ホントに使うやつはいないと思おうが)を書いた>>513の流れを汲んで
次はShiftJIS→UniCode(エンコードは何でもOK)だろ!!
0521デフォルトの名無しさん
NGNG0522520
NGNG0523デフォルトの名無しさん
NGNG臭そう
0524デフォルトの名無しさん
NGNG俺が綺麗に洗ってやるよ
0525デフォルトの名無しさん
NGNGおれは1Gのノート(XGA)で 9309.303 saitama/sです。
0526デフォルトの名無しさん
NGNG0527デフォルトの名無しさん
NGNGint t,m,b[2];int w(int b){int r=0,a[]={7,56,73,84,146,273,292,448};for(t=0;t<
8;t++)if((b&a[t])==a[t])r=1;return r;}int s(int l,int p){int i,v,c=0,n=-1;for
(i=1;i<512;i*=2)if(!(i&(b[0]|b[1]))){if(w(b[p]|i))v=1;else{b[p]|=i;v=-s(l+1,!
p);b[p]^=i;}c=1;if(v>n){m=l?m:i;n=v;}}return c?n:0;}void d(){for(t=0;t<9;t++)
{putchar((b[0]&(1<<t))?'X':(b[1]&(1<<t))?'O':'-');if(t%3==2)printf("\n");}}
int main(){while(1){d();scanf("%d",&t);b[0]|=(1<<t);s(0,1);b[1]|=m;}return 0;}
○×作ってみた。0から8までを入力します。
チェックしてないので既に置いてある所は置かないでください。
0528デフォルトの名無しさん
NGNGUNICODEはテーブル持ってないと変換できなかったと思う。
(WindowsAPIもテーブル使ってたはず。記憶違いだったらすまん)
ずらして変換できるならJISだが、2番煎じだなぁ
あ、>>513にS-JIS<=>EUC<=>JIS変換で7行、時間があればやってみようかな
0529!527
NGNG省略したので、-Wallで怒られるようになってしまいましたが。
あと、終局面は表示されませぬ。。
#include <stdio.h>
int t,m,r,b[2],a[]={7,56,73,84,146,273,292,448};w(int b){for(r=t=0;t<8;t++)r+=
(b&a[t])==a[t];return r;}s(int l,int p){int i=1,v,c=0,n=-1;for(;i<512;i*=2)if(
!(i&(*b|b[1]))){if(w(b[p]|i))v=1;else{b[p]|=i;v=-s(l+1,!p);b[p]^=i;}c=1;if(v>n
){m=l?m:i;n=v;}}return c?n:0;}main(){for(;!r;scanf("%d",&t),r=w(*b|=1<<t)?1:w(
(s(0,1),b[1]|=m))?5:(*b|b[1])==511?10:0)for(t=0;t<9;t++)putchar(*b&1<<t?'X':b[
1]&1<<t?'O':'-'),r=t%3&2?puts(""):0;puts("\0win\0lose\0draw"+r);return 0;}
0530デフォルトの名無しさん
NGNGint w[7]={1,-1,11,-11},s,d=1,b[121],u=4,y,i,m,g,e,k;r(a,c,f){int z,i=4;b[a]=f?0
:~b[a];for(s++;i--;b[z]-c||r(z,c,f))d+=!b[z=a+w[i]];b[a]^=-!f;}main(z){for(;d;)
{for(;m=z=i++<120;printf("%.2s","・○● \n"+(b[i]=y-10?y&&i-11U<99?b[i]:6:8)))
y=i%11;for(;i--;g-4&&k>m?m=k,z=i:0)for(k=g=0,e=4*!b[i];e--;!b[y]?k+=10:g++)b[y=
i+w[e]]==u?r(y,1,d=s=0),k+=s*(d-1U<3?d-3?300:20:0):0;if(u<4||(scanf("%d%d",&z,&
y),!b[z+=y*11]||puts("Err"))?d=z:0){for(i=4;i--;b[z]=u^6)b[k=z+w[i]]-u||(r(k,u,
d=s=0),d||r(k,u,1,w[2+u]+=s));r(z,u^=6,d=0);}}printf("ps\n%d,%d\n",w[6],w[4]);}
0531デフォルトの名無しさん
NGNG元が13行だったのを考えるとすごいね。
ただ、途中までうまく動いているようだけど、人間が囲んだ石が取れないで
残ったままになったりする。もともとのソースのバグかもしれんけど。
それとあまりにも弱すぎて打っていて面白くないなぁ。
オセロはまだ楽しめたけど。
ルールどおりはともかく囲碁は7行では難しすぎるかも。
0532デフォルトの名無しさん
NGNGアマ1段に勝てませんので・・・
0533デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1036013915/l50
0534デフォルトの名無しさん
NGNGごめんなさいm(_ _)mごめんなさいm(_ _)m
0535デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNG彼氏募集中です。
年齢は20〜25ぐらいの人がいいなぁと思っています。
彼女募集中な人は私に電話下さい!
電話番号は
09084600360
だよ。
いたずら電話はやめてね。
電話待ってま〜す。
0537デフォルトの名無しさん
NGNG繋がりませんが。
0538デフォルトの名無しさん
NGNG七行に縮めてから出直しなさい。
0539デフォルトの名無しさん
NGNG>>533
作ってみたら6行で出来た。
今2chに書き込めないから後で書くYO!
0540デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1028570486/649-654n
0541デフォルトの名無しさん
NGNGつーか、まず自分で縮めてみろ
0542539
NGNG#include<stdio.h>
int z=65536;int main(int h,char**g){char c,s[z],m[z],*p=m,*S=s;FILE*f;s[fread(s
,1,z-1,f=fopen(*++g,"r"))]=0;fclose(f);while(z)m[--z]=0;for(;;){if(!(c=*S++))
return 0;*p+=c-43?c-45?0:-1:1;p+=c-60?c-62?0:1:-1;if(c==46)putchar(*p);if(c==44
)*p=getchar();if(c==91)if(!*p)while(*S++-93);if(c==93)if(*p)while(*S-91)S--;}}
実行したいファイルを引数にして実行汁。
0543デフォルトの名無しさん
NGNG#include<stdio.h>
char c,s[65536],m[65536],*p=m,*S=s;main(h,g)char**g;{for(fread(s,1,65535,fopen(
*++g,"r"));c=*S++;){*p+=c-45?c==43:-1;p+=c-60?c==62:-1;c-46||putchar(*p);for(c-
44||(*p=getchar());c==91&&!*p&&*S++-93;);for(;c==93&&*p&&*S-91;)S--;}}
0544デフォルトの名無しさん
NGNG君等は神
0545デフォルトの名無しさん
NGNG間違っているっす。
[は対応する]に対してジャンプします。
つまり、入れ子になるって事もあると言うこと。
入れ子になったときは、入れ子の対応する括弧に飛びます…。
++++[->++++[->+++<]<]>>.
これを実行すれば、0が印字されるはずなんですが、542のではエが印字されてしまう…。
あと、バイト配列は30000だそうです。
たぶん、正式な言語仕様と思われるところを貼っておきます。
では、がんばって〜〜応援してま〜〜す。
http://www.muppetlabs.com/~breadbox/bf/
0546デフォルトの名無しさん
NGNG#include<stdio.h>
char c,s[65536],m[65536],*p=m,*S=s;main(h,g)char**g;{for(fread(s,1,65535,fopen(
*++g,"r"));c=*S++;){*p+=c-45?c==43:-1;p+=c-60?c==62:-1;c-46||putchar(*p);for(h=
c-44||(*p=getchar());c==91&&!*p&&*S++-93||--h;)h+=S[-1]==91;for(h=0;c==93&&*p&&
(*S-91||--h);)h+=93==*S--;}}
スマンコ
0548539
NGNG/*ちょっと行儀悪くして5行*/
#include<stdio.h>
int z=3e4;int L(int c){return c-2?!c:-1;}int main(int h,char**g){char c,m[z*2],
*p=m,*S=p+z,l;S[fread(S,1,z-1,fopen(g[1],"r"))]=0;while(z)m[--z]=0;for(;;){if(!
(c=*S++))exit(0);l=0;c-46||putchar(*p);if(c==91)if(!*p)while(l-=L(*++S-91));*(p
-=L(c-60))+=L(c-43);c-44||(*p=getchar());if(c==93)if(*p)while(l-=L(*--S-91));}}
/*ファイル名を'a'に固定で6行*/
#include<stdio.h>
int z=3e4;int L(int c){return c-2?!c:-1;}int main(void){char c,m[z*2],*p=m,*S=p
+z,l;FILE*f;S[fread(S,1,z-1,f=fopen("a","r"))]=0;while(z)m[--z]=0;fclose(f);for
(;;){l=0;if(!(c=*S++))exit(0);c-46||putchar(*p);*(p-=L(c-60))+=L(c-43);c-44||(*
p=getchar());if(c==91)if(!*p)while(l-=L(*++S-91));if(c==93)if(*p)while(l-=L(*--
S-91));}}
>>546
スゲー
0549デフォルトの名無しさん
NGNGコッホ曲線ってなに?ってすれがあったので、なんとなく作成。
#include <windows.h>
HDC h;void k(float a,float b,float i,float j,int l){SetPixel(h,a,b,255);if(!
l--)return;float w=i-a,m=j-b,c=a+w/3,d=b+m/3,n=.372678,e=a+w/2+m*n,f=b+m/2-w*n
,g=i-w/3,h=j-m/3;k(a,b,c,d,l);k(c,d,e,f,l);k(e,f,g,h,l);k(g,h,i,j,l);}
INT WinMain(HMODULE i,HMODULE,PSTR,INT){WNDCLASS w={67,DefWindowProc,0,0,i,0,0
,0,0,"a"};int a=513;HWND g;RegisterClass(&w);h=GetDC(g=CreateWindow("a","コッホ",
a<<19,0,0,a,a,0,0,i,0));k(0,a/2,a,a/2,8);ReleaseDC(0,h);Sleep(2000);return 0;}
055060cm浮き上がるストレート
NGNGWinMainのはどうやって起動すればよいのでしょう。
C言語にコピペしてやるとmain()が未解決と出てしまいますし。
拡張子をc++にしても同じですし。
C言語しか知りませんので、お教えください。
0551デフォルトの名無しさん
NGNG#include <windows.h>
HDC h;HWND g;int l=7,a=513;void k(int a,int b,int i,int j){SetPixel(h,a/9,b/9,
255);if(l){l--;int w=i-a,m=j-b,c=a+w/3,d=b+m/3,e=a+w/2+m*.37,f=b+m/2-w*.37,g=i
-w/3,h=j-m/3;k(a,b,c,d);k(c,d,e,f);k(e,f,g,h);k(g,h,i,j);l++;}}WinMain(HMODULE
i,HMODULE,PSTR,INT){MSG m;WNDCLASS w={67,DefWindowProc,0,0,i,0,0,0,0,"a"};
RegisterClass(&w);for(h=GetDC(g=CreateWindow("a","コッホ",a<<19,0,0,a,a,0,0,i,0))
;~GetMessage(&m,g,0,0);DispatchMessage(&m))k(0,a*5,a*9,a*5);ReleaseDC(0,h);}
>>550
>cl k.cpp user32.lib gdi32.lib
でどう?
0552デフォルトの名無しさん
NGNGbccだったら
bcc32 -tW k.cpp
0553539
NGNG#include<stdio.h>
int L(int c){return c-2?!c:-1;}int main(int z,char**g){char c,m[60001],*p=m,*S=
p+30000;FILE*f=fopen(g[1],"r");S[fread(S,1,z=3e4,f)]=0;while(z)m[--z]=0;while(c
=*S++){while(c==91&!*p&&(z-=L(*++S-91)));*(p-=L(c-60))+=L(c-43);while(c==93&&*p
&&(z-=L(*--S-91)));c-46||putchar(*p);c-44||(*p=getchar());}return fclose(f);}
055460cm浮き上がるストレート
NGNG使っているのはVisualC++6.0です。bccとは何でしょう。
上げてもらったファイル名を、プロジェクト→設定→リンクさせればよいのでしょうか。
user32.lib、gdi32.libはすでに入っているのですが
cl k.cppだと開けなく、bcc32 -tW k.cppだと開けない+tWは無効となります。
プロジェクトオプションのところにbcc32 -tW k.cppはありました。
検索して、エントリポイントにWinMainを書く、#pragmaでやるなどやりましたが
ダメでした。ヒントっぽいのがありましたが、よく解りません、下に書きます。
「> 「外部シンボル "_main" は未解決です」と言われます。
> 何かライブラリをリンクしなければいけないということですよね?
そうなんですが、そもそもプロジェクトを作成するとき、
その種類として「Win32アプリケーション」を選んでいますか?
メイン関数としてWinMain()を使う場合、このプロジェクトを選択してください。
そうすればそれに必要な基本設定は自動的に行なわれるはずです。
> VC++でライブラリをリンクするにはどうしたら良いんでしょうか?
メニューバーの[プロジェクト]→[設定]すると、
「プロジェクトの設定」というダイアログが現れます。
そのダイアログの[リンク]の項目を選択し、[カテゴリ]として[一般]を選択します。
そうすると[オブジェクト/ライブラリモジュール]という設定項目が現れるので、
そこにリンクしたいライブラリ名を追加してください。
なお、インクルードファイルやライブラリファイルの検索ディレクトリの設定は、
メニューバーの[ツール]→[オプション]として現れるダイアログの[ディレクトリ]で設定画面へ進めます。
この設定は統合環境の設定であって、プロジェクト単位のの設定ではありません。」
と、書いてありました。cじゃなくc++の方なのですか?c++の法は殆解りません。
ただメモ帳からc++ファイルを作りテキストにコードをコピペして、
リンク操作などをして、実行しました。
スレ違いで申し訳ないのですが、解決方法をお教えください。
0555デフォルトの名無しさん
NGNGそういう初心者質問は別のスレでお願い…
055660cm浮き上がるストレート
NGNG解りました。逝ってきます。
0557デフォルトの名無しさん
NGNG#include <stdio.h>
int main(int ac, char * av[] ){char tbl[]="><+-.,[]", *to[]={"++p;","--p;",
"++*p;", "--*p;", "putchar(*p);", "*p = getchar();", "while (*p) {", "}", } ;
if ( ac != 2 ) return 1 ;
puts( "#include <stdio.h>\nint main(){\nstatic char buff[30000],*p=buff;" ) ;
for (char * p=av[1];*p!='\0';p++)for (int i=0;tbl[i]!='\0';i++)if (*p==tbl[i])
{ puts( to[i] ) ; break ; } puts( "return 0 ;\n}" ) ; return 0 ; }
0558539
NGNG圧縮。
#include <stdio.h>
int main(int c,char**v){char*o[]={"++p;","--p;","++*p;","--*p;","putchar(*p);",
"*p=getchar();","while(*p){", "}",""},i;FILE*f;if(c!=2)return 1;f=fopen(v[1],
"r");puts("#include<stdio.h>\nint main(void){char b[30000],*p=b;");for(c=fgetc(
f);c-EOF;c=fgetc(f)){for(i=0;"><+-.,[]"[i]!=c&&i<8;i++);puts(o[i]);}puts("retu"
"rn 0;}");return fclose(f);}
0559539
NGNG#include <stdio.h>
int main(int c,char**v){char*o[]={"++p;","--p;","++*p;","--*p;","putchar(*p);",
"*p=getchar();","while(*p){", "}",""},i;FILE*f;if(c!=2)return 1;f=fopen(v[1],
"r");puts("#include<stdio.h>\nint main(void){static char b[30000],*p=b;");for(c
=fgetc(f);c-EOF;c=fgetc(f)){for(i=0;"><+-.,[]"[i]!=c&&i<8;i++);puts(o[i]);}puts
("return 0;}");return fclose(f);}
0560539
NGNG#include <stdio.h>
int system(),i;int main(int c,char**v){FILE*f=fopen(*++v,"r"),*g=fopen("!.c","w"
);char s[99],*o[]={"putchar(*p);","*p=getchar();","while(*p){","}","++p;","--p;"
,"++*p;","--*p;"};fputs("#include<stdio.h>\nint main(void){static int b[30000],"
"*p=b;",g);for(;f&&(c=fgetc(f))-EOF;)for(i=8;0<i--;)fputs(".,[]><+-"[i]-c?"":o[i
],g);fputs("return 0;}",g);fclose(f);fclose(g);sprintf(s,"gcc !.c -o%s",*++v);
return system(s);}
0561デフォルトの名無しさん
NGNGに出ていた二段階ソート法、現在8行。
#include <stdio.h>
void*calloc();char*s;FILE*f;int*A,g,i,j,*N,p,L[256],m[256],t[256],S=sizeof(int)
;C(a,b)const void*a,*b;{int c=*(int*)a,d=*(int*)b,r=strncmp(s+c,s+d,g-c<d?d:c);
return r?r:d-c;}main(l,v)char**v;{fseek(f=fopen(v[1],"rb"),0,2);g=ftell(f)+1;
rewind(f);for(fread(s=calloc(g,1),1,g-1,f);i<256;)L[i++]=-1;for(N=calloc(i=g,S)
;i--;)s[i]<=s[i+1]?N[i]=L[s[i]],L[s[i]]=i:m[s[i]]++;for(A=calloc(g,S);j<256;
qsort(A+i,p-i,S,C),t[j]=i-m[j],j++)for(p=i=m[j]+p,l=L[j];l>=0;l=N[l])A[p++]=l;
for(i=j=0;++j<g;A[t[s[A[i]-1]]++]=A[i++]-1)A[i]?0:i++;}
0562デフォルトの名無しさん
NGNG0563!561
NGNG勝手に短縮。8行のままだけど。
#include <stdio.h>
void*calloc();char*s;FILE*f;int*A,g,i,j=256,*N,p,L[256],m[256],t[256],S=sizeof(
int);C(a,b)const void*a,*b;{int c=*(int*)a,d=*(int*)b,r=strncmp(s+c,s+d,g-c<d?d
:c);return r?r:d-c;}main(l,v)char**v;{for(f=fopen(v[1],"rb");g++,getc(f)>=0;);
for(rewind(f),fread(s=calloc(i=g,S*3),1,g-1,f);j;)L[--j]=-1;for(N=(int*)s+g;i--
;l<=s[i+1]?N[i]=L[l],L[l]=i:m[l]++)l=s[i];for(A=N+g;j<256;qsort(A+i,p-i,S,C),t[
j]=i-m[j],j++)for(p=i=m[j]+p,l=L[j];l>=0;l=N[l])A[p++]=l;for(i=0;--g;A[t[s[A[i]
-1]]++]=A[i++]-1)i+=!A[i];}
何をやってるコードなのかは理解しておりませぬ。なので、あってるかも
未検証。警告もでるし。それにしても、最初から縮めることを考えて
作られたのでないのはなかなか縮まりませんな。
0564デフォルトの名無しさん
NGNG二段階ソート法は、BWTを行う高速化法の一つですね。
正確にはsuffix arrayを作成する手法です。
0566デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1028570486/649-654n
の 540 変換と MTF の部分のみ。微妙に違うかもしれないけど...
#include <stdio.h> // エンコーダ
typedef unsigned char uc;void main(int c, char **v){const int M=256,B=M<<8;uc*
z[M],s[B],d[B],*p,m[M],*q,t;int i=0,r,f[M];FILE*fi=fopen(*++v,"rb"),*fo=fopen(
*++v,"wb");for(;i<M;i++)m[i]=i;while(r=fread(s,1,B,fi)){putc(*s,fo);if(1==r)b\
reak;for(i=M;i>0;f[--i]=0);for(;i<r;f[s[i++]]++);*z=d;for(i=0;i<255;i++)z[i+1]
=z[i]+f[i];for(i=1;i<r;i++)*z[s[i-1]]++=s[i];*z[s[i-1]]=*s;for(p=d;p<d+r;p++){
q=m;if(*p-*q){for(t=*q;*p-*++q;t^=*q,*q^=t,t^=*q);*q=t;}putc(q-m,fo);*m=*p;}}}
#include <stdio.h> // デコーダ
typedef unsigned char uc;void main(int c, char **v){const int M=256,B=M<<8;uc*
z[M],s[B],*p,m[M],*q;int i=0,r,f[M],k,h;FILE*fi=fopen(*++v,"rb"),*fo=fopen(*++
v,"wb");for(;i<M;i++)m[i]=i;while((h=getc(fi))-EOF){putc(h,fo);for(r=0;r<B&&(k
=getc(fi))-EOF;r++){s[r]=m[k];for(q=m+k;q-->m;*(q+1)=*q);*m=s[r];}for(i=M;i>0;
f[--i]=0);for(;i<r;f[s[i++]]++);*z=s;for(i=0;i<255;i++)z[i+1]=z[i]+f[i];for(;0
<--r;)putc(k=*z[h]++,fo),h=k;}}
typedef とか const int のあたりは不要な気もするけど、今さら直すのも面倒なんで
そのまま。SSS 符号化/復号化の実装はちょっとムリっぽかったのでパス。
0567デフォルトの名無しさん
NGNG0568デフォルトの名無しさん
NGNGふと思った。符号化・復号をまとめられるんじゃないか、と。
でも、忙しくて自分じゃできないYo・・・
0569デフォルトの名無しさん
NGNG0570デフォルトの名無しさん
NGNG実際のTVに近づけるために横方向の周期性とか、そういったのを持たせられないかなぁ。
0571デフォルトの名無しさん
NGNG0572デフォルトの名無しさん
NGNG0573デフォルトの名無しさん
NGNG0574依頼だ
NGNGttp://mcgi2.nifty.ne.jp/cgi-bin/thread.cgi?user_id=VZV05226&disp_no=1082&log_no=500&msg_per_page=10&def=10
0575デフォルトの名無しさん
NGNGおまいがやってみませんか?
0576これ7行にしてください
NGNG#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
int main(int argc,char *argv[]){
FILE *fp;char str[1024], *fname=argv[1];int i,count=0,c;float sp;
time_t t1, t2;fp = fopen( fname , "r");
if(fp == NULL){printf("fopen失敗\n");exit(-1);}
time(&t1);
while(fgets(str,sizeof(str), fp) != NULL){
i=0;printf("%s",str);
while(1){
if(str[i] == '\n'){printf("\n");break;}
while(kbhit() == 0){}
c = getch();
if(c == str[i]){
printf("%c",c);
}else{ continue;}
i++;count++;
}
}
time(&t2);
fclose(fp);
sp = (float)count/(float)(t2-t1);
printf("タイプ数/秒=%f\n", sp);
return 0;
}
0577デフォルトの名無しさん
NGNG0578デフォルトの名無しさん
NGNG#include <stdio.h>
extern int getch();extern long time(long*);int main(int c,char**v){float x=0;
FILE*f=fopen(v[1],"r");long t,u;char*p,s[1024];if(f){for(time(&t);fgets(s,1024,
f);puts("")){printf(p=s);while(*p-10){c=getch();if(c==*p){putchar(c);p++;x++;}}
}x/=time(&u)-t;fclose(f);printf("タイプ数/秒=%f\n",x);}else puts("fopen失敗")
;return f?-1:0;}
0579578
NGNG;return f?0:-1;}
0580デフォルトの名無しさん
NGNG0581デフォルトの名無しさん
NGNG0582デフォルトの名無しさん
NGNG( ´ー`)y━~ ちっとは考えろやゴルァ
0583デフォルトの名無しさん
NGNG0584581
NGNG#include <stdio.h>
#include <conio.h>
#include <time.h>
int main(int c,char**v){float x=0;FILE*f=fopen(v[1],"r");long t,u;char*p,s
[1024];if(f){for(time(&t);fgets(s,1024,f);puts("")){printf(p=s);while(*p-10){
c=getch();if(c==*p){putchar(c);p++;x++;}}}x/=time(&u)-t;fclose(f);printf(
"%ftype/sec\n",x);}else puts("fopen失敗");;return f?0:-1;}
0585デフォルトの名無しさん
NGNGC++の場合は1行目を
extern "C" {int getch();long time(long*);}int main(int c,char**v){float x=0;
0587デフォルトの名無しさん
NGNG#include <stdio.h>
int getch();long time(long*);int main(int c,char**v){float x=0;long t,u;char*p,
s[1024];FILE*f=fopen(v[1],"r");if(f){for(time(&t);fgets(s,1024,f);puts("")){p=s
;printf(s);while(*p-10){c=getch();if(c==*p){putchar(*p++);x++;}}}x/=time(&u)-t;
fclose(f);printf("タイプ数/秒=%f\n",x);}else puts("fopen失敗");return -!f;}
0588デフォルトの名無しさん
NGNG#include<stdio.h>
int main(void){char k[]="A52A2245332A252B435B2222A2B2A2A23A2C32A3B5B2222A52B435"
"32A2352C23A52A2246D2A3533B35K2A4D22A3224A45D2C25B2A32A5D2C25D4A26C4A1",*p=k;
int i,c,b=1;while(*p){c=0;for(i=0;i<8;i++){if(*p=='0'){if(!*++p)break;b=!b;}
c=(c<<1)+b;if((*p)--=='A')*p='0';if(*p >= 'A')b=!b;}if(c)putchar(c);}getchar();
return 0;}
0589デフォルトの名無しさん
NGNG誤爆しました。
0590デフォルトの名無しさん
NGNG7行ドラクエってのを見たいんですが
0591デフォルトの名無しさん
NGNG圧縮しますた。
#include<stdio.h>
int main(void){char i,k[]="A52A2245332A252B435B2222A2B2A2A23A2C32A3B5B2222A52B"
"43532A2352C23A52A2246D2A3533B35K2A4D22A3224A45D2C25B2A32A5D2C25D4A26C4A1",*p=k
;int c,b=1;while(*p){for(c=i=0;i<8;i++){if(*p==48){if(!*++p)break;b=!b;}c+=c+b;
65-(*p)--||(*p=48);*p>=65&&(b=!b);}c&&putchar(c);}getchar();return 0;}
0592590
NGNG0593デフォルトの名無しさん
NGNGドラクエは7行になっていない。
現在dat落ちしている7行スレ2にあるわけだから、
それをみればいいわけで・・・
0595デフォルトの名無しさん
NGNGint a,b,c,d,e,f,g,h,i,j,k,l,m,n,z[6],r,x[9],y[9];char o[][9]={"アリーナ","クリフト"
,"ブライ","スライム","マーマン","トロル","オーク","キメラ","竜王","攻撃","防御","イオ","ホイミ","ヒャド"
,"who?","唱えた","ダメージ","回復","死んだ","敵出現","勝利","クリア","全滅","した",
"に","の","は","を","▼","\x1b[2J"," ","MP不足","\x1b[0m","\x1b[31m",
"\x1b[32m","\x1b[>5h"},q[]="00533",
p[]="vlb:XvlXvvlb:XvlXv:?B06060?:?B06060?SI?5?SNXSA?<2?2:?D234040302";
main(){srand(time(0));S(35);for(r=0;r<=3;r++){S(19);S(28);for(b=3;b<6;b++)
{p[r+b]=p[r+b+9];p[r+b+18]=p[r+b+27];}for(l=0;l/10!=3;){for(b=0;b<3;b++)
{if(p[b]!=48){N();S(b);C(63);C(10);for(c=1;c<4;c++){D(c);C(58);S(8+c+c/3*b);
C(10);}d=getch()-49;x[b]=d+d/2*b;if(d==0||(d==2&&b>0)){C(10);S(14);C(10);
for(c=1;c<4;c++){e=x[b]==3?c-1:r+c+2;if(p[e]!=48){D(c);C(58);S(e);C(10);}}
e=getch()-49;y[b]=x[b]==3?e:r+3+e;}}S(29);}for(b=r+3;b<r+6;b+=p[y[b]]!=48?1:0)
{d=x[b]=rand()%2==0?0:p[b+54]-48;e=rand()%3;y[b]=d==3?r+3+e:e;}for(n=0;n<6;
n++){z[n]=6;d=rand()%6;z[n]=d>2?r+d:d;for(b=n-1;b>-1;b--)n-=z[n]==z[b]?1:0;}
0596デフォルトの名無しさん
NGNG(S(25),S(9)):d==1?(S(26),S(10),S(23)):(S(26),S(d+9),S(27),S(15));C(7);C(10);
if(d<2||p[b+18]!=48){p[b+18]-=q[d]-48;e=y[b];f=p[b+36]-p[e+45];f=d==0?f<1?2:f:
d==2?20:d==4?30:0;if(d==2)for(g=b<=2?r+3:0,h=0;h<3;h++)Z(g+h);else Z(e);
for(k=0,l=0;k<r+6;k+=k==2?r+1:1)l+=p[k]==48?k<3?1:10:0;if(l%10==3){S(22);
S(28);exit(1);}if(l/10==3){S(20);S(23);}}else S(31);S(28);}}}}S(21);S(28);}
S(a){printf("%s",o[a]);a==28?(getch(),S(29)):a;}P(a){printf("%3d",p[a]-48);}
D(a){printf("%d",a);}C(a){printf("%c",a);}N(){for(a=0;a<3;a++){S(a);P(a);
P(a+18);C(10);}for(a=3;a<6;a++){S(p[a+r]!=48?a+r:30);C(10);}C(10);}Z(a){
if(p[a]!=48&&d!=1){S(a);if(d%2==0){S(24);m=f*(rand()%4+8)/10;p[a]-=m/=x[a]==1
?2:1;D(m);S(16);p[a]<49?(p[a]=48,C(10),S(18)):a;}if(d==3){S(26);S(17);S(23);
p[a]=p[a+9];}C(10);S(32);for(c=0,m=0;c<3;c++)m+=p[c]<49?4:p[c]<64?1:0;m>3?
S(33):m>0?S(34):m;}}
俺も好きだなあ。コピペして倉庫に放り込んであった。
0597デフォルトの名無しさん
NGNGバグねーか?
コマンド入力で Enter 押すと MP 増える。
MP が 0 でなければ、足りなくてもマイナスでも呪文が使える。
0598デフォルトの名無しさん
NGNGデバッグしてください。
マジ願いです。
0599デフォルトの名無しさん
NGNG見てみた。
とりあえず、この 2 つ。
// d=getch()-49;
for(d=3;d<0|d>2;d=getch()-49);
// e=getch()-49;
for(e=3;e<0|e>2;e=getch()-49);
これで 1〜3 以外を入力できなくなるので MP が変になる心配は無くなる。
MP 判定を直す必要は無いが、↓ で直す事ができる。
// if(d<2||p[b+18]!=48)
if(d<2||p[b+18]>=q[d])
しかし・・・もはやマシン語を解析しているかのようだ。
ワーク領域が p[] なんだもんなあ・・・。
0600599
NGNG0601デフォルトの名無しさん
NGNG0602デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1033220509/l50
ひさびさに存在を思い出した。
7行になるめどがつくまでは釣りスレでじっくり遊ぶのがいいかもだ。
0603デフォルトの名無しさん
NGNGbccでコンパイル通らないんだけど、何かインクルードしなきゃだめ?
0604デフォルトの名無しさん
NGNG( ´∀`)・ω・) ゚Д゚)・∀・) ̄ー ̄)´_ゝ`) Σ(´�D`lll)
0605デフォルトの名無しさん
NGNGこれ何のソースだかわかってる?
0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNG0608デフォルトの名無しさん
NGNG0609デフォルトの名無しさん
NGNGstdlib.h
math.h
だけでいいはず。
0610デフォルトの名無しさん
NGNG俺は入れてないから「もうダメポ」に。
0611デフォルトの名無しさん
NGNG595-596 のソースにか?
要らんだろ。
NEC98 でなければ ANSI.SYS は要る。
0612デフォルトの名無しさん
NGNG0613デフォルトの名無しさん
NGNGbccなら>>609つけたほうがいいだろ。
0614デフォルトの名無しさん
NGNG0615デフォルトの名無しさん
NGNG0616デフォルトの名無しさん
NGNGありがとうございます。
0617デフォルトの名無しさん
NGNG0618デフォルトの名無しさん
NGNG0619デフォルトの名無しさん
NGNG0620デフォルトの名無しさん
NGNG0621デフォルトの名無しさん
NGNGEND
0622デフォルトの名無しさん
NGNG0623デフォルトの名無しさん
NGNGバカ発見
0624デフォルトの名無しさん
NGNGバカ発見厨カコワルイ
0625デフォルトの名無しさん
NGNGお前、>>623が何故バカと言ったのか分かってないだろ?>>624=>>622か?
0626デフォルトの名無しさん
NGNGマジにわからんから教えてくれ。
実行しても何も起こらないとか、そういう事じゃないよな?
0627デフォルトの名無しさん
NGNG0628デフォルトの名無しさん
NGNG0629デフォルトの名無しさん
NGNGプ 七行プログラムも書けないくせに
時代じゃねーよ 才能だボケ!
0630デフォルトの名無しさん
NGNG0631デフォルトの名無しさん
NGNG〃 nullpo
0632デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/ ←>>631
(_フ彡 /
0633デフォルトの名無しさん
NGNGこのAAなんかおかしいよな。
0634デフォルトの名無しさん
NGNG// Usage:
//> javac P.java
// > java P [Host Name] [Start Port] [End Port]
class P{static void main(String[]a){int p=Integer.parseInt(a[1])-1;while(++p<=
Integer.parseInt(a[2])){try{new java.net.Socket(a[0],p);System.out.println(p);
}catch(Exception e){}}}}
0635634
NGNG例:ポート80があいていた場合。
--------------------------------------------------
C\test>java P 127.0.0.1 21 110
80
C\test>
--------------------------------------------------
みたいな感じ。わかりにくくてスマソ。
0636デフォルトの名無しさん
NGNG0637デフォルトの名無しさん
NGNG0638デフォルトの名無しさん
NGNG0639デフォルトの名無しさん
NGNG0640デフォルトの名無しさん
NGNG0641デフォルトの名無しさん
NGNG最近はネタも少ない上に、食いつきも悪いからね・・・。
part1の前半を第一のピークとすれば、
part1の後半からpart2の中盤くらいが第2のピークで。
part3になると、出足からけちがついていてちょっと落ち目だね。
0642デフォルトの名無しさん
NGNG0643デフォルトの名無しさん
NGNG0644デフォルトの名無しさん
NGNG0645デフォルトの名無しさん
NGNG0646デフォルトの名無しさん
NGNG0647デフォルトの名無しさん
NGNG0648デフォルトの名無しさん
NGNG0649634
NGNG0650デフォルトの名無しさん
NGNGいや、それはそれですごいと思うよ。
ただ7行スレの場合、7行以上のものを縮めるのが楽しい人も多いわけで。
0651デフォルトの名無しさん
NGNG> 俺っていったい・・・
大したやつだ!
0652デフォルトの名無しさん
NGNG0653デフォルトの名無しさん
NGNG0654634
NGNG0655デフォルトの名無しさん
NGNGhagesiku同意
0656デフォルトの名無しさん
NGNG0657デフォルトの名無しさん
NGNG0658デフォルトの名無しさん
NGNGttp://www.isl.cs.gunma-u.ac.jp/~shingo/make/7line/7line.html
調子に乗りすぎ。駄作ばっかり並んでるし。
オセロの作者は、オセロだけではなくて他に色々高度なネタを披露しているけど、
こいつはテトリスだけだよな。自己満足のページ作るくらいなら、他の人の
作品もまとめた方がなんぼかマシだよ。
しかしあのテトリスは凄かったが。
0659デフォルトの名無しさん
NGNG自己満足なんだから放っておけ
しかし自己満足だとしても、オセロの作者のページなんかがあれば見てみたいな
0660デフォルトの名無しさん
NGNG何悔しがってんの?だっせー。
0661デフォルトの名無しさん
NGNGなんか「俺にはファンがいる」とか自分で言ってるのが痛いな
0663デフォルトの名無しさん
NGNG加えて最近の駄作続きが拍車をかけたのか…
# DQって何がすごいの?
0664656
NGNGでも、れを摘み取ってはいけないと思うのだけど、どうよ。
0665デフォルトの名無しさん
NGNG0666Sタソファソ
NGNGハァハァ
0668デフォルトの名無しさん
NGNGそんなこといって最後まで読んでんじゃん
俺もよんだけどなー
0669デフォルトの名無しさん
NGNGむなしく同意
でも、こいつが自分のwebでオナニーしてるだけなら文句は言わない。
奴はちょっとでも自信があると、ここで連投するから鬱陶しいと思われ
#技術力も発想力も言うほど無いしな
0670デフォルトの名無しさん
NGNG0671デフォルトの名無しさん
NGNGちまちまうpすることが、非難されてるけど、それが7行スレを衰退させたと思う。
あくまでも俺は、だけど、連投賛成。
0672デフォルトの名無しさん
NGNG7行達成していないならば、自分ではもうどうしようもなくなってからアップすべきだな
例:砂嵐シミュレータ、ハフマン、マインスイーパ、等
Sは自己満足のためだけだったから鬱陶しかった。典型的ヲタク臭がしたのは俺の気のせいか?
#それに出来上がった作品も、遊んでみてなんだかいまいちだったしな
0673デフォルトの名無しさん
NGNGでも自分と違うテクニックを持っている他人の出現を求めるには、
「自分ではどうしようもなくなってから」では遅いということを痛感するよ。
part1の時は俺も投稿したことがあるけど、
意見レスはあっても、結局プログラムのレスは付かなかった。
「自分ではどうしようもなくなってから」という状態は、他人が手をつけにくいという、
技術的な問題も含んでいるし、いまさら参加できないという精神的な問題もあると思う。
俺もS氏のテトリスに参戦しようと思ったけど、表明が遅すぎて何もできなかった。
0674671
NGNG昔から言われていたが、7行スレの見方に複数意見があることは間違いないですか?
・縮める過程を見せろ、あるいは参加したい
・7行に到達した作品だけをもってこい
0675デフォルトの名無しさん
NGNG日記見てると、どちらかというと典型的な研究者だな。
だから自分の成果はどんどん公表したいんだろうよ。
0676デフォルトの名無しさん
NGNGそしてプログラムで語らない俺らも痛い香具師
0677デフォルトの名無しさん
NGNG俺的には
>・縮める過程を見せろ、あるいは参加したい
だな。どんどん短くなってく様を見たい。
いきなり完成品投稿されてもフーンとしか思えない。
>>662
>>660も?
0678デフォルトの名無しさん
NGNG0679デフォルトの名無しさん
NGNG・つまらんネタ振ってくるな
0680デフォルトの名無しさん
NGNGパート1の60、トリッキー1、*nix厨房、そういった奴らが数人集まって
はじめて良スレが出来上がるんだろうな。
60の技術力は凄いし、トリッキーの1はスレの方向の誘導がすごいうまいと思う。
彼らの兼ね合いも読んでいて面白いし。こういう人と仕事したいね。
みんなもパート1読んでなごめやゴルア
0681デフォルトの名無しさん
NGNG>・7行になりそうに無いネタ振ってくるな
テトリスはなりそうにないのになっちゃったから、一応ネタを振るだけなら許可。
>・つまらんネタ振ってくるな
こっちは激しく同意
0682デフォルトの名無しさん
NGNG確かにいいことを言っているが、現状はどうしようもない
奴らはもう帰ってこないだろう。
0683過去参(略
NGNG===== 糸冬 了 =====
0684デフォルトの名無しさん
NGNGちょっと寂しいな・・・
0685デフォルトの名無しさん
NGNGあなたが書いてくれればまた始まりますよ。
0686デフォルトの名無しさん
NGNG0687デフォルトの名無しさん
NGNG0688デフォルトの名無しさん
NGNG0689デフォルトの名無しさん
NGNG0690デフォルトの名無しさん
NGNGhttp://www.starchild.co.jp/special/azuki
0691デフォルトの名無しさん
NGNG0692デフォルトの名無しさん
NGNGリアル経済ならぬバーチャル経済しかり。
ITによる失業者の吸収しかり。
「これからは2ちゃんねるの時代だ」のごとき匿名幻想しかり。
IT社会はリアルワールドにおける
信頼と責任抜きにはありえないというだけの話だ。
0693デフォルトの名無しさん
NGNG0694デフォルトの名無しさん
NGNG0695デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 138720人 発行日:2003/1/9
年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。
そんなわけで、年末に予告したIP記録ですが実験を開始しています。
「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0696デフォルトの名無しさん
NGNG書けてるよ〜
0697デフォルトの名無しさん
NGNG0698デフォルトの名無しさん
NGNGきわめてそれっぽい
0699デフォルトの名無しさん
NGNGIPの話はどこへ、、、(^_^;)
0700デフォルトの名無しさん
NGNG名誉毀損のレス1つ1つに対して民事を起こす。
10億件とか。
んで判決間際で取り下げ。
裁判所を麻痺させろ!!
0701デフォルトの名無しさん
NGNG動くってどうするんだよ?
なくなったらなくなったでいいや。
という人が多いんだよ。
0702デフォルトの名無しさん
NGNGつまんねーネタがネタにならねーじゃねえか
もう だ・め・ぽ・・・
0703デフォルトの名無しさん
NGNGニャロ
0704デフォルトの名無しさん
NGNG一見違うように見えるんじゃなくて趣旨が違います。
趣旨を理解できないアホなボランティアが多いのは確かですが、
真似してはいけません。
0705デフォルトの名無しさん
NGNG0706デフォルトの名無しさん
NGNG女紹介してくれ
0707デフォルトの名無しさん
NGNG312 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/10 19:59 ID:jWxHxvti
全部にいれてみた。
0708デフォルトの名無しさん
NGNGおえないでしょ。
本職はIP位ではへこたれずに留まるだろうけど、暫らくは半端な厨房が通常板へ
なだれ込んで無差別に悪さ(差別コピペ)をする、っつー事になりそう・・・
0709デフォルトの名無しさん
NGNG0710デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0711デフォルトの名無しさん
NGNG0712デフォルトの名無しさん
NGNG0713デフォルトの名無しさん
NGNGそういう意味では、企業レベルよりも個人レベルの要請が増えるのかもしれない。
0714デフォルトの名無しさん
NGNG172 :ひろゆき ◆3SHRUNYAXA :03/01/11 05:31 ID:kSb7xo24
北欧は放浪して資源を貯めれるので、
逃げ回ってると死なない。
0715デフォルトの名無しさん
NGNG0716デフォルトの名無しさん
NGNGやめろ。
0717デフォルトの名無しさん
NGNG0718デフォルトの名無しさん
NGNG0719デフォルトの名無しさん
NGNG0720デフォルトの名無しさん
NGNG0721デフォルトの名無しさん
NGNG疑ったりして悪いことしたな・・・
0722デフォルトの名無しさん
NGNG2ちゃん内部にはいないからな
0723デフォルトの名無しさん
NGNGLZW互換?圧縮/復元 ( ttp://multix.jp/ )
$ perl lzw_encode < 圧縮元ファイル > 圧縮後ファイル
#!perl -w
binmode STDIN;binmode STDOUT;if(read STDIN,$_,1){$C=ord;$I=256;while(read
STDIN,$_,1){if($E=$H{$D=$C<<8^ord}){$C=$E;next}$H{$D}=$I++if$I<4095;
$B.=pack"v",$C;$C=ord}$B.=pack"v",$C}$B=unpack"h*",$B.pack("v",4095);
$B=~s/(...)0/$1/g;print pack("h*",$B."f"x(length$B&1))
$ perl lzw_decode < 圧縮済ファイル > 復元ファイル
#!perl -w
binmode STDIN;binmode STDOUT;$/=undef;if($B=unpack"h*",<>){
$B=~s/(...)/${1}0/g;@B=unpack"v*",pack("h*",$B);for(@C=($I=0);$I<@B;$I++){
exit if($_=$B[$I])==4095;@S=();while(255<$_){push@S,$C[$_-256];$_=$B[$_-256]
}print pack("C*",$_,reverse@S);@C[$I-1,$I]=($_,$_)if$I<3840}}
マジでこんなのに特許がどうのとブータレるUN○SYSはともかく。
C/C++ で書くと何行になるんだこれ。
0724デフォルトの名無しさん
NGNG0725デフォルトの名無しさん
NGNG(トリップ便乗!)
0726デフォルトの名無しさん
NGNG分業することにしたようですよ。
0727デフォルトの名無しさん
NGNGreflexive_encode
binmode STDIN;binmode STDOUT;sub P{defined($_=getc)&&push(@B,ord)}&P;$I=256;
while(@B){&P;@B<4&&&P;$U=0;while($#B>$U){if($R=$H{$B[$U]<<12^$B[$U+1]}){splice
@B,$U,2,$R;if($#B==$U){&P}&P;$U+=$U?-1:1}else{++$U<32||last}}$H{$B[0]<<12^
$B[1]}=$I++if$I<4095&&@B>1;$B.=pack"v",shift@B}($B=unpack"h*",$B."\xFF")=~
s/(...)0/$1/g;print pack("h*",$B."f"x(length$B&1))
reflexive_decode
#!perl -w
binmode STDIN;binmode STDOUT;$/=undef;if($B=unpack"h*",<>){($B.="fff")=~
s/(...)/${1}0/g;@B=unpack"v*",pack("h*",$B);for($I=0;$I<@B;$I++){($_=$B[$I])==
4095&&exit;@C=($_);while(@C){if(($_=pop@C)<256){print chr}else{$D=$B[$_-256];
push@C,($E=$B[$_-255])==$_?$D:$E,$D}}}}
1MBのゼロベタファイルが33バイト、
16文字x4K反復の64KBテキストが78バイトになりよる。
それぞれを4倍量にしても3バイトずつしか増えネェ(´д`;
同じソースではLZSSが1/8、LZWで1/342が目一杯。
まあ並のファイル相手じゃどれも大差ないんだケド。
0728山崎渉
NGNG0729山崎渉
NGNG0730デフォルトの名無しさん
NGNG0731sage
NGNGint a=10000,b,c=8400,d,e,f[8401],g;main(){
for(;b-c;)f[b++]=a/5;
for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)
for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);}
とか
main(){int a=1e4,c=3e3,b=c,d=0,e=0,f[3000],g=1,h=0;
for(;b;!--b?printf("%04d",e+d/a),e=d%a,h=b=c-=15:f[b]=(d=d/g*b+a*(h?f[b]:2e3))%(g=b*2-1));}
なんてのがあったな。
どういう公式使ってるのかわかった香具師は教えれ
0732ccc
NGNG★お話しませんか?★
0733ぬるぽ
NGNG★ぬるぽしませんか?★★
0734デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/ ←>>733
(_フ彡 /
0735山崎渉
NGNG0736デフォルトの名無しさん
NGNG0737デフォルトの名無しさん
NGNG0738デフォルトの名無しさん
NGNG$pi=314;@pi=split//,$pi;$b=hex(join'',reverse@pi)>>shift@pi;$c=$b-1;$d=$b+1;
$n=$b|$c>>shift@pi|$d>>shift@pi;$c=chr$c;$d=chr$d;@a=("\n",' ');
foreach(split//,'@QijネヘLM'){push(@a,"$c$_")}foreach(split//,'2163602428795-2')
{$a.=$_=~/\d/?$a[$_]:"$c$d"}for($i=0;$a.=pack('C2',$b,$n),
(length($_=substr($pi,$i,2))==2);$n+=$_*(1,-1)[$i++&1]){}
print$a; #use jcode;print Jcode->new($a,'sjis')->euc;
0739デフォルトの名無しさん
NGNG実行してみてワロタ
0741デフォルトの名無しさん
NGNGimport java.net.*;import java.io.*;public class Z extends Thread{public static
void main(String[]a)throws Exception{ServerSocket s=new ServerSocket(1080);for
(;;){Z z=new Z();z.y=s.accept();z.start();}}Socket y;OutputStream o;InputStream
w;byte[]b=new byte[512],x=new byte[4];public void run(){int i;try{if(w!=null)
for(;(i=w.read(b,0,512))>=0;o.write(b,0,i),o.flush());w=y.getInputStream();o=y.
getOutputStream();for(;;){w.read(b,0,8);for(;w.read()>0;);i=b[1];b[0]=0;b[1]=90
;o.write(b,0,8);o.flush();if(i==2||i==1){for(i=0;i<4;i++)x[i]=b[i+4];Socket s=
new Socket(InetAddress.getByAddress(x),((b[2]&255)<<8)+(b[3]&255));Z z=new Z();
z.w=s.getInputStream();z.o=o;z.start();z=new Z();z.w=w;z.o=s.getOutputStream();
z.start();break;}}}catch(Exception e){}}}
0742デフォルトの名無しさん
NGNGimport java.net.*;import java.io.*;public class Z extends Thread{int i,k;public
static void main(String[]a)throws Exception{for(ServerSocket s=new ServerSocket
(1080);;){Z z=new Z();z.k=1;z.y=s.accept();z.start();}}OutputStream o,l;public
void run(){try{w=w!=m?w:y.getInputStream();o=o!=l?o:y.getOutputStream();for(;k<
1;i=w.read(b),o.write(b,0,i));for(;;){w.read(b);b[0]=0;i=b[1];b[1]=90;o.write(b
);k=((b[2]&255)<<8)+(b[3]&255);w.read(b);o.write(b);for(;w.read()>0;);if(i==2||
i==1){z=new Z();z.y=new Socket(InetAddress.getByAddress(b),k);z.o=o;z.start();v
=new Z();v.w=w;v.y=z.y;v.start();break;}}}catch(Exception e){}}Socket y;byte[]b
=new byte[4];Z z,v;InputStream w,m;}
0743デフォルトの名無しさん
NGNG禿げ藁
0744デフォルトの名無しさん
NGNG0745デフォルトの名無しさん
NGNG∧_∧
( ´∀`)< ぬるぽ
0746デフォルトの名無しさん
NGNGガッ
0747デフォルトの名無しさん
NGNG0748デフォルトの名無しさん
NGNG複数文字列のパターンマッチングとか。
実装例)fgrep
アルゴリズム) AC法、CW法
0749デフォルトの名無しさん
NGNGソースコードをHTML出力するプログラム
・外部データとしてkeyword.txt(名前は何でもいい)を読み込み
そこに記載されているキーワードには色をつける。
・コメントにも色をつける
・できれば文字列リテラル("〜"、'〜')にも色をつける。
みたいな。
0750デフォルトの名無しさん
NGNGlex使ってもいいでつか?
0751デフォルトの名無しさん
NGNGできれば使わない方向で。
>>748 を実装し、そのさらなる応用として>>749
みたいな。
0752デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char d[4][5]={"<","<",">",">"};void main(int c,char*v[]){char h[256][256],
b[1024];int i=0,j,k,l;FILE *e,*f=fopen("keyword.txt","r");while(!feof(f)){fgets(
h[i],256,f);if(h[i][strlen(h[i])-1]==10){h[i][strlen(h[i])-1]=0;}i++;}fclose(f);
f=fopen(v[1],"r");e=fopen(strcat(v[1],".html"),"w");while(!feof(f)){memset(b,0,
1024);fgets(b,1024,f);for(k=0;k<strlen(b);k++){for(l=0;l<2;l++){if(memcmp(b+k,d[
l*2],1)==0){memmove(b+k+3,b+k,strlen(b)-k-1);memcpy(b+k,d[l*2+1],4);k+=4;}}for(j
=0;j<i;j++){l=strlen(h[j]);if(memcmp(b+k,h[j],l)==0){memmove(b+k+l+24,b+k+l,
strlen(b)-k-l);memcpy(b+k,"<FONT COLOR=BLUE>",17);memcpy(b+k+17,h[j],l);memcpy(b
+k+l+17,"</FONT>",7);k+=l+24;}}}fputs(b,e);fputs("<BR>",e);}fclose(e);fclose(f);
}
コメントにもリテラルにも色が付ける事が出来なかった・・・∧||∧しかも13行だし・・・
0753752
NGNGchar d[4][5]={"<","&lt;",">","&gt;"}
&は半角
0754デフォルトの名無しさん
NGNGよく見ずにレスするけど、TABの展開作業ってしてる?
0755デフォルトの名無しさん
NGNGコメント&リテラル色付き13行。
標準出力だから使い勝手悪いし、一行コメントに行連結バグあるけど。
#include <stdio.h>
char*strdup(char*),*s="<font color=",*e="</font>",t[999],*p,*w[999],**q;int(*f)
(const char*,...),(*g)(FILE*),d;main(int c,char**v){FILE*i=fopen(v[1],"rt"),*k=
fopen("keyword.txt","r");f=printf;g=fgetc;q=w;while(fscanf(k,"%s",t)-EOF)*q++=
strdup(t);*q=0;f("<html><body><pre>");while((c=g(i))-EOF){if(isalpha(c)||c==95)
{p=t;*p++=c;while(isalnum(c=g(i))||c==95)*p++=c;ungetc(c,i);*p=0;q=w;while(*q){
if(!strcmp(t,*q))break;q++;};if(*q)f("%sred>%s%s",s,t,e);else f(t);}else if(c==
47){if((c=g(i))==42){f("%steal>/",s);do{a(c);while(a(c=g(i))-42);}while((c=g(i)
)-47);f("/%s",e);}else if(c==47){f("%steal>//",s);for(;;){while((c=g(i))-10)a(d
=c);if(d-92)break;a(c);}f("%s\n",e);}else{a(47);ungetc(c,i);}}else if(c==34||c
==39){f("%sblue>%c",s,c);while((d=g(i))-c)a(d);f("%c%s",c,e);}else{a(c);}}f(
"</pre></body></html>");return 0;}a(int x){switch(x){case 38:f("&amp;");break;
case 60:f("&lt;");break;case 62:f("&gt;");break;default:f("%c",x);}return x;}
最後2行の&は半角で。
0756デフォルトの名無しさん
NGNG挫折しますた
0757752
NGNG#include <stdlib.h>
#include <string.h>
char d[4][5]={"<","<",">",">"};void main(int c,char**v){char h[256][256],b
[1024],g[256];int i=0,j,k,l,m;FILE *e,*f=fopen("keyword.txt","r");while(!feof(f)
){fgets(h[i],256,f);if(h[i][strlen(h[i])-1]==10){h[i][strlen(h[i])-1]=0;}i++;}
fclose(f);f=fopen(v[1],"r");e=fopen(strcat(v[1],".html"),"w");while(!feof(f)){
memset(b,0,1024);fgets(b,1024,f);m=0;for(k=0;k<strlen(b);k++){for(l=0;l<2;l++){
if(b[k]==d[l*2][0]){memmove(b+k+3,b+k,strlen(b)-k-l);memcpy(b+k,d[l*2+1],4);k+=3
;}}if(b[k]==0x22){m=~m;}if(m==0){if(memcmp(b+k,"//",2)==0){memmove(b+k+20,b+k+2,
strlen(b)-k-2);memcpy(b+k,"<FONT COLOR=GREEN>//",20);memcpy(b+strlen(b),
"</FONT>\0",8);break;}if(b[k]==0x9){memmove(b+k+24,b+k+1,strlen(b)-k-1);memcpy(b
+k," ",24);k+=23;}for(j=0;j<i;j++){l=strlen(h[j]);if(
memcmp(b+k,h[j],l)==0){memmove(b+k+l+24,b+k+l,strlen(b)-k-l);sprintf(g,
"<FONT COLOR=BLUE>%s</FONT>",h[j]);memcpy(b+k,g,l+24);k+=l+23;}}}}fputs(strcat(b
,"<BR>"),e);}fclose(e);fclose(f);}
TAB展開、コメント(//)色付き、リテラル内のキーワード色付け防止機能追加
頭痛くなってきた・・・
0758752
NGNG#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char d[4][5]={"<","&lt;",">","&gt;"};void main(int c,char**v){char h[256][256],b
[1024],g[256];int i=0,j,k,l,m;FILE *e,*f=fopen("keyword.txt","r");while(!feof(f)
){fgets(h[i],256,f);if(h[i][strlen(h[i])-1]==10){h[i][strlen(h[i])-1]=0;}i++;}
fclose(f);f=fopen(v[1],"r");e=fopen(strcat(v[1],".html"),"w");while(!feof(f)){
memset(b,0,1024);fgets(b,1024,f);m=0;for(k=0;k<strlen(b);k++){for(l=0;l<2;l++){
if(b[k]==d[l*2][0]){memmove(b+k+3,b+k,strlen(b)-k-l);memcpy(b+k,d[l*2+1],4);k+=3
;}}if(b[k]==0x22){m=~m;}if(m==0){if(memcmp(b+k,"//",2)==0){memmove(b+k+20,b+k+2,
strlen(b)-k-2);memcpy(b+k,"<FONT COLOR=GREEN>//",20);memcpy(b+strlen(b),
"</FONT>\0",8);break;}if(b[k]==0x9){memmove(b+k+24,b+k+1,strlen(b)-k-1);memcpy(b
+k,"&nbsp;&nbsp;&nbsp;&nbsp;",24);k+=23;}for(j=0;j<i;j++){l=strlen(h[j]);if(
memcmp(b+k,h[j],l)==0){memmove(b+k+l+24,b+k+l,strlen(b)-k-l);sprintf(g,
"<FONT COLOR=BLUE>%s</FONT>",h[j]);memcpy(b+k,g,l+24);k+=l+23;}}}}fputs(strcat(b
,"<BR>"),e);}fclose(e);fclose(f);}
0759デフォルトの名無しさん
NGNG自身を食わせると,アンパサンドの変換がないから元と異なるソースが出るね.
dに&と&の対応入れた方が良いかな.
char d[4][5]は書き換える訳じゃないから,char *d[]で良いね.
NULL Terminateな文字列をコピーするときにmemcpy使わずにstrcpyで良いんじゃ?
string.hも#includeしてることだし.
ぱっと見たところでこれだけ発見.けど7行への道のりは遠い……
0760755
NGNGhoge hoge.c > hoge.html
#include <stdio.h>
char*strdup(char*),*s="<font color=",*e="</font>",t[999],*p,*w[999],**q;int(*f)
(const char*,...),d;FILE*i,*k;g(){return fgetc(i);}h(int*c,int x){return(*c=g()
)-EOF?*c-x:0;}main(int c,char**v){i=fopen(v[1],"rt");k=fopen("keyword.txt","r")
;f=printf;q=w;while(fscanf(k,"%s",t)-EOF)*q++=strdup(t);*q=0;f("<html><body><p\
re>");while(h(&c,0)){if(isalpha(c)||c==95){p=t;*p++=c;while(isalnum(c=g())||c==
95)*p++=c;ungetc(c,i);*p=0;q=w;while(*q){if(!strcmp(t,*q))break;q++;};if(*q)f(
"%sred>%s%s",s,t,e);else f(t);}else if(c==47){if((c=g())==42){f("%steal>/",s);
do{a(c);while(h(&c,42))a(c);a(c);}while(h(&c,47));a(c);f("%s",e);}else if(c==47
){f("%steal>//",s);while(h(&c,10))a(c);f("%s\n",e);}else{a(47);ungetc(c,i);}}
else if(c==34||c==39){f("%sblue>%c",s,c);while(h(&d,c))a(d);f("%c%s",c,e);}else
a(c);}f("</pre></body></html>");return 0;}void a(int x){switch(x){case 38:f(
"&amp;");break;case 60:f("&lt;");break;case 62:f("&gt;");break;default:f("%c",x
);case 0:;}}
0761752
NGNG#include <stdlib.h>
#include <string.h>
char *d[]={"<","&lt;",">","&gt;", "&", "&amp;", "\\\"","\\\""};
void main(int c,char**v){char h[256][256],b[1024],g[256],*o;int i=0,j,l,m,p,q,r;
FILE *e,*f=fopen("keyword.txt","r");while(!feof(f)){fgets(h[i],256,f);j=strlen(h
[i]);if(h[i][j-1]==10){h[i][j-1]=0;}i++;}fclose(f);f=fopen(v[1],"r");e=fopen(
strcat(v[1],".html"),"w");fputs("<HTML><BODY>",e);while(!feof(f)){memset(b,0,
1024);fgets(b,1024,f);m=p=0;o=b;while(o-b<strlen(b)){q=0;for(l=0;l<4;l++){r=
strlen(d[l*2]);if(memcmp(o,d[l*2],r)==0){fputs(d[l*2+1],e);j=strlen(d[l*2+1]);o
+=r;q=1;}}if(p==0){if(*o==0x22){if(m==0){fputs("<FONT COLOR=#808080>\"",e);}else
{fputs("\"</FONT>",e);}o++;q=1;m=~m;}}if(m==0){if(memcmp(o,"/*",2)==0){fputs(
"<FONT COLOR=GREEN>/*",e);o+=2;p=q=1;}if((memcmp(o,"*/",2)==0)&&(p==1)){fputs(
"*/</FONT>",e);p=0;q=1;o+=2;}if(*o==0x9){fputs("&nbsp;&nbsp;&nbsp;&nbsp;",e);o++
;q=1;}if(p==0){if(memcmp(o,"//",2)==0){sprintf(g,"<FONT COLOR=GREEN>//%s</FONT>"
,o+2);fputs(g,e);break;}for(j=0;j<i;j++){l=strlen(h[j]);if(memcmp(o,h[j],l)==0){
sprintf(g,"<FONT COLOR=BLUE>%s</FONT>",h[j]);fputs(g,e);o+=l;q=1;}}}}if(q==0){
fwrite(o,1,1,e);o++;}}fputs("<BR>",e);}fputs("</BODY></HTML>",e);fclose(e);
fclose(f);}
>>749の機能 + \"によるリテラル色付け暴走防止で
『19』行・・・根本から変えんと縮まる事は無いだろうな・・・
0762デフォルトの名無しさん
NGNGstdlib.hって必要ないですよね?
14行.fopen/fcloseが結構コスト高いなぁ
あとは の連続とか,keywords.txtとか...
キーワードの判定と1行コメントの判定がまとめれればもう少し縮むかな.
sprintfのintが色が変わるのを直そうとするとこれもコスト高いです.
ctype.hインクルードしてctype使うか!(k&&((t=*(b+k-1))?'a'<=t&&t<='z'||'A'<=t&&t<='Z':0))とするか……
#include <stdio.h>
#include <string.h>
*d[]={"<","<",">",">","&","&","\t"," "};size_t
(*o)(const char*)=strlen;p(char*b,int l,int f){char s[512];sprintf(s,"<font co\
lor=%s>",f?"GREEN":"BLUE");strcat(strncat(s,b,l),"</font>");memmove(b+o(s)-l,b,
o(b));memcpy(b,s,o(s));return o(s)-1;}main(int c,char**v){char h[256][256],b[
1024];int i=-1,j,k,l,m;FILE *e,*f=fopen("keyword.txt","r");while(!feof(f)){
fgets(h[++i],256,f);j=o(h[i])-1;h[i][j]==10?h[i][j]=0:0;}fclose(f);f=fopen(v[1]
,"r");e=fopen(strcat(v[1],".html"),"w");while(!feof(f)){memset(b,0,1024);fgets(
b,1024,f);m=1;for(k=0;k<o(b);k++){for(l=0;l<4;l++)if(b[k]==*d[l*2]){j=o(d[l*2+1
]);memmove(b+k+j-1,b+k,o(b)-k);memcpy(b+k,d[l*2+1],j);k+=j;}if(b[k]==34?m=!m:m)
if(memcmp(b+k,"//",2)==0){p(b+k,o(b+k),1);break;}for(j=0;j<i;j++)!memcmp(b+k,h[
j],l=o(h[j]))?k+=l+p(b+k,l,0):0;}fputs(strcat(b,"<BR>"),e);}fclose(e);fclose(f)
;}
0763デフォルトの名無しさん
NGNGctype使うかってなんだ...
isalphaのまちがいでふ.
しかも752にアップデートされてるし……
0764755
NGNG#include <stdio.h>
char*strdup(char*),*s="<font color=",*e="</font>",t[999],*p,*w[999],**q;int(*f)
(const char*,...),d;FILE*i,*k;g(){return fgetc(i);}h(int x){return(d=g())-EOF?d
-x:0;}void a(){d-60?d-62?d-38?f("%c",d):f("&amp;"):f("&gt;"):f("&lt;");}main(
int c,char**v){i=fopen(v[1],"rt");k=fopen("keyword.txt","r");f=printf;for(q=w;
fscanf(k,"%s",t)-EOF;)*q++=strdup(t);*q=0;for(f("<html><body><pre>");h(0);){if(
isalpha(d)||d==95){p=t;for(*p++=d;isalnum(h(0))||d==95;)*p++=d;*p=0;for(q=w;*q?
strcmp(t,*q++):0;);*q?f("%sred>%s%s",s,t,e):f(t);ungetc(d,i);}else if(d==47){if
(h(0)==42){f("%steal>/",s);do{for(a();h(42);a());a();}while(h(47));f("/%s",e);}
else if(d==47){for(f("%steal>//",s);h(10);)a();f("%s\n",e);}else f("/",ungetc(d
,i));}else if(d-34&&d-39)a();else{c=d;for(f("%sblue>%c",s,d);h(c);)a();f("%c%s"
,c,e);}}f("</pre></body></html>");return 0;}
>>762-763
その方法だと「_」が拾えない罠。「_cprintf」とか「g_print」とか。
0765デフォルトの名無しさん
NGNGそ,そうですね.
さらに数字も拾えないですね.str2intとか.
ついでにintegerでも色変わりますね.鬱.
0766デフォルトの名無しさん
NGNG<body><pre>〜
だけで閉じタグ無くても良くないか?
あと、投稿の時は&を&と表記すると良い。
&(&) >(>) <(<)
<font color=#RRGGBB> 〜 <font>
を
<a style=color:#RGB> 〜 </a>
としたら減らない?
0767755
NGNGついでに微修正
#include <stdio.h>
char*strdup(const char*),*s="<font color=",*e="</font>",t[999],*p,*w[999],**q;
int(*f)(const char*,...),d;FILE*i,*k;g(){return fgetc(i);}h(int x){return(d=g()
)-EOF?d-x:0;}void a(){d-60?d-62?d-38?f("%c",d):f("&amp;"):f("&gt;"):f("&lt;");}
main(int c,char**v){i=fopen(v[1],"r");k=fopen("keyword.txt","r");f=printf;for(q
=w;fscanf(k,"%s",t)-EOF;)*q++=strdup(t);*q=0;for(f("<html><body><pre>");h(0);){
if(isalpha(d)||d==95){p=t;for(*p++=d;isalnum(h(0))||d==95;)*p++=d;*p=0;for(q=w;
*q?strcmp(t,*q):0;q++;);*q?f("%sred>%s%s",s,t,e):f(t);ungetc(d,i);}else if(d==4
7){if(h(0)==42){f("%steal>/",s);do{for(a();h(42);a());a();}while(h(47));f("/%s"
,e);}else if(d==47){for(f("%steal>//",s);h(10);)a();f("%s\n",e);}else f("/",
ungetc(d,i));}else if(d-34&&d-39)a();else{for(f("%sblue>%c",s,c=d);h(c);)a();f(
"%c%s",c,e);}}f("</pre></body></html>");return 0;}
0768デフォルトの名無しさん
NGNG後半の部分、 <font> -> </font>だった。
これでも3文字減るはず。
色表記の組み合わせが 256^3 から 16^3 になるけど問題ないはず。
…#RRGGBB表記じゃなくて 'red' だったのか。
ゴメン、後者だとむしろ一文字増える。
スマン
0769デフォルトの名無しさん
NGNG*sにあらかじめ # まで入れといたら、
1文字くらいの節約になるか。
red teal blue 三色あるから。
0770752
NGNG#include <string.h>
char *d[]={"<","&lt;",">","&gt;", "&", "&amp;","\\\\","\\\\","\\\"","\\\"","\t",
"&nbsp;&nbsp;&nbsp;&nbsp;"," ","&nbsp;"};void main(int c,char**v){char h[256]
[256],b[1024],g[256],*o;int i=0,j,l,m,p,q,r;FILE *e,*f=fopen("keyword.txt","r");
while(!feof(f)){fgets(h[i],256,f);j=strlen(h[i]);if(h[i][j-1]==10){h[i][j-1]=0;}
i++;}fclose(f);f=fopen(v[1],"r");e=fopen(strcat(v[1],".html"),"w");fputs("<HTML"
"><BODY>",e);p=0;while(!feof(f)){memset(b,0,1024);fgets(b,1024,f);m=0;o=b;while(
o-b<strlen(b)){q=0;for(l=0;l<7;l++){r=strlen(d[l*2]);if(memcmp(o,d[l*2],r)==0){
fputs(d[l*2+1],e);j=strlen(d[l*2+1]);o+=r;q=1;}}if(!m){if(memcmp(o,"/*",2)==0){
fputs("<FONT COLOR=GREEN>/*",e);o+=2;p=q=1;}if(memcmp(o,"*/",2)==0){fputs("*/</"
"FONT>",e);p=0;q=1;o+=2;}}if(!p){if(*o==0x22){if(!m){fputs("<FONT COLOR=#808080"
">\"",e);}else{fputs("\"</FONT>",e);}o++;q=1;m=~m;}if(!m){if(memcmp(o,"//",2)==0
){fputs("<FONT COLOR=GREEN>",e);p=2;}else{for(j=0;j<i;j++){l=strlen(h[j]);if(
memcmp(o,h[j],l)==0){sprintf(g,"<FONT COLOR=BLUE>%s</FONT>",h[j]);fputs(g,e);o+=
l;q=1;}}}}}if(!q){fwrite(o,1,1,e);o++;}}if(p==2){fputs("</FONT>",e);p=0;}fputs(
"<BR>",e);}fputs("</BODY></HTML>",e);fclose(e);fclose(f);}
がんがっても2行しか減らなかった・・・(;´Д⊂`
0771デフォルトの名無しさん
NGNG「 」のようなとき、
実態参照の後にスペースがあるなどの場合は;を省略できるから
「    」でOK。
# これで3文字
<html></body></html>も無くてもいいだろう。
# 23文字くらいか
本当はあまり良くないけど、7行のためだ、テトリスだってタグを省略してたし。
0772デフォルトの名無しさん
NGNG0773755
NGNG1行しか減らなかったけど。
#include <stdio.h>
int(*f)(const char*,...),d;FILE*i,*k;char*strdup(const char*),*s="<font color="
,*e="</font>",t[999],*p,*w[999],**q;void a(){d-60?d-62?d-38?f("%c",d):f("&"
):f(">"):f("<");}h(int x){return(d=fgetc(i))-EOF?d-x:0;}main(int c,char**
v){i=fopen(v[1],"r");k=fopen("keyword.txt","r");f=printf;for(q=w;fscanf(k,"%s",
t)-EOF;)*q++=strdup(t);*q=0;for(f("<body><pre>");h(0);)if(isalpha(d)||d==95){p=
t;for(*p++=d;isalnum(h(0))||d==95;)*p++=d;*p=0;for(q=w;*q?strcmp(t,*q):0;q++);*
q?f("%sred>%s%s",s,t,e):f(t);ungetc(d,i);}else if(d==47){if(h(0)==42){f("%stea\
l>/",s);do{for(a();h(42);a());a();}while(h(47));f("/%s",e);}else if(d==47){for(
f("%steal>//",s);h(10);)a();f("%s\n",e);}else f("/",ungetc(d,i));}else if(d-34
&&d-39)a();else{for(f("%sblue>%c",s,c=d);h(c);)a();f("%c%s",c,e);};return 0;}
>>772
http://pc3.2ch.net/tech/kako/984/984182993.html
0774デフォルトの名無しさん
NGNGisalphaとisalnumはctype.h,strcmpはstring.hの定義だよぉ
0775755
NGNGstrcmpは使ってない(strdupはプロトタイプ書いてある)
isalpha/isalnumは返り値がintだから書いてない。
コンパイラによっては警告出るかもしれないけど。
767がエラーになるはコピペミスです。スマソ。
0777752
NGNG#include <string.h>
char*d[]={"<","&lt;",">","&gt;", "&", "&amp;","\\\\","\\\\","\\\"","\\\"","\t",
"&nbsp&nbsp&nbsp&nbsp;"," ","&nbsp;","<FONT COLOR="};void main(int c,char**v){
char h[256][256],b[1024],g[256],*o;int i=0,j,l,m,p=0,q,r;FILE *e,*f=fopen("keyw"
"ord.txt","r");while(!feof(f)){fgets(h[i],256,f);j=strlen(h[i]);if(h[i][j-1]==10
){h[i][j-1]=0;}i++;}fclose(f);f=fopen(v[1],"r");e=fopen(strcat(v[1],".html"),"w"
);while(!feof(f)){memset(b,0,1024);fgets(b,1024,f);m=0;o=b;while(o-b<strlen(b)){
q=0;for(l=0;l<7;l++){r=strlen(d[l*2]);if(memcmp(o,d[l*2],r)==0){fputs(d[l*2+1],e
);j=strlen(d[l*2+1]);o+=r;q=1;}}if(!m){if(memcmp(o,"/*",2)==0){fprintf(e,"%sGRE"
"EN>/*",d[14]);o+=2;p=q=1;}if(memcmp(o,"*/",2)==0){fputs("*/</FONT>",e);p=0;q=1;
o+=2;}}if(!p){if(*o==0x22){if(!m){fprintf(e,"%sRED>\"",d[14]);}else{fputs("\"</"
"FONT>",e);}o++;q=1;m=~m;}if(!m){if(memcmp(o,"//",2)==0){fprintf(e,"%sGREEN>",d[
14]);p=2;}else{for(j=0;j<i;j++){l=strlen(h[j]);if(memcmp(o,h[j],l)==0){sprintf(g
,"%sBLUE>%s</FONT>",d[14],h[j]);fputs(g,e);o+=l;q=1;}}}}}if(!q){fwrite(o,1,1,e);
o++;}}if(p==2){fputs("</FONT>",e);p=0;}fputs("<BR>",e);}fclose(e);fclose(f);}
文字数食ってるのを統一 →("<FONT COLOR=")&766,771氏の指摘部分修正
1行分削減
0778デフォルトの名無しさん
NGNGmemcmp,fclose,fputs,fprintfなどを関数ポインタにしてみたら?
0779752
NGNGmemcmp - 10字程減少
fclose - 10字程増加
fputs - 15字程減少
fprintf - (以下略
後30字程減少できたら1行削減なのに届かない・・・
0780752
NGNG#include <string.h>
int(*s)(const void*,const void*,size_t)=memcmp,(*t)(const char*,FILE*)=fputs;
char*d[]={"<","&lt;",">","&gt;","&","&amp;","\\\\","\\\\","\\\"","\\\"","\t",
"&nbsp;","&nbsp&nbsp&nbsp;"," ","&nbsp;","<FONT COLOR="};void main(int c,char**v
){char h[256][256],b[1024],g[256],*o;int i=0,j,l,m,p=0,q,r;FILE *e,*f=fopen("ke"
"yword.txt","r");while(!feof(f)){fgets(h[i],256,f);j=strlen(h[i]);if(h[i][j-1]==
10){h[i][j-1]=0;}i++;}fclose(f);f=fopen(v[1],"r");e=fopen(strcat(v[1],".html"),
"w");while(!feof(f)){memset(b,0,1024);fgets(b,1024,f);m=0;o=b;while(o-b<strlen(b
)){q=0;for(l=0;l<7;l++){r=strlen(d[l*2]);if(s(o,d[l*2],r)==0){t(d[l*2+1],e);j=
strlen(d[l*2+1]);o+=r;q=1;}}if(!m){if(s(o,"/*",2)==0){fprintf(e,"%sGREEN>/*",d[
15]);o+=2;p=q=1;}if(s(o,"*/",2)==0){t("*/</FONT>",e);p=0;q=1;o+=2;}}if(!p){if(*o
==0x22){if(!m){fprintf(e,"%sRED>\"",d[15]);}else{t("\"</FONT>",e);}o++;q=1;m=~m;
}if(!m){if(s(o,"//",2)==0){fprintf(e,"%sGREEN>",d[15]);p=2;}else{for(j=0;j<i;j++
){l=strlen(h[j]);if(s(o,h[j],l)==0){sprintf(g,"%sBLUE>%s</FONT>",d[15],h[j]);t(g,
e);o+=l;q=1;}}}}}if(!q){fwrite(o,1,1,e);o++;}}if(p==2){t("</FONT>",e);p=0;}t("<B"
"R>",e);}fclose(e);fclose(f);}
0781749
NGNG7行すれなんだからダメなんだろうけど、そこまで圧縮できただけでも
すごいよ。まじで。
0782デフォルトの名無しさん
NGNGそもそもプログラム末のfcloseはいらないのでは?
あと、文字列リテラルchar *d[]={"1...","2...", ...};は、まとめちゃって、
char *d="1...\02...\..."; にして、d+0,d+?, ... でアクセスしたら?
あと、それに\"</font>も加えると。d+x, d+x+2で\"を入れるか入れないか選択可。
0783デフォルトの名無しさん
NGNGchar h[256][256],b[1024],g[256],*o;
↓
char*o,h[256][256],b[1024],g[256];
aaa;while(xxx){yyy;zzz;}
↓
for(aaa;xxx;zzz)yyy;
0784デフォルトの名無しさん
NGNG・==0は(基本的に)不要
・グローバルなint n=999を用意し、配列のサイズは全部nに統一
・可能な限りローカル変数グローバルにする。それぞれにint等書く分と、
場合によっては=0の初期化分が稼げる。関数呼び出しがネストしなければ、
引数と返り値もグローバルにしたほうがちぢむ可能性あり(callの出現回数による)。
キレイすぎ。元からもっと縮められるはず。
0785デフォルトの名無しさん
NGNG0786752
NGNG#include <string.h>
int(*s)(const void*,const void*,size_t)=memcmp,(*t)(const char*,FILE*)=fputs,i=
0,j,l,m,q,p=0,r,w;char*d="<\0<\0>\0>\0&\0&\0\\\\\0\\\\\0\\\"\0\\\"\0"
"\t\0    \0 \0 \0<FONT COLOR=",*o,h[256][256],b[1024],g
[256];main(int c,char**v){FILE *e,*f=fopen("keyword.txt","r");while(!feof(f)){
fgets(h[i],256,f);j=strlen(h[i]);if(h[i][j-1]==10){h[i][j-1]=0;}i++;}fclose(f);f
=fopen(v[1],"r");e=fopen(strcat(v[1],".html"),"w");while(!feof(f)){memset(b,0,
1024);fgets(b,1024,f);m=0;o=b;while(o-b<strlen(b)){q=w=0;for(l=0;l<7;l++){r=
strlen(d+w);if(!s(o,d+w,r)){t(d+w,e);o+=r;q=1;}w+=strlen(d+w)+1;}if(!m){if(!s(o,
"/*",2)){fprintf(e,"%sGREEN>/*",d+67);o+=2;p=q=1;}if(s(o,"*/",2)==0){t("*/</FON"
"T>",e);p=0;q=1;o+=2;}}if(!p){if(*o==0x22){if(!m){fprintf(e,"%sRED>\"",d+67);}
else{t("\"</FONT>",e);}o++;q=1;m=~m;}if(!m){if(!s(o,"//",2)){fprintf(e,"%sGREEN"
">",d+67);p=2;}else{for(j=0;j<i;j++){l=strlen(h[j]);if(!s(o,h[j],l)){sprintf(g,
"%sBLUE>%s</FONT>",d+67,h[j]);t(g,e);o+=l;q=1;}}}}}if(!q){fwrite(o,1,1,e);o++;}}
if(p==2){t("</FONT>",e);p=0;}t("<BR>",e);}}
17→16行に縮まりますた
783,784氏thx!
0787752
NGNG#include <stdio.h>
#include <string.h>
int(*s)(const void*,const void*,size_t)=memcmp,(*t)(const char*,FILE*)=fputs,i=
0,j,l,m,q,p=0,r,w;char*d="<\0&lt;\0>\0&gt;\0&\0&amp;\0\\\\\0\\\\\0\\\"\0\\\"\0"
"\t\0&nbsp&nbsp&nbsp&nbsp;\0 \0&nbsp;\0<FONT COLOR=",*o,h[256][256],b[1024],g
[256];main(int c,char**v){FILE *e,*f=fopen("keyword.txt","r");while(!feof(f)){
fgets(h[i],256,f);j=strlen(h[i]);if(h[i][j-1]==10){h[i][j-1]=0;}i++;}fclose(f);f
=fopen(v[1],"r");e=fopen(strcat(v[1],".html"),"w");while(!feof(f)){memset(b,0,
1024);fgets(b,1024,f);m=0;o=b;while(o-b<strlen(b)){q=w=0;for(l=0;l<7;l++){r=
strlen(d+w);if(!s(o,d+w,r)){t(d+w,e);o+=r;q=1;}w+=strlen(d+w)+1;}if(!m){if(!s(o,
"/*",2)){fprintf(e,"%sGREEN>/*",d+67);o+=2;p=q=1;}if(s(o,"*/",2)==0){t("*/</FON"
"T>",e);p=0;q=1;o+=2;}}if(!p){if(*o==0x22){if(!m){fprintf(e,"%sRED>\"",d+67);}
else{t("\"</FONT>",e);}o++;q=1;m=~m;}if(!m){if(!s(o,"//",2)){fprintf(e,"%sGREEN"
">",d+67);p=2;}else{for(j=0;j<i;j++){l=strlen(h[j]);if(!s(o,h[j],l)){sprintf(g,
"%sBLUE>%s</FONT>",d+67,h[j]);t(g,e);o+=l;q=1;}}}}}if(!q){fwrite(o,1,1,e);o++;}}
if(p==2){t("</FONT>",e);p=0;}t("<BR>",e);}}
0788デフォルトの名無しさん
NGNG独自に>>780を縮めてみました。14行。
7行スレ特有の汚いプログラムですが、参考にしてくだちい>>752さん
バグ?:タブとスペースがnbspに変換されていない
バグ?:keyword.txtの各行の改行が0x0a,0x0dのどちらでも対応できるようにした
仕様変更:出力先をout.htmlに固定
仕様変更:b[]のサイズを999にした
#include <stdio.h>
#include <string.h>
int(*s)()=memcmp,(*t)()=fputs,i,j,l,p,q,r;char*d[]={"<","<",">",">","&",
"&","\\\\","\\\\","\\\"","\\\"","\t"," "," "," "
,"","<FONT COLOR="},*o,h[256][256],b[999],g[256];main(int m,char**v){FILE*e=
fopen("out.html","w"),*f=fopen("keyword.txt","r");for(;!feof(f);i++)for(fgets(h[
i],256,f),q=strlen(h[i]);q--;)if(*(o=h[i]+q)==10||*o==13)*o=0;for(f=fopen(v[1],
"r");!feof(f);p-2||(t("</FONT>",e),p=0),t("<BR>",e))for(memset(b,m=0,q=999),fgets
(o=b,q,f);o-b<strlen(b);q||fwrite(o++,1,1,e)){for(q=0,l=7;l--;!s(o,d[j],r=strlen
(d[j]))?t(d[j+1],e),j=strlen(d[j+1]),o+=r,q=1:0)j=l*2;if(!m)!s(o,"/*",2)?fprintf
(e,"%sGREEN>/*",d[15]),o+=2,p=q=1:0,!s(o,"*/",2)?t("*/</FONT>",e),p=0,q=1,o+=2:0
;if(!p)if(*o==34?m?t("\"</FONT>",e):fprintf(e,"%sRED>\"",d[15]),o++,q=1,m=~m:0,
!m)if(s(o,"//",2))for(j=i;j--;)!s(o,h[j],l=strlen(h[j]))?sprintf(g,"%sBLUE>%s</"
"FONT>",d[15],h[j]),t(g,e),o+=l,q=1:0;else fprintf(e,"%sGREEN>",d[15]),p=2;}}
0789788
NGNGchar*d[]={"<","&lt;",">","&gt;","&","&amp;","\\\\","\\\\","\\\"","\\\"","\t",
"&nbsp;&nbsp;&nbsp;&nbsp;"," ","&nbsp;","","<FONT COLOR="},*o,h[256][256],b[999],g[256];
0790デフォルトの名無しさん
NGNGアルゴリズムは追ってないけど。
・return(d=fgetc(i))-EOF?d-x:0;→ (d=fgetc(i))<0?0:d-x;
・fscanf(k,"%s",t)-EOF → fscanf(k,"%s",t)>=0
・void a(){d-60?d-62?d-38?f("%c",d):f("&"):f(">"):f("<");}
→ void a(){f(d-60?d-62?d-38?(f("%c",d),""):"&":">":"<");}
・*q?strcmp(t,*q):0 → *q&&strcmp(t,*q)
あとはファイル名を短い固定のものにするか、
入出力を変えるくらいですね
0791デフォルトの名無しさん
NGNGclass S{public static void main(String[]c){new S();}S(){while((c=h(i,2))!=1295)
{System.out.print(s.substring(c,c+h(i+2,1)));i+=3;}}int i=95,c;int h(int i,int
n){return Integer.parseInt(s.substring(i,i+n),36);}String s=" (){}[];,.?!+=12"+
"9536publiclasstaticvoidmainewhilesubstringSystemoutprintIntegereturnparseInt"+
"\n\"\\0p50011m10310k60010t60010z40011340111m11h50520p10210311630011m10120710"+
"411m10120311850110110p10d11910110o10810f10210210b10d10e40212k10311m60911s309"+
"11v50110s10911d90110p10810p10c11910110o10c10f10810e10210210210710o10c20i1071"+
"0410411x30010o10d10g20810p10711x30011910111x30010o10811x32k11610210312660012"+
"070912c80110s10911d90110o10810o10c11610210810i20210710411m11h50010s10d12l100"+
"g2l10c12k20gz1fz2e62l10c12k22m11612m12l12m12m12nz3mz2l10c12k24lz5kz6j62l10c1"+
"2k26pz7oz8n62l10c12k28tz9szar62l10c12k2axzbwzcv62l10c12k2d1ze0zez62l10c12k2f"+
"5zg4zh362l10c12k2h9w2l1071041zz0";}
0792デフォルトの名無しさん
NGNG最初のループの中身を次のようにしてもいいんじゃないか?
for(fgets(h[i],256,f),q=strlen(h[i]);q--;)if(*(o=h[i]+q)==10||*o==13)*o=0;
↓
for(fgets(o=h[i],250,f);*o;o++)*o==10||*o==13?*o=0:0;
0793デフォルトの名無しさん
NGNGそれはむしろトリッキースレだな・・・
0794デフォルトの名無しさん
NGNGおもしれーな
0795755
NGNGサンクス。
キーワードファイル名を「k」にして、色々絞ってみた。10行。
#include <stdio.h>
int(*f)()=printf,d;FILE*i,*k;char*strdup(),t[99],*p,*e="</font>",*w[999],**q,*s
="<font color=",*l="%steal>/";h(int x){return(d=fgetc(i))<0?0:d-x;}a(){f(d-60?d
-62?d-38?"%c":"&":">":"<",d);}main(int c,char**v){i=fopen(v[1],"r");q
=w;for(k=fopen("k","r");fscanf(k,"%s",t)>0;)*q++=strdup(t);f("<body><pre>");for
(*q=0;h(0);)if(isalpha(d)|d==95){p=t;for(*p++=d;isalnum(h(0))|d==95;)*p++=d;*p=
0;for(q=w;*q&&strcmp(t,*q);q++);ungetc(d,i);f(*q?"%sred>%s%s":t,s,t,e);}else if
(d-47)if(d-34&&d-39)a();else{for(f("%sblue>%c",s,c=d);h(c);)a();f("%c%s",c,e);}
else{if(h(0)-42)if(d-47)f("/",ungetc(d,i));else{for(f(l,s),a();h(10);)a();f(
"%s\n",e);}else{f(l,s);do{for(a();h(42);a());a();}while(h(47));f("/%s",e);}};}
gccでwarning出るけど勘弁(VC++は問題なし)。
0796デフォルトの名無しさん
NGNG仕様変更:入力キーワードファイルを k, 出力HTMLを o.htm に変更
仕様変更:コメントの色を GREEN から CYAN に
#include <stdio.h>
char*x="*/</FONT>",b[999],*d[]={"<","&lt;",">","&gt;","&","&amp;","\\\\","\\\\",
"\\\"","\\\"","\t","&nbsp&nbsp&nbsp&nbsp;"," ","&nbsp;","<FONT COLOR="},*o,h[256
][256];int(*t)()=fputs,memcmp(),(*s)()=memcmp,i,j,l,p,q,r;main(m,v)char**v;{FILE
*e=fopen("o.htm","w"),*f=fopen("k","r");for(;!feof(f);i++)for(fgets(o=h[i],250,
f);*o;o++)*o==10||*o==13?*o=0:0;for(f=fopen(v[1],"r");!feof(f);p-2||(p=t(x+2,e))
,t("<BR>",e))for(memset(b,m=0,q=999),fgets(o=b,q,f);o-b<strlen(b);q||fwrite(o++,
1,1,e)){for(q=0,l=7;l--;!s(o,d[j],r=strlen(d[j]))?q=!t(d[j+1],e),o+=r:0)j=l*2;if
(!m)!s(o,"/*",2)?t(d[14],e),p=q=!t("CYAN>/*",e),o+=2:0,!s(o,"*/",2)?p=t(x,e),q=1
,o+=2:0;if(!p)if(*o==34?m?t("\"</FONT>",e):(t(d[14],e),t("RED>\"",e)),o++,q=1,m=
~m:0,!m)if(s(o,"//",2))for(j=i;j--;)!s(o,h[j],l=strlen(h[j]))?t(d[14],e),t("BLU"
"E>",e),t(h[j],e),q=!t(x+2,e),o+=l:0;else t(d[14],e),t("CYAN>",e),p=2;}}
0797デフォルトの名無しさん
NGNGこうやって行数を少なくすると実用面で良い点(処理速度とか)
があるんですか?
0798デフォルトの名無しさん
NGNG実用性は無い。まったく無い。七行プログラムを書い
たり、他人の書いた七行プログラムを解読することで、
プログラミングの能力がちょびっと高まることはあるか
もしれん。でもそれも副作用にしか過ぎない。できる
だけ少ない行数でできるだけ高度な機能を実装してい
るプログラムを見て驚くのが好きだからやってる。
0799デフォルトの名無しさん
NGNG楽しんでるだけだよ。
プログラムを楽しめるってのはいいことじゃないか。
0800デフォルトの名無しさん
NGNGprintf(),scanf(const char*,...),(*m)()=printf;unsigned int time(unsigned int*);
char *z="?\0O\0a\0b\0c\0d\0e\0f\0g\0h\0X",a[12][12],b,c,d,e,f,g=100,h,i,l[12][12
];main(){memset(a,1,144);memset(l,0,144);srand(time(0));for(b=10;b--;){for(;;){c
=rand()%10+1;d=rand()%10+1;if(a[c][d]!=10){a[c][d]=10;for(e=-1;e<2;e++){for(f=-1
;f<2;f++){a[c+f][d+e]<10?a[c+f][d+e]++:0;}}break;}}}for(;;){for(b=10;b--;){for(c
=10;c--;m("[%s]",z+l[10-c][10-b]*2));m("\n");}a[d][e]==10?m("[GameOver]\n"),exit
(0):0;g==10?m("[Clear]\n"),exit(0):0;m("Where?(x y)");scanf("%d %d",&d,&e);l[d][
e]=a[d][e];i=1;while(i==1){i=0;for(b=1;b<11;b++){for(c=1;c<11;c++){if(l[c][b]==1
){for(h=-1;h<2;h++){a[c+h][b]!=10&&l[c+h][b]==0?l[c+h][b]=a[c+h][b],g--,i=1:0;a[
c][b+h]!=10&&l[c][b+h]==0?l[c][b+h]=a[c][b+h],g--,i=1:0;}}}}}g--;}}
('A`)・・・
0801デフォルトの名無しさん
NGNG&nbsp&nbsp&nbsp&nbsp;
用は半角スペースが2個以上連続していなければいいんだから、
二つ目の はハンカクスペースで置き換えられるかも。
0802788
NGNGバグ?:>>786-787 を取り入れたが、アンパサンド等置換部分にバグ有りました。修正。
仕様変更:>>795 と同じように標準出力に出力
仕様変更:色 CYAN は標準16色に入っていなかったので、AQUA に変更
多謝:>>801 さん
#include <stdio.h>
int(*t)()=printf,memcmp(),(*s)()=memcmp,i,j,l,p,q,r;char*d="<\0<\0>\0>\0&"
"\0&\0\\\\\0\\\\\0\\\"\0\\\"\0\t\0    \0 \0 ",h[256][256],
*o,b[999],*x="*/</FONT>",*y="<FONT COLOR=%s";main(m,v)char**v;{FILE*f=fopen("k",
"r");for(;~(m=getc(f));)m-10&&m-13?h[i][j++]=m:(j?i++:0,j=0);j&&i++;for(f=fopen(
v[1],"r");m=!feof(f);p-2||(p=0,t(x+2)),t("<BR>"))for(fgets(o=b,999,f);o-b<strlen
(b);q||putchar(*o++)){q=j=0;for(l=14;l--;l%2&&!s(o,d+j,r)?j+=r+1,t(d+j),o+=r,q=1
:(j+=r+1))r=strlen(d+j);for(j=0;m&&j<2;j++)!s(o,j?"*/":"/*",2)?p=!j,q=1,t(j?x:y,
"AQUA>/*"),o+=2:0;if(!p)if(*o==34?t(m?y:"\"%s",m?"RED>\"":x+2),o++,q=1,m=!m:0,m)
if(s(o,"//",2))for(j=i;j--;)!s(o,h[j],l=strlen(h[j]))?t(y,"BLUE>"),t(h[j]),q=1,t
(x+2),o+=l:0;else t(y,"AQUA>"),p=2;}}
0803デフォルトの名無しさん
NGNGかなり最初のほうから、行コメントとブロックコメントの重複処理がバグっている
// aaa /* bbb */
ccc
これだと、aaa の p=2 が bbb で消されて、ccc 以降がすべて aaa の色になる。
0804788
NGNG仕様変更:入力を標準入力から読み込むように変更
#include <stdio.h>
char*d="<\0<\0>\0>\0&\0&\0\\\\\0\\\\\0\\\"\0\\\"\0\t\0   &nbs"
"p;\0 \0 ",*o,*a,h[256][256],b[999],*x="*/</FONT>",*y="<FONT COLOR=%s";int(
*t)()=printf,memcmp(),(*s)()=memcmp,i,j,l,p,q,r;main(m){FILE*f=fopen("k","r");
for(;~(m=getc(f));)m-10&&m-13?h[i][j++]=m:(j&&i++,j=0);for(j&&i++;fgets(o=b,m=999
,stdin);q?q=!t(x+2):0,t("<BR>"))for(;a=o,o-b<strlen(b);a-o||putchar(*o++)){j=0;
for(l=14;l--;j+=r+1,l%2&&!s(o,d+j-r-1,r)?t(d+j),o+=r:0)r=strlen(d+j);for(j=0;!q
&&m&&j<2;j++)!s(o,j?"*/":"/*",2)?p=!j,t(j?x:y,"AQUA>/*"),o+=2:0;if(!p)if(*o==34?
t(m?y:"\"%s",m?"RED>\"":x+2),o++,m=!m:0,m)for(j=!s(o,"//",2)?t(y,"AQUA>"),q=1:i;
!q&&j--;)!s(o,h[j],r=strlen(h[j]))?t(y,"BLUE>"),t(h[j]),t(x+2),o+=r:0;}}
0805791
NGNGclass S{public static void main(String[]a){new S();}S(){while(8463!=(c=92*h(i++
)+h(i++))){System.out.print(s.substring(c,c+h(i++)));}}int i=191,c;int h(int i)
{return s.charAt(i)-35;}String s="\\class S{public static void main(String[]a"+
"){new S();}{while(8463!=(c=92*h(i++\n)+h(i++))){System.out.print(s.substring"+
"(c,c+h(i++)));}}int i=191,c;int h(int i){return s.charAt(i)-35;}String s=\"#"+
"$W#S<#qr#p$$dE##$##$#$L%)$#o%%)$#MF##$#B$#qJ%)$#o%%)$$<l##$%)$%*$%)$#o%%)"+
"$%+o%)$#o%%)$%wn%)$#V$#W$~~/* Save me to a file as 'S.java' (^_^)/ */";}
0806755
NGNGint printf(),(*f)()=printf,d;void*fopen(),*i,*k;char*strdup(),t[99],*p,*w[999],
*e="</font>",**q=w,*s="<font color=",*l="%steal>/";h(int x){return(d=getc(i))<0
?0:d-x;}a(){f(d-60?d-62?d-38?"%c":"&":">":"<",d);}main(c,v)char**v;{k
=fopen("k","r");for(i=fopen(v[1],"r");fscanf(k,"%s",t)>0;)*q++=strdup(t);for(f(
"<body><pre>");h(0);)if(isalpha(d)|d==95){p=t;for(*p++=d;isalnum(h(0))|d==95;)*
p++=d;*p=0;for(q=w;*q&&strcmp(t,*q);q++);ungetc(d,i);f(*q?"%sred>%s%s":t,s,t,e)
;}else if(d-47){if(d==34|d==39){for(f("%sblue>%c",s,c=d);h(c);)a();f("%s",e);}a
();}else{if(h(0)-42)if(d-47)f("/",ungetc(d,i));else{for(f(l,s),a();h(10);)a();f
("%s\n",e);}else{f(l,s);do{for(a();h(42);a());a();}while(h(47));a();f(e);}};}
0807755
NGNG7行目のみ修正&「'」「"」に色をつけないように仕様変更。
;}else if(d-47){if(d==34|d==39){for(f("%c%sblue>",c=d,s);h(c);)a();f("%s",e);}a
0808デフォルトの名無しさん
NGNGc,d,e,f,g=100,i,l[12][12];main(){memset(a,1,144);memset(l,0,144);srand(time(0));
for(b=10;b--;){for(;;){c=rand()%10+1;d=rand()%10+1;if(a[c][d]<10){a[c][d]=10;for
(e=-1;e<2;e++)for(f=-1;f<2;f++)a[c+f][d+e]+=a[c+f][d+e]<10;break;}}}d=e=0;for(;;
){for(b=10;b--;m("\n"))for(c=10;c--;m(z+l[10-c][10-b]*2));a[d][e]>9||g==10?exit(
):0;scanf("%d%d",&d,&e);l[d][e]=a[d][e];for(i=1;i>0;g--){i=0;for(b=11;--b;)for(
c=11;--c;)if(l[c][b]==1)for(f=-1;f<2;f++){a[c+f][b]<10&&!l[c+f][b]?l[c+f][b]=a[c
+f][b],g--,i=2:0;a[c][b+f]<10&&!l[c][b+f]?l[c][b+f]=a[c][b+f],g--,i=1:0;}}}}
8ギョウマインスイーパ('A`)ワーニングハキニシナイ
0809755
NGNGint printf(),(*f)()=printf,d;void*fopen(),*i,*k;char*strdup(),t[99],*p,*w[999],
*e="</font>",**q=w,*s="<font color=",*l="%steal>/";h(int x){return(d=getc(i))<0
?0:d-x;}a(){f(d-60?d-62?d-38?"%c":"&":">":"<",d);}main(c,v)char**v;{k
=fopen("k","r");for(i=fopen(v[1],"r");fscanf(k,"%s",t)>0;)*q++=strdup(t);for(f(
"<body><pre>");h(0);)if(isalpha(d)|d==95){p=t;for(*p++=d;isalnum(h(0))|d==95;)*
p++=d;*p=0;for(q=w;*q&&strcmp(t,*q);q++);ungetc(d,i);f(*q?"%sred>%s%s":t,s,t,e)
;}else if(d-47){if(d==34|d==39){for(f("%c%sblue>",c=d,s);h(c);)a();f(e);}a();}
else{if(h(0)-42)if(d-47)f("/",ungetc(d,i));else{for(f(l,s),a();h(10);)a();f(e);
a();}else{f(l,s);do{for(a();h(42);a());a();}while(h(47));a();f(e);}};}
0810デフォルトの名無しさん
NGNGchar a[12][12],b,c,d,e,f,g=100,i,l[12][12];main(){memset(a,1,144);memset(l,0,144
);srand(time(0));for(b=10;b--;)for(;;){c=rand()%10+1;d=rand()%10+1;if(a[c][d]<11
){a[c][d]=11;for(e=2;1+e--;)for(f=2;1+f--;)a[c+f][d+e]+=a[c+f][d+e]<10;break;}};
for(d=e=0;;g-=1-l[d][e]>0){for(b=10;b--;printf("\n"))for(c=10;c--;putchar(l[10-c
][10-b]+47));l[d][e]>10||g<11?exit():0;scanf("%d%d",&d,&e);l[d][e]=a[d][e];for(i
=1;i>0;){i=0;for(b=11;--b;)for(c=11;--c;)if(l[c][b]==1)for(f=2;1+f--;){a[c+f][b]
<10&&l[c+f][b]==0?l[c+f][b]=a[c+f][b],g-=11>(c+f)&&(c+f)>0,i=1:0;a[c][b+f]<10&&l
[c][b+f]==0?l[c][b+f]=a[c][b+f],g-=11>(b+f)&&(b+f)>0,i=1:0;}}}}
0811デフォルトの名無しさん
NGNG0812デフォルトの名無しさん
NGNG*k)()=printf,y,z;o(char*v,int w,int*x){while(c[v[w]=rand()%52]);x[0]+=v[w]%13>9?
10:v[w]%13+1;c[v[w]]=1;}p(char*v,int w){for(g=w;g--;){printf("%c%c",*(b+v[g]/13)
,*(a+v[g]%13));}putchar(10);}main(){srand(time(0));memset(c,0,52);memset(l,52,9)
;j=y=z=0;for(g=h=i=2;g--;){o(d,g,&y);o(e,g,&z);}for(;;){k("en:");p(j?e:l,h);k(
"me:");p(d,i);y>21?k("lost"),exit():0;z>21?k("win"),exit():0;if(j){y>z?k("win"):
0;y==z?k("draw"):0;y<z?k("lost"):0;exit();}k("cmd?");scanf("%d",&g);switch(g){
case 0:o(d,i++,&y);break;case 1:j=1;}if(z<15+rand()%5){o(e,h++,&z);j=z>21;}}}
8行BJ
cmd 0:カードを引く 1:勝負
0813788
NGNG#include <stdio.h>
char*o,*a,h[256][999],*x="*/</FONT>",*y="<FONT COLOR=%s";int(*t)()=printf,memcmp
(),(*s)()=memcmp,i=1,j,p,q,r;main(m){FILE*f=fopen("k","r");for(;~(m=getc(f));)m-
10&&m-13?h[i][j++]=m:(j&&i++,j=0);for(j&&i++;fgets(o=*h,m=999,stdin);q=q&&!t(x+2
),t("<BR>"))for(;*(a=o);o++){for(j=0;!q*m&&j<2;j++)!s(o,j?"*/":"/*",2)?p=!j,t(j?
x:y,"AQUA>/*"),o+=2:0;if(!p)if(*o==34?t(m?y:"\"%s",m?"RED>\"":x+2),o++,m=!m:0,m)
for(j=!s(o,"//",2)?q=t(y,"AQUA>"):i;!q&&--j;)!s(o,h[j],r=strlen(h[j]))?t(y,"BLU"
"E>"),t(h[j]),t(x+2),o+=r:0;*o==92?t(*++o-34?*o-92?o-=2,"":"\\\\":"\\\""),o++:0;
t(*o-32?*o-60?*o-38?*o-9?a-o?o--,"":"%c":"    ":"&":"<":"&n"
"bsp;",*o);}}
0814755
NGNG>>749の必須項目でない'〜'/"〜"の機能削除してやっと7行……
int printf(),(*f)()=printf,c,d;void*fopen(),*k;char*strdup(),t[99],*p,*w[999],*
*q=w,*s="<font color=",*e="</font>";h(x){return(d=getchar())<0?0:d-x;}a(){f(d-
60?d-62?d-38?"%c":"&":">":"<",d);}main(){for(k=fopen("k","r");fscanf(
k,"%s",t)>0;)*q++=strdup(t);for(f("<body><pre>",h(0));d>0;)if(isalpha(d)|d==95)
{p=t;for(*p++=d;isalnum(h(0))|d==95;)*p++=d;*p=0;for(q=w;*q&&strcmp(t,*q);q++);
f(*q?"%sred>%s%s":t,s,t,e);}else if(d-47)a(),h(0);else{if(h(0)-42)f("/");else{f
("%steal>/",s);do{for(a();h(42);a());a();}while(h(47));a();f(e);h(0);}};}
実用性はかなり落ちるけど、とりあえず7行の範囲ってことで。
0815755
NGNGint printf(),(*f)()=printf,c,d;void*fopen(),*k;char*strdup(),t[99],*p,*w[999],*
*q=w,*s="<font color=",*l="%steal>/",*e="</font>";h(x){return(d=getchar())<0?0:
d-x;}a(){f(d-60?d-62?d-38?"%c":"&":">":"<",d);}main(){for(k=fopen("k"
,"r");fscanf(k,"%s",t)>0;)*q++=strdup(t);for(f("<body><pre>",h(0));d>0;)if(d==
95|isalpha(d)){p=t;for(*p++=d;isalnum(h(0))|d==95;)*p++=d;*p=0;for(q=w;*q&&
strcmp(t,*q);q++);f(*q?"%sred>%s%s":t,s,t,e);}else if(d-47){if(d==34|d==39){for
(f("%c%sblue>",c=d,s);h(c);)a();f(e);}a();h(0);}else{if(h(0)-42)if(d-47)f("/");
else{for(f(l,s),a();h(10);)a();f(e);a();h(0);}else{f(l,s);do{for(a();h(42);a())
;a();}while(h(47));a();f(e);h(0);}};}
0816デフォルトの名無しさん
NGNGchar*a="123456789TJQK",*b="HDCS?W\0L",c[53],d[9],e[9],l[9];int printf(),f,g,h,i,
j,(*k)()=printf,y,z;o(char*v,int w,int*x){while(c[v[w]=rand()%52]);*x+=v[w]%13>9
?10:v[w]%13+1;c[v[w]]=1;}p(char*v,int w){for(g=w;g--;)k("%c%c",*(b+v[g]/13),*(a+
v[g]%13));k("\n");}main(){srand(time(0));memset(l,52,9);memset(c,0,52);j=y=z=0;
for(g=h=i=2;g--;){o(d,g,&y);o(e,g,&z);}for(;;){k("e");p(j?e:l,h);k("m");p(d,i);y
>21?k(b+7),exit():0;z>21?k(b+5),exit():0;if(j){y>z?k(b+5):y<z?k(b+7):k("D");exit
();}scanf("%d",&g);g>0?j=1:o(d,i++,&y);z<15+rand()%5?o(e,h++,&z),j=z>21:0;}}
8行→7行
0817デフォルトの名無しさん
NGNGif k&8{y+=4}:if x<0{x=0}:if x>639{x-=4}::if x<v{s-}else{s+}:if s>5{s-}:cls
if s<-5{s+}:if y<0{y=0}:if y>479{y-=4}:if y<w{t-}else{t+}:if t>5{t-}:if t<-5:t+
v+=s:w+=t:if v<0{v=0}:if v>636{v=636}:if w<0{w=0}:if w>476{w=476}:color 255
pset v,w:color:pset x,y:if ((v-x)*(v-x))+((w-y)*(w-y))>99{wait 6:rnd r,30
if c>10000{dialog "clear":end}:if r=0{s=0:t=0}:goto *a}:dialog "score = "+c
黒い点(初期左上隅)を操作して赤点(初期左下隅)から逃げつづける。
操作はキーボードの←↑→↓で。ちなみにハイスコア530
0818デフォルトの名無しさん
NGNGint printf(),(*f)()=printf,c,d;char*k,*p,t[99],*w[999],**q=w,*s="<font color=",*
l="%steal>/",*e="</font>";h(x){return(d=getchar())<0?0:d-x;}a(){f(d-60?d-62?d-38
?"%c":"&":">":"<",d);}main(){for(k=fopen("k","r");fscanf(k,"%s",t)>0;)
*q++=strdup(t);for(f("<body>",h(0));d>0;)if(d==95|isalpha(d)){p=t;for(*p++=d;
isalnum(h(0))|d==95;)*p++=d;*p=0;for(q=w;*q&&strcmp(t,*q);q++);f(*q?"%sred>%s%s"
:t,s,t,e);}else if(d-47){if(d==34|d==39){for(f("%c%sblue>",c=d,s);h(c);)a();f(e)
;}a();h(0);}else{if(h(0)-42)if(d-47)f("/");else{for(f(l,s),a();h(10);)a();f(e);a
();h(0);}else{f(l,s);do{for(a();h(42);a());a();}while(h(47));a();f(e);h(0);}};}
0819755
NGNGint以外のプロトタイプ無くすのはともかく
<pre>無くすと<br>とか&nbsp;とか要るから
a(){f(d-9?d-10?d-32?d-60?d-62?d-38?"%c":"&":">":"<":" ":"<br>":
"    ",d);}
とかになってむしろ長くなるかと。
0820デフォルトの名無しさん
NGNGint*k,printf(),(*f)()=printf,c,d;char*p,t[99],*w[999],**q=w,*s="<font color=",*l
="%steal>/",*e="</font>";h(x){return(d=getchar())<0?0:d-x;}a(){f(d-60?d-62?d-38?
"%c":"&":">":"<",d);}main(){for(k=fopen("k","r");fscanf(k,"%s",t)>0;)*
q++=strdup(t);for(f("<pre>",h(0));d>0;)if(d==95|isalpha(d)){p=t;for(*p++=d;
isalnum(h(0))|d==95;)*p++=d;*p=0;for(q=w;*q&&strcmp(t,*q);q++);f(*q?"%sred>%s%s"
:t,s,t,e);}else if(d-47){if(d==34|d==39){for(f("%c%sblue>",c=d,s);h(c);)a();f(e)
;}a();h(0);}else{if(h(0)-42)if(d-47)f("/");else{for(f(l,s),a();h(10);)a();f(e);a
();h(0);}else{f(l,s);do{for(a();h(42);a());a();}while(h(47));a();f(e);h(0);}};}
0821デフォルトの名無しさん
NGNGint*k,printf(),(*f)()=printf,c,d;char*p,t[99],*w[999],**q=w,*s="<font color=",*l
="%steal>/",*e="</font>";h(x){return(d=getchar())<0?0:d-x;}a(){f(d-60?d-62?d-38?
"%c":"&":">":"<",d);}main(){for(k=fopen("k","r");fscanf(k,"%s",t)>0;)*
q++=strdup(t);for(f("<pre>",h(0));d>0;)if(d==95|isalpha(d)){p=t;for(*p++=d;
isalnum(h(0))|d==95;)*p++=d;*p=0;for(q=w;*q&&strcmp(t,*q);q++);f(*q?"%sred>%s%s"
:t,s,t,e);}else if(d-47){if(d==34|d==39){for(f("%c%sblue>",c=d,s);h(c);)a();f(e)
;}a();h(0);}else{if(h(0)-42)if(d-47)f("/");else{for(f(l,s),a();h(10);)a();f(e);a
();h(0);}else{f(l,s);do{for(a();h(42);a());a();}while(h(47));a();f(e);h(0);}};}
0822デフォルトの名無しさん
NGNGこのパターンのforが3箇所あるのでトータルでは削れる
場所によっては{for(AAA();h(c);)a();BBB();}→AAA(),o(c),BBB();と{}を省略可能かと
ついでに一部のif()elseが3項演算子に出来るかもしれず
ちなみに検証はしてない(w
0823デフォルトの名無しさん
NGNGp=t;for(*p++=d;isalnum(h(0))|d==95;)*p++=d;*p=0;
を
ungetc(d,i);fscanf(i,"%[0-9a-zA-Z_]",t);
に。たぶん*pは未使用になる。
0824755
NGNG色々取り入れてついでに警告抑制してみた。
int w[999],*q=w,k,printf(),(*f)()=printf,c,d;char*e="</font>",*l="%steal>/",*s=
"<font color=",t[99];a(){f(d-60?d-62?d-38?"%c":"&":">":"<",d);}h(x){
return(d=getchar())<0?0:d-x;}o(x){for(;h(x);)a();}main(){for(k=fopen("k","r");
fscanf(k,"%s",t)>0;)*q++=strdup(t);for(f("<pre>",h(0));d>0;)if(d==95|isalpha(d)
){*t=d;t[1]=0;h(scanf("%[0-9a-zA-Z_]",t+1));for(q=w;*q&&strcmp(t,*q);q++);f(*q?
"%sred>%s%s":t,s,t,e);}else if(d-47){d==34|d==39?f("%c%sblue>",c=d,s),o(c),f(e)
:0;a();h(0);}else{if(h(0)-42)d-47?f("/"):f(l,s),a(),o(10),a(),h(f(e));else{f(l,
s);do a(),o(42),a();while(h(47));a();h(f(e));}};}
0825デフォルトの名無しさん
NGNG//コメントの機能削除,getsを使用,stdio.h削除して7行
int printf(),(*t)()=printf,memcmp(),(*s)()=memcmp,i=1,j,p,q,r,f;char*o,*a,g[99],
h[999],*x="*/</FONT>",*y="<FONT COLOR=%s";main(m){f=fopen("k","r");for(t("<pre>"
);m=gets(o=h);)for(;*(a=o);o++){for(j=0;m&&j<2;j++)!s(o,j?"*/":"/*",2)?p=!j,t(j?
x:y,"AQUA>/*"),o+=2:0;if(!p)if(*o==34?t(m?y:"\"%s",m?"RED>\"":x+2),o++,m=!m:0,m)
{for(rewind(f),q=1;q;)for(r=0;q;)(q=~(j=getc(f)))&&j-10&&j-13?g[r++]=j:(r=r*!s(o
,g,r)?g[r]=0,t(y,"BLUE>"),t(g),t(x+2),o+=r,q=0:0);}*o==92?t(*++o-34?*o-92?o-=2,
"":"\\\\":"\\\""),o++:0;t(*o-60?*o-38?a-o?o--,"":"%c":"&":"<",*o);}}
0826デフォルトの名無しさん
NGNGgetsだと改行が無くなる。
int printf(),(*t)()=printf,memcmp(),(*s)()=memcmp,i=1,j,p,q,r,f;char*o,*a,g[99],
h[999],*x="*/</FONT>",*y="<FONT COLOR=%s";main(m){f=fopen("k","r");for(t("<PRE>"
);m=gets(o=h);t("\n"))for(;*(a=o);o++){for(j=0;m&&j<2;j++)!s(o,j?"*/":"/*",2)?p=
!j,t(j?x:y,"AQUA>/*"),o+=2:0;if(!p)if(*o==34?t(m?y:"\"%s",m?"RED>\"":x+2),o++,m=
!m:m){for(rewind(f),q=1;q;)for(r=0;q;)(q=~(j=getc(f)))&&j-10&&j-13?g[r++]=j:(r=r
*!s(o,g,r)?g[r]=0,t(y,"BLUE>"),t(g),t(x+2),o+=r,q=0:0);}*o==92?t(*++o-34?*o-92?o
-=2,"":"\\\\":"\\\""),o++:0;t(*o-60?*o-38?a-o?o--,"":"%c":"&":"<",*o);}}
0827788
NGNG機能追加: ちょっと短くできたので、行番号表示をしてみました。
int printf(),(*t)()=printf,memcmp(),(*s)()=memcmp,i,j,p,q,r,f;char*o,*a,g[99],h[
999],*x="*/</FONT>",*y="<FONT COLOR=%s";main(m){f=fopen("k","r");for(t("<pre>");
m=gets(o=h);)for(t("%3d ",++i);*(a=o);o++){for(j=2;m&&j--;)!s(o,j?"/*":"*/",2)?p
=j,t(j?y:x,"AQUA>/*"),o+=2:0;if(!p)if(*o==34?t(m?y:"\"%s",m?"RED>\"":x+2),o++,m=
!m:0,m)for(rewind(f),q=1;q;)for(r=0;q;)(q=~(j=getc(f)))&&j-10&&j-13?g[r++]=j:(r=
r*!s(o,g,r)?g[r]=!t(y,"BLUE>"),t(g),o+=r,q=!t(x+2):0);*o==92?t(*++o-34?*o-92?o-=
2,"":"\\\\":"\\\""),o++:0;t(*o-60?*o-38?a-o?o--,"":"%c":"&":"<",*o);}}
0828788
NGNGint printf(),(*t)()=printf,memcmp(),(*s)()=memcmp,i,j,p,q,r,f;char*o,*a,g[99],h[
999],*x="*/</FONT>",*y="<FONT COLOR=%s";main(m){f=fopen("k","r");for(t("<pre>");
m=gets(o=h);)for(t("\n%3d ",++i);*(a=o);o++){for(j=2;m&&j--;)!s(o,j?"/*":"*/",2)
?p=j,t(j?y:x,"AQUA>/*"),o+=2:0;if(!p)if(*o==34?t(m?y:"\"%s",m?"RED>\"":x+2),o++,
m=!m:m)for(rewind(f),q=1;q;)for(r=0;q;)(q=~(j=getc(f)))&&j-10&&j-13?g[r++]=j:(r=
r*!s(o,g,r)?g[r]=!t(y,"BLUE>"),t(g),o+=r,q=!t(x+2):0);*o==92?t(*++o-34?*o-92?o-=
2,"":"\\\\":"\\\""),o++:0;t(*o-60?*o-38?a-o?o--,"":"%c":"&":"<",*o);}}
0829755
NGNGint w[999],*q=w,k,printf(),(*f)()=printf,c,d;char*e="</font>",*l="%steal>/",*s=
"<font color=",t[99];a(){f(d-60?d-38?"%c":"&":"<",d);}h(x){return(d=
getchar())<0?0:d-x;}o(x){for(;h(x);)a();}main(){for(k=fopen("k","r");fscanf(k,
"%s",t)>0;)*q++=strdup(t);for(h(f("<pre>"));d>0;)if(d==95|isalpha(*t=d)){t[1]=0
;h(scanf("%[0-9a-zA-Z_]",t+1));for(q=w;*q&&strcmp(t,*q);q++);f(*q?"%sred>%s%s":
t,s,t,e);}else if(d-47){d==34|d==39?f("%c%sblue>",c=d,s),o(c),f(e):0;a();h(0);}
else{if(h(0)-42)d==47?f(l,s),a(),o(10),a(),h(f(e)):f("/");else{f(l,s);do a(),o(
42),a();while(h(47));a();h(f(e));}};}
0830デフォルトの名無しさん
NGNGint printf(),(*t)()=printf,memcmp(),(*s)()=memcmp,i,j,p,q,r,f;char*o,*a,g[99],h
[999],*x="*/</FONT>",*y="<FONT COLOR=%s";main(m){f=fopen("k","r");for(t("<pre>"
);m=gets(o=h);)for(t("\n%3d ",++i);*(a=o);o++){for(q=j=2;m*j--;)s(o,j?"/*":"*/"
,2)||t((p=j)?y:x,"AQUA>/*",o+=2);if(!p?*o==34?t(m?y:"\"%s",m?"RED>\"":x+2),o++,
m=!m:m:0)for(rewind(f),r=0;q;)(q=~(j=getc(f)))&&j-10&&j-13?g[r++]=j:(r=r*!s(o,g
,r)?g[r]=!t(y,"BLUE>"),t(g),o+=r,q=!t(x+2):0);*o==92?t(*++o-34?*o-92?o-=2,"":
"\\\\":"\\\""),o++:0;t(*o-60?*o-38?a-o?o--,"":"%c":"&":"<",*o);}}
0831デフォルトの名無しさん
NGNGf(l,s);do a(),o(42),a();while(h(47));をfor(f(l,s);a(),o(42),a(),h(47););に。
d==47をd-47に(入れ替え)。
7行目最初のelseの{と、対応する}は冗長。
最後の;は要る?
0832755
NGNGご指摘通りに。6文字減少。
ただ、d==47は入れ替えると括弧が増える
(もしくは824のバグが再発する)。
d-47?f("/"):(f(l,s),a(),o(10),a(),h(f(e)))
int w[999],*q=w,k,printf(),(*f)()=printf,c,d;char*e="</font>",*l="%steal>/",*s=
"<font color=",t[99];a(){f(d-60?d-38?"%c":"&":"<",d);}h(x){return(d=
getchar())<0?0:d-x;}o(x){for(;h(x);)a();}main(){for(k=fopen("k","r");fscanf(k,
"%s",t)>0;)*q++=strdup(t);for(h(f("<pre>"));d>0;)if(d==95|isalpha(*t=d)){t[1]=0
;h(scanf("%[0-9a-zA-Z_]",t+1));for(q=w;*q&&strcmp(t,*q);q++);f(*q?"%sred>%s%s":
t,s,t,e);}else if(d-47){d==34|d==39?f("%c%sblue>",c=d,s),o(c),f(e):0;a();h(0);}
else if(h(0)-42)d==47?f(l,s),a(),o(10),a(),h(f(e)):f("/");else{for(f(l,s);a(),o
(42),a(),h(47););a();h(f(e));}}
0833788
NGNGint printf(),(*t)()=printf,i,j,p,q,r,f;char*o,*a,g[99],h[999],*x="*/</FONT>",*y=
"<FONT COLOR=%s";main(m){f=fopen("k","r");for(t("<pre>");m=gets(o=h);)for(t("\n"
"%3d ",++i);*(a=o);o++){for(q=j=2;m*j--;)memcmp(o,j?"/*":x,2)||t((p=j)?y:x,"AQU"
"A>/*",o+=2);if(!p?*o==34?t(m?y:"\"%s",m?"RED>\"":x+2),o++,m=!m:m:0)for(rewind(f
),r=0;q;)(q=~(j=getc(f)))&&j-10&&j-13?g[r++]=j:(r=r*!memcmp(o,g,r)?g[r]=!t(y,"B"
"LUE>"),t(g),o+=q=r,t(x+2):0);*o==92?t(*++o-34?*o-92?o-=2,"":"\\\\":"\\\""),o++:
0;t(*o-60?*o-38?o-a?o--,"":"%c":"&":"<",*o);}}
0834デフォルトの名無しさん
NGNG>>1にあるやうに1行は79文字にしませう
0835デフォルトの名無しさん
NGNG以前は7x80だったよね?
なんで79になってるの?中途半端でしょ。
0836835
NGNG以前に、「なぜ80じゃないのか?」という議論があったとき、
改行を含むか含まないか、80文字でも1行で表示できるできない、
といろいろ意見があって、結局のところ、
「79でも80でもどちらでも、その人の好きなように」という結論だったはず。
0837788
NGNGいやいやおかしいな、と思ってよく見たら、
エディタの80行自動折り返しが、横80文字でした。
ついでに過去ログをざっと眺めてみましたが、
>>836 の議論は、もともと「改行文字を含めて」79文字なのかどうかの議論のようです。
part1の最初の頃は1行78文字の作品もあります。
が、その後いろいろ見ていると、半数近くの作品が、
「改行文字を含めずに」79文字と80文字になっているようですね。
私としては、どちらでもいいかなと思います。
しかし、79文字の方が難易度が高いので、
(一応今回の私のは、79文字でも7行でしたが)
次回も挑戦することがあれば79文字でやっていこうと思います。
0838デフォルトの名無しさん
NGNGmain(y,z)char**z;{void*a,*b;int c=1,e,f;char d[999];y!=4?exit():0;a=fopen(z[1],
"r");b=fopen(z[2],"w");for(;!feof(a);c++){fgets(d,999,a);f=strlen(d)-1;d[f]==10
||d[f]==13?d[f]=0:0;for(e=0;d[e]>0;e++)!memcmp(d+e,z[3],strlen(z[3]))?fprintf(b
,"%s(l%d):%s\n",z[1],c,d),d[e+1]=0:0;}}
grep [検索を掛けるファイル名][リスト出力用ファイル名][検索キーワード]
0839シ尺木寸
NGNG0840838
NGNG0841仕様書無しさん
NGNG0842デフォルトの名無しさん
NGNGmain(y,z)char**z;{void*a,*b;int c=1,e,f,h,i,j;char d[999],g[99][999],k[99];y!=4?
exit():0;memset(k,0,99);for(f=h=i=0;z[3][i]>0;f++,i++){z[3][i]==38?g[h][f]=0,f=0
,h++,i++,k[h]=1:0;z[3][i]==124?g[h][f]=0,f=0,h++,i++:0;z[3][i]==92&&(z[3][i+1]==
38||z[3][i+1]==124)?i++:0;g[h][f]=z[3][i];g[h][f+1]=0;}a=fopen(z[1],"r");b=fopen
(z[2],"w");for(;!feof(a);c++){fgets(d,999,a);f=strlen(d)-1;d[f]==10||d[f]==13?d[
f]=0:0;for(f=0;f<=h;f++){for(e=j=0;d[e]>0;e++)memcmp(d+e,g[f],strlen(g[f]))==0?j
=1:0;k[f]>0&&j==0?j=0,f=h+1:0;}j==1?fprintf(b,"%s(l%d):%s\n",z[1],c,d):0;}}
正規表現"|","&"入れただけで2倍・・・
0843デフォルトの名無しさん
NGNG"&"?
0844デフォルトの名無しさん
NGNG0845デフォルトの名無しさん
NGNG0846デフォルトの名無しさん
NGNGmain(y,z)char**z;{void*a,*b;int c=1,e,f,h,i,j;char d[999],g[99][99],k[99];y=4;y<
4?exit():0;memset(k,0,100);for(f=h=i=0;z[3][i]>0;f++,i++){z[3][i]==38?g[h][f]=0,
f=0,h++,i++,k[h]=1:0;z[3][i]==124?g[h][f]=0,f=0,h++,i++:0;i+=z[3][i]==92&(z[3][i
+1]==38|z[3][i+1]==124);g[h][f]=z[3][i];g[h][f+1]=0;}a=fopen(z[1],"r");b=fopen(z
[2],"w");for(;!feof(a);c++){fgets(d,999,a);f=strlen(d)-1;d[f]==10|d[f]==13?d[f]=
0:0;for(f=j=0;f<=h;k[f]>0&!j?f=h+1:f++)for(e=0;d[e]>0;e++)memcmp(d+e,g[f],strlen
(g[f]))==0?j=1:0;j?fprintf(b,"%s(l%d):%s\n",z[1],c,d):0;}}
grep [検索を掛けるファイル名][検索ヒットリスト用ファイル名][検索キーワード]
※検索キーワードの正規表現のようなもの
| …または…を含む行を検索(ex. dog|cat|frog)
& …かつ…を含む行を検索(ex. cow&bird)
0847デフォルトの名無しさん
NGNG0848デフォルトの名無しさん
NGNG0849デフォルトの名無しさん
NGNGオリジナルのgrepみたいな仕様にした。出力は標準出力で、
grep パターン ファイル名
それから、&の動作が間違っていると思うのだが・・・
とりあえずそのまま縮めた
int c=1,f,h,i,j;char*o,d[999],g[99][99],k[99];main(y,z)char**z;{if(y<3)exit();
for(o=*++z;o[i]>0;g[h][++f]=0)o[i]==38?f=g[h][f]=0,i++,k[++h]=1:0,o[i]==124?f=g
[h++][f]=0,i++:0,i+=o[i]==92&(o[i+1]==38|o[i+1]==124),g[h][f]=o[i++];for(y=
fopen(*++z,"r");fgets(d,999,y);j&&printf("%s(l%d):%s\n",*z,c,d),c++)for(f=
strlen(d)-1,f=j=d[f]==10|d[f]==13?d[f]=0:0;f<=h;k[f]>0&!j?f=h+1:f++)for(o=d;*o;
)j+=!memcmp(o++,g[f],strlen(g[f]));}
0850デフォルトの名無しさん
NGNG対応するとか。
あと、argcのチェックや、CR,LF両対応(テキストモードで開いてる
にも関わらず)をするより、gREpに近い機能を盛り込んだほうが
よいのでは。
&機能はgrepを|で接げば実現できるので、個人的には不要に思う。
0851!842
NGNG俺もオリジナルgrepの動作を真似たほうがよいと考えている。
grep '[1-9][1-9]*' file
くらいが実行できるようにしてみるつもり。
ちなみに or の | があるのは、egrep か grep -E の機能だね。
int c,f,h,i,j;char*o,d[999],g[99][99],k[99];main(y,z)char**z;{for(o=*++z;o[i]>0
;g[h][f++]=o[i++])o[i]==124?f=g[h++][f]=0,i++:0,i+=o[i]==92&o[i+1]==124;for(y=
fopen(*++z,"r");fgets(d,999,y);c++,j&&printf("%s(l%d):%s",*z,c,d))for(f=j=0;f<=
h;k[f]&!j?f=h+1:f++)j+=!!strstr(d,g[f]);}
0852!842
NGNG[]による選択が可能なようにした。ただし、[1-9]のような指定はまだできない。
残り2行半で、[1-9a-zA-Z]と.くらいは実装できるかなあ。
未熟な俺にはそれで精一杯だろうから、スペシャリストの後輪キボンヌ
int c,f,h=1,j;char d[999],g[999][99],x[999];a(o,p,f,m,n)char*o,*p;{for(;*p;g[m]
[f++]=*p++)if(*p==91){for(o=p+1;*++p-93;g[h++][f]=*p)strcpy(g[h],g[m]);for(x[m]
=n=h;p>o;)a(o++,p+1,f+1,--n);return;}}main(y,z)char**z;{a(d,*++z,0,0,0);for(y=
fopen(*++z,"r");fgets(d,999,y);c++,j&&printf("%d:%s",c,d))for(j=f=0;f<h;f++)!x[
f]?j+=!!strstr(d,g[f]):0;}
0853デフォルトの名無しさん
NGNGhttp://www.pink-angel.jp/betu/linkvp/linkvp.html
0854デフォルトの名無しさん
NGNGstrstr()をsscanf()にし%[^0-9]を使い、先頭から順にマッチングすれば
[^0-9]には対応できるのでは? .は%*cで。
0855デフォルトの名無しさん
NGNG0856デフォルトの名無しさん
NGNG0857!842
NGNG[]による選択の際、-(ハイフン)を用いた指定が可能に。
>>854
オートマトンを作ったほうがよいのかもしれんが、7行に収まりそうもないので、
次のバージョンからsscanfによる検索に挑戦してみる。
int c,f,h=1,j;char d[999],g[999][99],x[999];a(o,p,e,m,n)char*o,*p;{for(;*p;g[m]
[e++]=*p++)if(*p==91){j=0;for(o=p+1;*++p-93;j++){if(*p==45&p[1]!=93)for(f=p[-1]
+1,p++;f<*p;g[h++][e]=f++,j++)strcpy(g[h],g[m]);strcpy(g[h],g[m]);g[h++][e]=*p;
}for(x[m]=n=h,m=j;m--;)a(o,p+1,e+1,--n);return;}}main(y,z)char**z;{a(d,*++z,0,0
,0);for(y=fopen(*++z,"r");fgets(d,999,y);c++,j&&printf("%d:%s",c,d))for(j=f=0;f
<h;f++)!x[f]?j+=!!strstr(d,g[f]):0;}
0858デフォルトの名無しさん
NGNG「アナグラム」
どう?
0859デフォルトの名無しさん
NGNG| ム |
 ̄ ̄ ̄ ̄
0860デフォルトの名無しさん
NGNG3分でこの回答なら合格。
0861デフォルトの名無しさん
NGNGanagram 辞書ファイル名 アルファベットのみの文字列
辞書は1語1行で終端に必ず改行を入れる
9行だがこんな感じでどうだ?
typedef struct D{struct D*p;char f[96],s[];}d;int i,j,k;d*a,*h,*n,*t,*e[999],Z;
d*A(s,l)char*s;{;a=(d*)calloc(1,sizeof(d)+l);s[--l]=0;strcpy(a->s,s);for(s=a->s
;l;a->f[s[--l]&=95]++);return a;}g(char*f){for(i=96;i-->0;(t->f[i]<f[i])?i=-2:0
);return i+3;}x(f,a)char*f;{for(i=96;i--;t->f[i]+=a*f[i]);}main(c,v)char**v;{
char s[999];void*f=(void*)fopen(v[1],"r");for(;fgets(s,999,f);n=A(s,strlen(s)),
n->p=h,h=n);for(t=A(v[2],strlen(v[2])+1),j=0;j+1;){for(n=h;;){for(;n;n=n->p)if(
g(n->f)){x(n->f,-1),e[j++]=n;break;}if(!n){if(!memcmp(Z.f,t->f,96)){for(k=0;k<j
;printf("%s ",e[k++]->s));puts("");}if(!j--)break;x(e[j]->f,1);n=e[j]->p;if(!n)
x(e[--j]->f,1);}}}}
0862デフォルトの名無しさん
NGNG0863デフォルトの名無しさん
NGNG#include<stdio.h>
#include<string.h>
char*X,L[3][9999];C(char*S,char*D){char*s;for(s=*D-42?"":S;*s&&!C(s,D+1);++s);
return*D?*D-42?*D-91||!(s=strchr(D,93))?*D-63?s=D-~strcspn(D+1,"[*?"),strncmp(
S,D,s-D)?0:C(s-D+S,s):*S&&C(S+1,D+1):(sprintf(L[1],"%%1%s",D),sscanf(S,L[1],L[
2])&&C(S+1,s+1)):C(s,D+1):1;}main(c,v)char**v;{FILE*f=fopen(v[2],"r");for(c=0;
X=fgets(*L,9999,f);*X&&printf("%d:%s",c,*L))for(++c;*X&&!C(X,v[1]);++X);}
0864デフォルトの名無しさん
NGNGこの程度↓のルールなら7行楽勝では?
ttp://www.asahi-net.or.jp/~EY5K-MYHR/p_majan.htm
0865デフォルトの名無しさん
NGNGFP-602P! 懐かしいな。
自分は501Pしか持ってませんでしたけどね。(泣
まず解読するのに手間がかかるな(w
0866デフォルトの名無しさん
NGNGtitle "5行クエスト":h=95:i=150:v=13:x=3:y=3:z=2:n="勇者":m="魔王":width 420,200
mes m+"が現れた!":wait 99:do:text 13:randomize:rnd d,20:if d>18{d=d*2}if t\2=1{
d+(x-y):a=m:b=n:h-d:c=h}else{d+(v-z):a=n:b=m:i-d:c=i}mes a+"「"+b+"氏ねよ」"
wait 40:mes a+"の攻撃!"+b+"に"+d+"のダメージ! "+b+"の残りHP"+c+"":wait 90:t+
if t\5=0{cls}until (h<1)|(i<1):mes b+"は氏んだ":dialog a+"必死だな(藁",1,"END"
0867デフォルトの名無しさん
NGNGプレイヤーの参加性がほしい。
1ターン中に一定時間内にマウスかキーを連打させ、
その回数をダメージに反映させるようにしたら?
(さらには攻撃はマウス連打、防御(被攻撃)はキー連打とか)
んで、ゲームバランスを、必死にならないと勝てないくらいにする、と。
0868866
NGNGz=96:v=16:h=z,z:c="λ":e="城":do:stick k,15:x+=k&4>0*(x+v<winx)-(k&1*x>0)*v
y+=k&8!0*(y+v<winy)-(k&2*y>0)*v:pos x,y:mes c:if k>0{cls}:wait 1:pos z,z:mes e
until x=z&(y=z):repeat 4:boxf:wait v:cls:wait v:loop:sdim n,8,2:n="魔王","勇者"
width 320,320:pos:cls:mes n+"が現れた!":wait z:cls:do:mes "←連射しる!":text v
g=g^1:b=g^1:do:stick k:d+=k&1:a+:await 1:until a\300=0:if t\2=1{d=30-d}
h.b-d:mes n.g+"の攻撃!"+n.b+"に"+d+"のダメージ! "+n.b+"HP"+h.b:d=0:t+:wait z
if t\6=0{cls}until h.b<1:mes n.b+"は氏んだ":dialog n.g+"必死だな(藁",1,"END"
0869デフォルトの名無しさん
NGNG0870デフォルトの名無しさん
NGNG0871デフォルトの名無しさん
NGNG操作の種類は問わないけど
0872デフォルトの名無しさん
NGNG0873デフォルトの名無しさん
NGNG0874デフォルトの名無しさん
NGNGttp://water.si.hirosaki-u.ac.jp/~slmizu/jikken_gazo/jikken_gazo/node3.html#SECTION00422000000000000000
こんなの。
*NIX上限定なら#include</dev/tty>とかで読み込みに関する記述を省ける(邪道だな
0875デフォルトの名無しさん
NGNGでもこれに対してやりたい操作ってなんかあるの?
0876デフォルトの名無しさん
NGNGそれかxpm2bmpとか(キビシイか)。
0877デフォルトの名無しさん
NGNG0878デフォルトの名無しさん
NGNGイヤラシイ画像を自動生成するとか。
0879デフォルトの名無しさん
NGNG0880デフォルトの名無しさん
NGNGもっと見易く書けよ
0881デフォルトの名無しさん
NGNGネタ ? 煽り ? 単なるヴァカ ?
0882デフォルトの名無しさん
NGNG0883デフォルトの名無しさん
NGNGどうっすか?
釣れてますか?
0884デフォルトの名無しさん
NGNGプログラムをどなたか作ってください。
0885デフォルトの名無しさん
NGNG自動でやらせて何が嬉しいんだか・・・
0886デフォルトの名無しさん
NGNG0887デフォルトの名無しさん
NGNGサーバとクライアント間で文字列(ないしは1バイト記号)を転送をする
環境:お好きなように
0888デフォルトの名無しさん
NGNG0889デフォルトの名無しさん
NGNGまだ実現可能性があると思うがどうか。
0890デフォルトの名無しさん
NGNG7行でできる限り強力なもの 暗号化と複合化は別々で桶
0891デフォルトの名無しさん
NGNG7行RSAとかどうよ
多倍長できないと駄目ね
0892デフォルトの名無しさん
NGNG0893デフォルトの名無しさん
NGNG楽勝だろ?
0894デフォルトの名無しさん
NGNGHTTP proxy なら過去にあったが、任意のポートとなるとまだないね。
ファイルからIPアドレス変換とか許可ポートを取得して、
それにしたがってNATをかますとか(NAPTは無理だろう)。
0895デフォルトの名無しさん
NGNG0896デフォルトの名無しさん
NGNGネタ:ガッ
0897デフォルトの名無しさん
NGNG0898デフォルトの名無しさん
NGNGint main(int argc,char **argv){return (int)*argv[argc];}
のほうが、コンパイル時にエラーが出ず、コード中にNULLがなく、
それでいて確実にNULL参照するのでいいのでは? どうでもいいが。。
0899デフォルトの名無しさん
NGNG0900デフォルトの名無しさん
NGNGどうでもいいけど900get
0901デフォルトの名無しさん
NGNGどうでもよくない
0902デフォルトの名無しさん
NGNGてつでもいいけど902get
0903デフォルトの名無しさん
NGNG意味がない
0904デフォルトの名無しさん
NGNG0905 ◆Bpod9Etbmc
NGNG/*---------------------------------------------------------------------------*/
#include <stdio.h>
main(int c,char**v){char*s,i[30000];int l,n,b,t=30000;long a[9];FILE*f;for(++v;
*v;++v){memset(i,0,t);s=i;b=0;if(f=fopen(*v,"r")){while(l=fgetc(f),l-EOF){if(l
=='>'&&++s>=i+t)exit(1);if(l=='<'&&s--<i)exit(1);if(l=='+')++*s;if(l=='-')--*s;
if(l==',')*s=getchar();if(l=='.')putchar(*s);if(l==']'){if(!b)exit(1);fseek(f,a
[--b],0);}if(l=='['){if(b>9)exit(1);if(*s)a[b++]=ftell(f)-1;else{n=0;do{l=fgetc
(f);if(l=='[')++n;if(l==']'&&!n--)break;}while(l-EOF);}}}fclose(f);}}return 0;}
/*---------------------------------------------------------------------------*/
0906デフォルトの名無しさん
NGNG本家に3行インタプリタがあったはずだが。
0907 ◆Bpod9Etbmc
NGNGエラーチェックを外し、全体的にリファイン+いい加減化。
入力文字列をファイルの中身から argv[1] に変更。
char*s,b[30000],*p=b,l;x(int i,int d){while(l=s[i++]){if(l==']')return i;if(d){p
+=l=='>';p-=l=='<';*p+=l=='+';*p-=l=='-';if(l==',')*p=getchar();l=='.'&&putchar(*
p);}if(l=='['){while(d&&*p)x(i,1);i=x(i,0);}}}main(int c,char**v){s=v[1];x(0,1);}
0908デフォルトの名無しさん
NGNG0909デフォルトの名無しさん
NGNGInput: Integer n > 1
if (n has the form ab with b > 1) then output COMPOSITE
r := 2
while (r < n) {
if (gcd(n,r) is not 1) then output COMPOSITE
if (r is prime greater than 2) then {
let q be the largest factor of r-1
if (q > 4sqrt(r)log n) and (n(r-1)/q is not 1 (mod r)) then break
}
r := r+1
}
for a = 1 to 2sqrt(r)log n {
if ( (x-a)n is not (xn-a) (mod xr-1,n) ) then output COMPOSITE
}
output PRIME;
0910デフォルトの名無しさん
NGNG0911デフォルトの名無しさん
NGNG次スレ前に気合上げ
0912デフォルトの名無しさん
NGNGあせらずに!
0913山崎渉
NGNG0914山崎渉
NGNG( ^^ )< ぬるぽ(^^)
0915JPEG part 1
NGNGtypedef unsigned char B;typedef int I;
B z[]={0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,
6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,
39,46,53,60,61,54,47,55,62,63};typedef struct{I c[256],s[256],v[256];}H;
I wi,he,m_wi,m_he,m_h,m_v,cc,sc,ri,ci[3],si[3],s_ac[3],s_dc[3],c_h[3],c_v[3],
c_qt[3],s_h[3],s_v[3],s_qt[3],m_buf[4096],*m_yuv[4],mp[3],qt[3][64],n_qt,bb,br;
double bi[4096];H hf[2][3];FILE *fp;B gb(){return fgetc(fp);}I gw(){return gb()
<<8|gb();}I gi(I b){I c,r;while(br<17){c=gb();if(c==255)gb();bb=(bb<<8)|c;br+=8
;}r=(bb>>(br-b))&((1<<b)-1);br-=b;return r;}sof(){I c,i,v;gw();gb();he=gw();wi=
gw();cc=gb();for(i=0;i<cc;i++){ci[i]=gb();c=gb();v=(c>>4)&15;if(m_h<v)m_h=v;c_h
[i]=v;v=c&15;if(m_v<v)m_v=v;c_v[i]=v;c_qt[i]=gb();}}dqt(){I c,i,j,v,s=gw()-2;
while(s>0){s--;j=gb()&7;if(j>n_qt)n_qt=j;for(i=0;i<64;i++){s--;qt[j][i]=gb();}}
}dht(){I s,c,i,j,k,n,l[17];H *t;s=gw()-2;while(s>0){c=gb();t=(H*)&hf[c>>4][c&15
];for(n=0,i=1;i<=16;i++)n+=l[i]=gb();for(k=0,i=1;i<=16;i++)for(j=0;j<l[i];j++)t
->s[k++]=i;for(k=c=0,i=t->s[0];k<n;){while(t->s[k]==i)t->c[k++]=c++;if(k>=n)
break;do{c<<=1;i++;}while(t->s[k]!=i);}for(k=0;k<n;k++)t->v[k]=gb();s-=n+18;}}
sos(){I i=0,c;gw();sc=gb();for(;i<sc;i++){si[i]=gb();c=gb();s_dc[i]=c>>4;s_ac[i
]=c&15;}gw();gb();}I hd(I a,I b){I c,s,k,v;c=s=k=0;H *h=&(hf[a][b]);while(s<16)
0916part 2
NGNG-1;}id(I *a,I *b){I i,j;double t[64];for(i=0;i<64;i++)t[i]=0;for(i=0;i<4096;i++
)t[i&63]+=a[i/64]*bi[i];for(i=0;i<64;i++)b[i]=(I)t[i];}I gv(I s){I v=0;if(s){v=
gi(s);if(!(v&(1<<(s-1))))v=v-(1<<s)+1;}return v;}dh(I a,I *b){I s,l,r,v,i=1,*pQ
=(I*)qt[s_qt[a]];s=hd(0,s_dc[a]);if(s<0)return 0;v=gv(s);mp[a]+=v;*b=mp[a]* *pQ
;while(i<64){s=hd(1,s_ac[a]);if(s<=0)break;r=(s>>4)&15;while(r--)b[z[i++]]=0;b[
z[i]]=gv(s&15)*pQ[i++];}while(i<64)b[z[i++]]=0;}bl(I*a,I*b,I wd,I x0,I y0,I x1,
I y1){I w=x1-x0,h=y1-y0,x,y,x2,y2;for(y=y0;y<y1;y++)for(x=x0;x<x1;x++){y2=(y-y0
)*8/h;x2=(x-x0)*8/w;b[(y*wd)+x]=a[(y2*8)+x2];}}dm(){I s,v,h,*p,hh,vv,a[64],b[64
];for(s=0;s<sc;s++){hh=s_h[s];vv=s_v[s];for(v=0;v<vv;v++)for(h=0;h<hh;h++){dh(s
,a);id(a,b);p=m_buf+(s<<10);bl(b,p,m_wi,m_wi*h/hh,m_he*v/vv,m_wi*(h+1)/hh,m_he*
(v+1)/vv);}}}dy(I h,I _v,B *r){I x0,y0,i,j,x1,y1,*y,*u,*v,Y,U,V,k;x0=h*m_h*8;y0
=_v*m_v*8;x1=wi-x0;x1=(x1>m_wi)?m_wi:x1;y1=he-y0;y1=(y1>m_wi)?m_wi:y1;y=m_buf;u
=m_buf+1024;v=m_buf+2048;for(j=0;j<y1;j++)for(i=0;i<x1;i++){k=j*m_wi+i;Y=y[k];U
=u[k];V=v[k];h=((y0+j)*wi+(x0+i))*3;_v=Y<<12;k=128+((_v+V*0x166E)>>12);r[h]=(k>
255)?255:((k<0)?0:k);k=128+((_v-V*0x0B6C)>>12);r[h+1]=(k>255)?255:((k<0)?0:k);k
=128+((_v+U*0x1C59)>>12);r[h+2]=(k>255)?255:((k<0)?0:k);}}init(){I c,u,v,m,n;d\
ouble o[8],p[8],q,pi=M_PI;for(u=0;u<8;u++)for(v=0;v<8;v++){for(m=0;m<8;m++)o[m]
0917part 3(最後)
NGNG;for(m=0;m<8;m++)for(n=0;n<8;n++){q=0.25;if(u==0)q/=sqrt(2);if(v==0)q/=sqrt(2);
bi[(u*8+v)*64+m*8+n]=o[m]*p[n]*q;}}mp[0]=mp[1]=mp[2]=0;n_qt=m_h=m_v=br=bb=0;wh\
ile(1){if(gb()!=0xFF||feof(fp))break;switch(gb()){case 0xD8:break;case 0xD9:re\
turn;case 0xC0:sof();break;case 0xC4:dht();break;case 0xDB:dqt();break;case 0x\
DD:gw();ri=gw();break;case 0xDA:sos();return;default:fseek(fp,gw()-2,SEEK_CUR);
break;}}}dec(B *r){I i,j,hu,vu,m_c;for(i=0;i<sc;i++)for(j=0;j<cc;j++)if(si[i]==
ci[j]){s_h[i]=c_h[j];s_v[i]=c_v[j];s_qt[i]=c_qt[j];break;}m_wi=m_h*8;m_he=m_v*8
;for(i=0;i<4096;i++)m_buf[i]=128;for(i=0;i<sc;i++)m_yuv[i]=m_buf+i*4096;hu=wi/
m_wi;vu=he/m_he;hu+=(wi%m_wi)>0;vu+=(he%m_he)>0;m_c=0;for(j=0;j<vu;j++)for(i=0;
i<hu;i++){m_c++;dm();dy(i,j,r);if(ri&&m_c>=ri){br-=(br&7)+8;mp[0]=mp[1]=0;mp[2]
=m_c=0;}}}
で、終わり
0918915-917
NGNGfp = fopen("hoge.jpg","rb");してから
init();decode( rgb );で、24bit RGBが出てきます
0919デフォルトの名無しさん
NGNGこれを7行に・・・出来るわけ無いか(´Д`)
0920デフォルトの名無しさん
NGNG諦めたらそこで終わりだ。明らめようじゃないか!
0921デフォルトの名無しさん
NGNG0922915
NGNG0923デフォルトの名無しさん
NGNG関数 init より
double o[8],p[8],q,pi=M_PI;for(u=0;u<8;u++)for(v=0;v<8;v++){for(m=0;m<8;m++)o[m]
=cos(((2.0*m+1.0)*u*pi)/16.0);for(n=0;n<8;n++)p[n]=cos(((2.0*n+1.0)*v*pi)/16.0)
;for(m=0;m<8;m++)for(n=0;n<8;n++){q=0.25;if(u==0)q/=sqrt(2);if(v==0)q/=sqrt(2);
bi[(u*8+v)*64+m*8+n]=o[m]*p[n]*q;}}
↓
double C(int m,int u){return cos((2*m+1)*u*M_PI/16);}
cos の式を関数にして追い出す
for(u=0;u<64;u++)for(m=0;m<64;m++)
bi[u*64+m]=C(m/8,u/8)*C(m&8,u&8)*((u/8&&u&8)?2:u?sqrt(2):1)/8;
0924デフォルトの名無しさん
NGNG0925デフォルトの名無しさん
NGNG0926デフォルトの名無しさん
NGNG0927デフォルトの名無しさん
NGNGでも、それでも40行くらいあるぞ〜 ・・・
0928デフォルトの名無しさん
NGNG0929デフォルトの名無しさん
NGNG0931デフォルトの名無しさん
NGNG0932デフォルトの名無しさん
NGNGm_yuv と n_qt って、使わなくてもいいの?
0934デフォルトの名無しさん
NGNG0935デフォルトの名無しさん
NGNGありがとう。>ALL
0936デフォルトの名無しさん
NGNGデシタ
0937デフォルトの名無しさん
NGNGオセロ・圧縮・手とリス
09381
NGNGjpeg2ppm.c
char*z=" !(0)\"#*18@92+$%,3:AHPIB;4-&'.5<CJQXYRKD=6/7>ELSZ[TMF?GNU\\]VOW^_",G[1
<<24];int w,e,W,E,l,O,A,D[6],K[6],y=64,M[4096],P[3],qt[3][64],C[9],S[9],B,T,i,j
,c,R[128],J,f,d,F=4096;double bi[4096],t[64],p=1.41421356,q,I=.19634954;struct{
int c[256],s[256],v[256];}*N,h[2][3];extern double cos();g(){return getchar();}
L(){return g()<<8|g();}gi(b){for(;T<17;T+=8)(c=g()&255)-255?0:g(),B=B<<8|c;T-=b
;return(1<<b)-1&B>>T;}H(c,s){N=h[c]+s;for(c=s=i=0;s++<16;)for(c=c*2|gi(1);N->s[
i]==s;i++)if(N->c[i]==c)return N->v[i];return-1;}gv(s,v){return s?v=gi(s),v&1<<
s-1?v:v-(1<<s)+1:0;}n(m,v,n,k){for(v=F;v--;M[v]=128){i=v>>9;j=v/y%8;bi[v]=(q=i?
.25:.25/p,j?q:q/p)*cos((v/8%8*2+1)*i*I)*cos((v%8*2+1)*j*I);}for(;~g();){m=g()-
192;if(m-24){if(m==25)return;v=L();if(!m)for(l=g(w=L(e=L(g(i=0))));i<l;C[6+i++]
=g(E<c?E=c:0)){c=g(D[3+i]=g());W<c>>4?W=c>>4:0;C[3+i]=C[i]=c&=15;}else if(m==29
)A=L();else{for(v-=2;m==4&v>0;v-=n+18){c=g();N=h[c>>4]+c%16;for(n=i=0;i<16;)n+=
R[++i]=g();for(k=i=0;++i<17;)for(j=R[i];j--;)N->s[k++]=i;for(j=k=c=0,i=N->s[0];
k<n;){while(N->s[k]==i)N->c[k++]=c++;if(k<n)while(c*=2,N->s[k]!=++i);}for(;j<n;
)N->v[j++]=g();}if(m==26){for(O=g(i=0);i<O;i++)K[3+i]=K[i]=g(D[i]=g());g(L());
09392
NGNG;for(Q=O;Q--;)for(i=l;i--;)if(D[Q]==D[3+i]){for(c=3;c--;)S[Q+3*c]=C[i+3*c];i=0;
}for(W*=8,E*=8;f<e/E+(e%E>0);f++)for(d=0;d<w/W+(w%W>0);A&&++J>=A?T-=T&7+8,P[0]=
P[1]=P[2]=J=0:0){int c,s=0,h,V,b[64];for(;s<O;s++)for(Q=S[s],V=S[3+s],l=0;l<V;l
++)for(h=0;h<Q;h++){int*pQ=qt[S[6+s]],r,i=1;c=H(0,K[3+s]/16);if(c>=0){memset(R,
0,256);P[s]+=gv(c);for(*R=*pQ*P[s];i<y&&(c=H(1,K[s]&15))>0;R[z[i]-32]=gv(c&15)*
pQ[i],i++)for(r=c/16&15;r--;)R[z[i++]-32]=0;}for(c=F;c--;c<y?t[c]=0:0)b[c%y]=t[
c%y]+=R[c/y]*bi[c];for(j=r=W/Q;j--;)for(i=c=E/V;i--;)M[F/4*s+(j+E*l/V)*W+i+W*h/
Q]=b[j*8/c*8+i*8/r];}Q=d++*W,V=f*E;for(j=e-V>W?W:e-V;j--;)for(i=w-Q>W?W:w-Q;i--
;)for(c=3;c--;G[((V+j)*w+Q+i)*3+c]=s<256?s<0?0:s:255)s=j*W+i,s=128+(M[s]*F+(c-1
?1:-1)*M[s+(c-2?F/2:F/4)]*(c?c-1?7257:2924:5742)>>12);}printf("P6 %d %d 255\n",
e,w);for(i=0;i<e*w*3;)putchar(G[i++]);}
0940デフォルトの名無しさん
NGNG1:オセロ
2:砂嵐
3:テトリス
0941デフォルトの名無しさん
NGNGあとはカラースネーク
0942デフォルトの名無しさん
NGNGYCbCr変換に感動
>>934
1:オセロ
2:BASIC
3:ハフマン
0943デフォルトの名無しさん
NGNG2:BASIC
3:マインスイーパー
オセロは完成度の他にも、俺を含む幾多の職人をこのスレに呼び寄せた点がでかい。
BASICは純粋に驚いた。
マインスイーパーは、最後の7行化が目から鱗だったからよく覚えている。
0944デフォルトの名無しさん
NGNGこのJPEG変換が7行になったら1位をあげたい。が、今のところ、
1:レンジコーダー(part1の)
2:オセロ
3:SHA1
次点:テトリス
0945デフォルトの名無しさん
NGNG0946デフォルトの名無しさん
NGNG1:オセロ …… MSX-FANの1画面プログラムを思い出した
2:さいたまベンチ …… ワラタ
3:BrainFuckインタープリタ …… 職人さんありがとう
0947デフォルトの名無しさん
NGNGや め な い か ?
0948デフォルトの名無しさん
NGNG2、BASIC
は硬いな。
3、はHuffmanか、RangeCoderか…、テトリスか…
悩む。
0949デフォルトの名無しさん
NGNGbasicもかなりgoodで2番。
3番…huffmanは自分でも出来たから…RangeCoderかな
テトリスを入れる余地が無いのが残念だ。
0950デフォルトの名無しさん
NGNGそうすればテトリスの入る余地だってあるし。
0951デフォルトの名無しさん
NGNG1:オセロ
2:BASIC
3:ハフマン
4:lisp
5:grep
6:テトリス
7:HTTPd
0:part2 581
0952デフォルトの名無しさん
NGNG7行達成していないのはダメでしょう
0953デフォルトの名無しさん
NGNG次スレよろ
0954デフォルトの名無しさん
NGNG0955デフォルトの名無しさん
NGNG0956デフォルトの名無しさん
NGNG目安だったけど。
0957デフォルトの名無しさん
NGNG0958デフォルトの名無しさん
NGNGパート2のラスト、パート3の最初を見るとなぁ
最近のネタ切れも含めて、過去の栄光を…と思った
0959デフォルトの名無しさん
NGNG0960デフォルトの名無しさん
NGNGワラタ、それいいな
なんなら立てようか?
0961デフォルトの名無しさん
NGNG0962デフォルトの名無しさん
NGNG0963デフォルトの名無しさん
NGNGお題がなければ何もできない厨房ハケーソ
0965デフォルトの名無しさん
NGNGそのベスト3じゃなくて悪いんだが、これを7行にして く れ な い か ?
#include <stdio.h>
int main (void) { printf ("hell world!\n"); return 0; }
0966デフォルトの名無しさん
NGNGint main (void) { printf ("hell"
" "
"wo"
"rld"
"!\n");
return
0; }
...駄目でした...
0967デフォルトの名無しさん
NGNGP a r t 1 の >>3 を 見 れ 。
0968デフォルトの名無しさん
NGNG0969デフォルトの名無しさん
NGNG0970デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1051703369/
0971デフォルトの名無しさん
NGNGjpeg2pgm.c でつ。
char*z=" !(0)\"#*18@92+$%,3:AHPIB;4-&'.5<CJQXYRKD=6/7>ELSZ[TMF?GNU\\]VOW^_",G[1
<<24];int*$,w,e,W,E,l,O,A,D[6],K[6],y=64,M[4096],P[3],a[3][64],C[9],S[9],B,T,i,
j,c,R[128],J,f,d,F=4096,I=16;double k[4096],t[64],cos();struct{int c[256],s[256
],v[256];}*N,h[6];g(){return getchar();}L(){return g()<<8|g();}x(b){for(;T<17;T
+=8)(c=g()&255)-255?0:g(),B=B<<8|c;T-=b;return(1<<b)-1&B>>T;}H(c,s){N=h+c*3+s;
for(c=s=i=0;s++<I;)for(c=c*2|x(1);N->s[i]==s;i++)if(N->c[i]==c)return N->v[i];
return-1;}gv(s,v){return s?v=x(s),v&1<<s-1?v:v-(1<<s)+1:0;}n(m,v,n,k){for(;~g()
;){m=g()-192;if(m-24){if(m==25)return;v=L();if(!m)for(l=g(w=L(e=L(g(i=0))));i<l
;C[6+i++]=g(E<c?E=c:0))c=g(D[3+i]=g()),W<c/I?W=c/I:0,C[3+i]=C[i]=c%=I;else if(m
==29)A=L();else{for(v-=2;m==4&v>0;v-=n+18){c=g(k=n=i=0);for(N=h+c/I*3+c%I;i++<I
;)for(n+=j=g();j--;)N->s[k++]=i;for(i=N->s[j=k=c=0];k<n;){while(N->s[k]==i)N->c
[k++]=c++;if(k<n)while(c*=2,N->s[k]!=++i);}for(;j<n;)N->v[j++]=g();}if(m==26){
for(O=g(i=0);i<O;i++)K[3+i]=K[i]=g(D[i]=g());g(L());return;}for(;v-->0;)for(j=g
(i=0)&7;m==27&i<y;a[j][i++]=g())v--;}}}}main(Q,h,V,Z,s){for(c=F;c--;M[c]=128)i=
0972続き
NGNG" %d %d 255\n",w,e);for(Q=O;Q--;)for(i=l;j=i--;)for(c=3;D[Q]==D[2+j]&&c--;i=c)S
[Q+3*c]=C[j-1+3*c];for(W*=8,E*=8;f*E<e;f++)for(d=0;d*W<w;A&&++J>=A?T-=T&7+8,P[0
]=P[1]=P[2]=J=0:0){for(s=0;s<O;s++)for(Q=S[s],V=S[3+s],l=0;l<V;l++)for(h=0;h<Q;
h++){$=a[S[6+s]];Z=H(j=0,K[3+s]/I);if(Z>=0)for(P[s]+=gv(Z),memset(R,0,256),*R=*$
*P[s];++j<y&&(Z=H(1,K[s]%I))>0;R[z[j]-32]=gv(Z%I)*$[j])for(c=Z/I%I;c--;)R[z[j++
]-32]=0;for(Z=64;Z--;t[Z]=0);for(Z=F;Z--;)t[Z%y]+=R[Z/y]*k[Z];for(j=c=W/Q;j--;)
for(i=Z=E/V;i--;)M[F/4*s+(j+E*l/V+h/Q)*W+i]=t[j*8/Z*8+i*8/c];}Q=d++*W,V=f*E;for
(j=e-V>E?E:e-V;j--;)for(i=w-Q>W?W:w-Q;i--;G[V*w+Q+j*w+i]=s<256?s*(s>0):~0)s=j*W
+i,s=128+M[s]+M[s+F/2]*5742/F;}for(i=0;i<e*w;)putchar(G[i++]);}
0973part3 の作品一覧
NGNG画像ビューア >>327 ○ >>359 >>413 >>420 >>430
ライフゲーム >>293 >>306 ○ >>311-312 >>345
grep >>838 >>863
lisp風 >>365 ○ >>355 >>370-374 >>390
スロット >>380 ○ >>396
rangecoder >>391
算術符号 >>424
さいたまべんち・テキスト >>458 ○ >>460 AA >>477 >>481 ○ >>485 >>489-496 >>504 MAC >>507
0974part3 の作品一覧
NGNG○×ゲーム >>527 >>529
囲碁 >>530
Brainfuck >>542-543 >>553 >>905-907 C言語変換 >>557-560
コッホ曲線 >>549-551
2ch符号 >>566
あっけない幕切れ >>578 >>584 >>587
ド肝を抜く >>588 >>591
ポートスキャナ >>634
LZW? >>723
0975part3 の作品一覧
NGNG円周率 >>731 ん? >>738
ソース2HTML >>752-788 >>829-832 ○ >>814 >>825-830 >>833
自己表示 >>791 ○ >>805
ブラックジャック >>812 ○ >>816
逃げる >>817
5-7行クエスト >>866-868
0976part3 の作品一覧
NGNGgrep >>332
lisp >>393 >>425
MD5 >>445 >>451 >>459
二段階ソート法 >>561-563
SOCKS4 Proxy >>741-742
マインスイーパ >>800 >>808 >>810
アナグラム >>861
JPEG >>915-917 >>938-939 >>971-972
0977山崎渉
NGNGピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0978デフォルトの名無しさん
NGNGMac版AAさいたまベンチ
int rand(),sprintf(char*,const char*,...),x,y,j,i=1<<12;main(){unsigned c=
TickCount();char V[6],*p,m[]=" \ │ / / ̄\ ─( ゚∀゚ )─ \_/ "
" / │ \ ";HideMenuBar();SetPortWindowPort(NewCWindow(0,2100,0,1,2,0,0,0)
);TextMode(0);for(;j++-i;){for(x=0;x<6;V[x++]=rand()) ;for(x=rand()%*(short*)
2106-30,y=rand()%*(short*)2104-40,p=m,RGBBackColor(V);*p;p+=12)MoveTo(x,y+=15)
,DrawText(p,0,12);}i*=j=60;c=TickCount()-c;sprintf(m,"%d.%03d saitama/s",i/c,i
%c*j/c);MoveTo(8,20);DrawText(m,0,strlen(m));while(!Button()) ;return 0;}
CarbonだけどLowMemを使ってるのでOS Xじゃ動かないと思う。
プロトタイプが中途半端なのはご愛嬌。
0979デフォルトの名無しさん
NGNG/* 多少だがwarning対策したmd5 */
double sin(double),d;unsigned B,C,z,y,X[17],j=64,g,E[68],m,n,o,p;L(int z){X[y/4
]=g=g>>8|z<<24;if(++y>63)for(m=*E+=m,n=E[1]+=n,o=E[2]+=o,p=E[3]+=p;y=(g=++j/16)
<4;o=g)m+=X["@AE@"[g]-~(g*5&6)*j&15]+(g?g&2?o^(g&1?n|~p:n^p):n&p|o&~p:n&o|~n&p)
+E[j+4],z="GLQVEINTDKPWFJOU"[g*4|j&3]&31,g=n,n+=m<<z|m>>(32-z),m=p,p=o;return j
=~0;}main(){for(;j;E[j/4]=g=g<<8|34*j^1+j/8*493)d=sin(j--)*(~C+1.),E[j+4]=d<0?-
d:d;for(;z=~getchar();B+=!(C+=8))L(~z);for(L(128);y-56;)L(0);for(X[14]=C,X[15]=
B,L(y=64),L(y=64);++j<16;)printf("%02x",E[j/4]>>j%4*8&255);return!~puts("");}
/* warningを気にせず縮めたmd5 */
double sin(),fabs();unsigned B,C,y,X[16],j=64,g,E[68],m,n,o,p;S(){for(m=*E+=m,n
=E[1]+=n,o=E[2]+=o,p=E[3]+=p;y=(g=++j/16)<4;o=g)m+=X["@AE@"[g]-~(g*5&6)*j&15]+(
g?g&2?o^(g&1?n|~p:n^p):n&p|o&~p:n&o|~n&p)+E[j+4],y="GLQVEINTDKPWFJOU"[g*4|j&3]&
31,g=n,n+=m<<y|m>>32-y,m=p,p=o;j=~0;}L(c){X[y/4]=g=g>>8|c<<24;++y>63&&S();}main
(c){for(;j--;E[j/4]=g=g<<8|34*j^1+j/8*493)E[j+4]=fabs(sin(j+1.)*(~C+1.));for(;c
=~getchar();B+=!(C+=8))L(~c);for(L(128);y-56;)L(0);for(X[14]=C,S(S(X[15]=B));++
j<16;)printf("%02x",E[j/4]>>j%4*8&255);puts("");}
0980デフォルトの名無しさん
NGNG0981805
NGNGつながってしまってエラーになってしまうことが判明。
もう一度書き直しました。文字数を変えないようにすれば、
最後の文字列中のコメント部分は何書いてもOK。
class S{public static void main(String[]a){new S();}S(){while(8463!=(c=92*h(i++
)+h(i++))){System.out.print(s.substring(c,c+h(i++)));}}int i=191,c;int h(int i)
{return s.charAt(i)-35;}String s="\\class S{public static void main(String[]a"+
"){new S();}{while(8463!=(c=92*h(i++\n)+h(i++))){System.out.print(s.substring"+
"(c,c+h(i++)));}}int i=191,c;int h(int i){return s.charAt(i)-35;}String s=\"#"+
"$W#S<#qr#p$$dE##$##$#$L%)$#o%%)$#MF##$#B$#qJ%)$#o%%)$$<l##$%)$%*$%)$#o%%)"+
"$%+o%)$#o%%)$%wn%)$#V$#W$~~/*_____________Save_me_as_'S.java'____________*/";}
0982805
NGNG0983デフォルトの名無しさん
NGNG次スレ立ってるんだから、あげるなよ・・・
レス数が950を超えています。1000を超えると書き込みができなくなります。