七行プログラミング part3

1 :デフォルトの名無しさん :02/09/28 01:18
7行×79文字なら言語は問いません。
過去作品は、多分>>2-20を辺り。

■前スレ
http://pc3.2ch.net/test/read.cgi/tech/1018840143/
2 :デフォルトの名無しさん :02/09/28 01:20
どんどんレベルが落ちる厨房スレ万歳
3 :デフォルトの名無しさん :02/09/28 01:22
ネタスレ?
4 :デフォルトの名無しさん :02/09/28 01:25
>>2
自分の低レベルな作品を煽られた人ですか?
5 :デフォルトの名無しさん :02/09/28 01:26
■HTTP鯖
http://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
6 :デフォルトの名無しさん :02/09/28 01:27
■pac-man
http://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
7 :デフォルトの名無しさん :02/09/28 01:28
■砂嵐
http://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
8 :デフォルトの名無しさん :02/09/28 01:28
■圧縮
http://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
9 :デフォルトの名無しさん :02/09/28 01:28
このスレの先行きが>>2で暗示されました
10 :デフォルトの名無しさん :02/09/28 01:28
■レイトレ
http://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
11 :デフォルトの名無しさん :02/09/28 01:29
>>5-8
なぜpart1の作品をはる?!?!
12 :デフォルトの名無しさん :02/09/28 01:29
■オセロ
http://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
13 :前スレの950 :02/09/28 01:29
あれ?まずかった?>>11
14 :デフォルトの名無しさん :02/09/28 01:29
Part1はよかった…
15 :前スレの950 :02/09/28 01:29
■printf
http://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
16 :デフォルトの名無しさん :02/09/28 01:30
Part2の作品は?
17 :前スレの950 :02/09/28 01:30
これからです>>16
18 :デフォルトの名無しさん :02/09/28 01:30
どこからpart2なんですか?
19 :デフォルトの名無しさん :02/09/28 01:31
あ、まだpart1だけだったのか。失礼
20 :前スレの950 :02/09/28 01:31
リンク変更しなきゃならんよね?(↑みたいに)
21 :デフォルトの名無しさん :02/09/28 01:32
どうせいつか倉庫に落ちるから、面倒なら変更しなくてもいいんじゃない?
22 :前スレの950 :02/09/28 01:32
ああ、20過ぎちゃった(うぇーん
23 :デフォルトの名無しさん :02/09/28 01:33
テンプレを用意してから立てろ(ワラ
24 :前スレの950 :02/09/28 01:33
>>21んじゃー、貼るのやめときます。
誰か気が向いたらやっておいてね。
25 :前スレの950 :02/09/28 01:39
とりあえずこれで勘弁してつかーさい。

前スレの作品一覧
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-
26 :デフォルトの名無しさん :02/09/28 01:39
七行プログラミング part2 作品集
http://pc3.2ch.net/test/read.cgi/tech/1018840143/900-906n
27 :デフォルトの名無しさん :02/09/28 01:39
>>25-26
ケコーン
28 :前スレの950 :02/09/28 01:40
>>23
ごめんよー
不慣れなもんで(泣
29 :デフォルトの名無しさん :02/09/28 01:42
このスレを見て、>>2に同意しました(涙
30 :デフォルトの名無しさん :02/09/28 02:13
Prologインタプリタ・・・・・・・
すげえ
31 :デフォルトの名無しさん :02/09/28 02:15
>>30
自作自演?
32 :前スレの950 :02/09/28 02:16
たしかに>>31こういうツッコミがあると
萎えるね
33 :30 :02/09/28 02:23
ただのProlog好きな工房だが何か?
34 :デフォルトの名無しさん :02/09/28 02:28
>>30-33

いいから失せろ
お前らも荒らしてんだよ
35 :デフォルトの名無しさん :02/09/28 02:35
haxa?
36 :デフォルトの名無しさん :02/09/28 02:49
>>2
37 :デフォルトの名無しさん :02/09/28 03:01
荒らし煽りは一切放置
38 :デフォルトの名無しさん :02/09/28 03:03
>>2がいいことを言った!

つーか、もう、このスレ終わりだね!
39 :デフォルトの名無しさん :02/09/28 03:19
作品一覧には7行達成品だけ載せるんじゃないのか?
Prologは凄いとは思うが、だからといって載せていたら
スレタイ意味無いし、何でもアリになる。
正規表現も凄いと思うしな。

てことで、推薦品

http://pc3.2ch.net/test/read.cgi/tech/1018840143/894-895
ドラクエ
40 :デフォルトの名無しさん :02/09/28 03:28
>>39
正規表現ってあったっけ?
41 :デフォルトの名無しさん :02/09/28 03:37
>>40
896
42 :デフォルトの名無しさん :02/09/28 03:37
ドラクエの直後だからみんな気づかなかったのかも
43 :デフォルトの名無しさん :02/09/28 03:41
>作品一覧には7行達成品だけ載せるんじゃないのか?
そんなのどこで決めたんだろう・・・・
7行で限定したら作品の幅が(以下省略
なので、モチベーション維持という意味でも十分凄いと思う作品なら
載せてもいいと思われ。投稿量そんなに多くないんだし。
44 :デフォルトの名無しさん :02/09/28 03:43
>>42
説明ないからドラクエの続きかと思った
45 :デフォルトの名無しさん :02/09/28 03:56
>>43
いやいや、7行超えの番号を記載するのは、
「これ7行にしてみろやゴラァ!」「してやるぜゴラァ!」
のためかと。
あくまでも最終目的の7行以下を見据えてトライトライトライなのだ!
46 :デフォルトの名無しさん :02/09/28 04:01
>>43
Part1の903より。
俺もこれを基本ルールとするべきだと思った。
すごけりゃ良いというのなら、七行プログラミングである意味も無いと思うし。

> 名作候補作品、勝手に選択
> 選定に当たっては、7行達成を厳格なルールとしました
(略)
> >>822>>839>>842>>880
47 :デフォルトの名無しさん :02/09/28 04:54
あきてキタ━━━━━(゚∀゚)━━━━━!!!!
48 :デフォルトの名無しさん :02/09/28 10:11
氏ねよprolog厨
49 :デフォルトの名無しさん :02/09/28 15:22
もうだめぽ
50 :デフォルトの名無しさん :02/09/28 15:56
とりあえずgrepにまともなリストを出して欲しい。解析めんどくさい。
51 :デフォルトの名無しさん :02/09/28 15:58
自分でやれ
7行で
52 :デフォルトの名無しさん :02/09/28 17:03
>>50>>51
前スレ896に出てきたgrepは、egrep相当の機能が実に巧妙に組まれている。
grepは通常、正規表現->NFA->DFAの変換というステップが必要だから7行は難しい。
7行にするには純粋grep相当に機能を落とさないとだめだろう。
どちらにしろ、もし896が自分で作ったのだとするなら、とてつもなくすごいことだ。
53 :デフォルトの名無しさん :02/09/28 17:48
お題:yacc と lex
54 :lisper :02/09/28 19:41
お遊びでC言語でLISP作ったんだけど、44行になりますた・・・。
アプしても良いですか?
一応、GC、関数トレース、リスト操作、再帰、高階、内部関数とかできます。
55 :デフォルトの名無しさん :02/09/28 19:50
>>54
ドラクエより短いなら許す
56 :デフォルトの名無しさん :02/09/28 19:51
>>54
どっかにアップして、URL貼り付けてよ
57 :デフォルトの名無しさん :02/09/28 19:56
つーか7行になるはずのないものをアップするなよ、ボゲが。
44行がどうやったら7行になるんだよ。
お前自分の書いたのを人に見せたいだけのリアル厨房か?
58 :lisper :02/09/28 20:04
じゃ、やめときます(w
59 :デフォルトの名無しさん :02/09/28 20:07
>>52
rangecorderとかハフマンとか、
解説読んでも分からず、7行ソース見て理解したクチなので、
漏れは挑戦してみるよ!
60 :デフォルトの名無しさん :02/09/28 20:11
>>58
そんなこと言わずに上げてくださいよー。
省機能版が7行になるかも知れないじゃないですかー。
61 :デフォルトの名無しさん :02/09/28 20:12
>>54
サブセットをまず7行で作ってみたい
62 :デフォルトの名無しさん :02/09/28 20:13
>>58
わざわざ書き込むなよ。下らねぇ自己顕示欲だな

>>60
なるわけねぇだろ?
63 :デフォルトの名無しさん :02/09/28 20:15
イタイ仕切り厨房のせいで可能性が一つ潰されたな
64 :デフォルトの名無しさん :02/09/28 20:16
>>62
なるわけねーだろレベルで言ったらオセロやテトリスの方がよっぽどって感じだったよ
あと圧縮関係のも超無理っぽかったよな
65 :デフォルトの名無しさん :02/09/28 20:21
>>64
圧縮は楽勝だっただろ。印象で語るな、お前展開したのか?
オセロとテトリスは確かに凄かったな。
それでもlisp44行は絶対に7行にはならない。ちょっとは頭使え。

いいか、厨の為に説明してやるけれど、短くするのはデータ構造が重要なんだよ。
最初から44行にしか落とせないプログラマーが音頭を取ったら、その時点で不可能。
コードは小手先で短くできるけど、データ構造は作った奴の能力そのままなんだよ。
だからlisperみたいな厨丸出しの奴が最初に出したら絶対に出来ねぇ。
66 :デフォルトの名無しさん :02/09/28 20:21
>>62
仕切るなぼけ。
作品を作る奴が一番偉いんだよ。無能は引っ込んでろ。
67 :デフォルトの名無しさん :02/09/28 20:21
再帰とかその辺のサポートは実装方法で変わってくるけど、
わざわざトレースとかgcを入れたあたりで7行にするつもりが無いというのが分かり切ってる。
68 :デフォルトの名無しさん :02/09/28 20:22
>>65
できない厨は消えろ。
69 :デフォルトの名無しさん :02/09/28 20:24
>>65
最初は長くてもかまわんだろ。
圧縮する奴は結局根本から作り直すだけだ。
70 :デフォルトの名無しさん :02/09/28 20:26
まぁいいや、なるかも知れないと主張してる馬鹿どもは、
まずPrologを7行に汁
話はそれからだ。
71 :デフォルトの名無しさん :02/09/28 20:27
>>66
>>68
おいおい、オマエモナー言わせるなよ…。
俺は今までここで何作か出してるぜ。疑うなら現実的な問題出してみ?作ってやるからよ。

つーかレベル低い奴らが出しゃばってくるから有能な奴がこねぇんだよ
頼むから消えてくれ
72 :デフォルトの名無しさん :02/09/28 20:27
ソースをアップしたい輩は必ず70の許可をもらうように。(プ
73 :デフォルトの名無しさん :02/09/28 20:28
>>70
何がそれからだよ。
出来ないことを自慢げに語るな。
74 :デフォルトの名無しさん :02/09/28 20:28
>>69
根本から作り出すならlisperとかいう厨はいらねぇだろ?
なにが「44行になりますた・・・。アプしても良いですか?」だ。消えろ
75 :デフォルトの名無しさん :02/09/28 20:28
>>71
まずPrologを7行に汁
76 :デフォルトの名無しさん :02/09/28 20:29
糞スレサイコー
77 :デフォルトの名無しさん :02/09/28 20:29
ちなみに70は俺(71&74&その他)じゃないが、
大体の参加者はそう考えてんだよ。
78 :デフォルトの名無しさん :02/09/28 20:31
>>75
かなり辛そうだ。大体俺はprologしらないからちょいきつい。
79 :デフォルトの名無しさん :02/09/28 20:31
>>77
紛らわしい言い方すんなw
80 :デフォルトの名無しさん :02/09/28 20:32
なんつーか、こういう流れに反対してるのって
前スレから見る限り、過去参加者なのかも知れないな。
今回も単なるギャラリーが出しゃばってるだけと思われ
81 :デフォルトの名無しさん :02/09/28 20:33
アプしてもいいだろ。糞なら流れるだけだし
44行だろうがいいものは賞賛されるだろう。
こんな下らん議論よりも44行のソースの方が遥かに価値があるわな。
82 :デフォルトの名無しさん :02/09/28 20:34
>>80=古参気取り
83 :デフォルトの名無しさん :02/09/28 20:35
うp→無理→ハイ次
うp→できるかも→みんながんばる

アップすることに反対はしないよ、俺は。
84 :デフォルトの名無しさん :02/09/28 20:35
>>81
いいものを観賞して賞賛したいなら新スレ作った方がいいだろ。
お前の頭も結構下らないぞ
85 :デフォルトの名無しさん :02/09/28 20:36
>>82みたいなギャラリーは、出すなら下らないやっかみじゃなくてお題を出してくれ
86 :デフォルトの名無しさん :02/09/28 20:37
ここは鑑賞して賞賛するスレなのか?
いいものはいい、ダメなものはダメ、そんなの各自の頭で判断すりゃいい。
87 :デフォルトの名無しさん :02/09/28 20:38
lisper自身がいらない機能を落としたlispで7行に挑戦する意欲があるなら、上げてもいいだろ。
7行にはハナから興味無いとしたら、スレ違いだし。
88 :デフォルトの名無しさん :02/09/28 20:38
厨房にいい負かされてるギャラリーのいるスレッドはここですか?(プ
89 :デフォルトの名無しさん :02/09/28 20:38
----------ハイ次----------
90 :デフォルトの名無しさん :02/09/28 20:39
>>86
だからお前がそのためのスレ作れよ。「いいプログラムを観賞して賞賛するスレ」とか言って。
ここは7行プログラムスレなのに、
>44行だろうがいいものは賞賛されるだろう。
みたいな下らない書き込みするな。頼むから。
91 :デフォルトの名無しさん :02/09/28 20:39
くそうgrepがコンパイル通らぬ。
環境はなんなんだ。
92 :デフォルトの名無しさん :02/09/28 20:41
今まで全部が7行に収まってきたか?
10行を超えるものだって7行になっただろうが。
最初から「絶対無理」とかいうあんたが最低だよ。
無理かどうかはやってみて分かるはずだ。
最初から諦めてるようじゃそれがあんたの限界だよ。
93 :デフォルトの名無しさん :02/09/28 20:42
1 7行に満たない物、7行にする意志のない物は、これまで通りスレとしては評価対象外(作品リスト非掲載)で進める
2 とにかく、縮めテクニックを極めるスレに方針転換し、次スレからスレタイを変える前提で進める

どうする?
94 :デフォルトの名無しさん :02/09/28 20:42
>>90
がいいこと行った。
95 :デフォルトの名無しさん :02/09/28 20:42
>>87
お前lisperの自作自演か?
lisperは「ママー僕の書いたプログラム見てー」という気持ちが見え見えなんだよ
7行スレにアップしたいなら、最初から機能を制限して挑戦してるはずだろ?
lisperが本気で7行狙ってたら、いらない機能は最初から落としてるんだよ。

だからあいつはあの書き込みをする時点で厨房発覚なんだよ。首吊ってることを祈る
96 :デフォルトの名無しさん :02/09/28 20:43
>>93
2は全然違うだろ。7行という微妙な制約が無かったら、
「僕はこれで縮めたつもりだから見てください」っていう厨房多発が目に見える
絶対に1だ
97 :デフォルトの名無しさん :02/09/28 20:44
>>91
コンパイラ選ぶような下らないソースは放置すれば?
98 :デフォルトの名無しさん :02/09/28 20:44
>>96
それは分かってるんだけど、今回のlisperの件や>>43みたいなのが出てきて、
スレの趣旨を無視しまくった方向に持っていこうとするやん。
それだったらなんで7行スレでやってるんだと言いたいんだけどね。
99 :デフォルトの名無しさん :02/09/28 20:49
そんなことはどうでもいいからお題をくれ
100 :デフォルトの名無しさん :02/09/28 20:50
>>98
今までlisperを叩きまくった俺が言うのも何だけど、他人のコードを読む事は
とても勉強になるんだよ。独りでやっても限界はあるけれど、有能な奴とふれあえば
自然と知識・経験が増えていくんだ。7行スレで俺はそれを再認識した。

だから、とにかくソースをアップしてくれという奴らの気持ちは解るが、
このスレでそれをやると、今回のような下らない厨房が大挙して押し寄せて、
スレのレベルをsageまくることは間違いない。7行で偉大な作品を達成する奴と、
44行でどうでもいいプログラムを書く奴が同じ土俵に立ってもメリットは無いんだよ。
だから、このスレは「7行」という制約の元、有能な(一部無能だが)人材が
暇つぶしに才能をアピールする、そういう場であり続けて欲しい。part1はそうだった。

前スレではもう今さらかつての優秀な人が戻ってこないかと思ってたが、
最後の方で円周率、prolog(内容はしらんがソースはたいしたもんだ)なんてものが出てきて
俺はもう少しこのスレに期待することにした。
101 :デフォルトの名無しさん :02/09/28 20:50
じゃ、麻雀作ってくれ。役は理想は全部。
102 :デフォルトの名無しさん :02/09/28 20:55
>>101
もう少し具体的に頼む。役はともかく、対コンピュータとか、二人うちとか
103 :デフォルトの名無しさん :02/09/28 20:56
>>100
スマン、あんたもすれ違いだから、7行にまとめる努力してくれ
104 :デフォルトの名無しさん :02/09/28 20:58
>>103
お前みたいな奴がこのスレのレベルを下げてるんだよ・・・気付け、もしくは失せろ
105 :デフォルトの名無しさん :02/09/28 20:59
オセロ、囲碁、はさみ将棋、将棋、と出てきたからには次は
最後の砦?麻雀だろーというのが周囲の(俺の)期待♪
当然、対コンピュータかな。対戦ならネット経由まで出来て欲しい気がする。
対コンピュータならゲーセンの2人打ちでもOKでしょ。
106 :デフォルトの名無しさん :02/09/28 21:01
>>100
は同意できる点もあるが、保守的だと思うな。
スレなんざ、流れによって変わるものだろ。
昔を懐かしむのは勝手だが押し付けるのはもっと勝手だ。
107 :デフォルトの名無しさん :02/09/28 21:02
>>106
でも今回のLisperみたいに、
厨は出来れば来ないで欲しいぞ
今のスレの流れは厨房にopenすぎると思うが
108 :デフォルトの名無しさん :02/09/28 21:03

やりたいようにやればいいじゃんか。
109 :デフォルトの名無しさん :02/09/28 21:04
100レスを超えても作品が0、という流れなのはさすがにまずいね・・・
110 :デフォルトの名無しさん :02/09/28 21:05
>>108
失せろ。はい次
111 :デフォルトの名無しさん :02/09/28 21:05
>>109
それは言えるね。
112 :デフォルトの名無しさん :02/09/28 21:07
>>110
何様のつもり? お前が仕切るなって。 嫌ならお前が消えればいいじゃん。
113 :デフォルトの名無しさん :02/09/28 21:08
この雰囲気でアプするヤツはいないと思われ。
114 :デフォルトの名無しさん :02/09/28 21:08
>>112
失せろ。はい次
115 :デフォルトの名無しさん :02/09/28 21:08
>>106
だから、流れを変えるというのなら
7行スレに拘らずに、次からスレタイ変えろと。
116 :デフォルトの名無しさん :02/09/28 21:09
>>114-115
もうこなくていいよ
117 :デフォルトの名無しさん :02/09/28 21:10
>>115
つーか、今から新スレ作ってもいいんじゃない?
118 :デフォルトの名無しさん :02/09/28 21:10
何がうざいって、仕切ろうするあんたが一番うざいんだよ。
俺も>>108に同意だ。やりたいよーにやりゃーいい。
荒らしたければ荒らせばいいわな。

くだらん発言は無視すればいいだけのこと。
無視できない俺も厨だが、な。
119 :デフォルトの名無しさん :02/09/28 21:10
つーか新スレたてろよ。その新しい流れの。
わざわざスレ違いをお子さんでも。
120 :デフォルトの名無しさん :02/09/28 21:11
>>116
自縄自縛。何様ですかぁ?
121 :デフォルトの名無しさん :02/09/28 21:12
>>118
ところで、「仕切ろうとするあんた」って誰?
122 :デフォルトの名無しさん :02/09/28 21:13
>>2がいいこと言った!
123 :デフォルトの名無しさん :02/09/28 21:13
>>121
匿名の2chでは特定できんわ。
しいて言うなら最初にLisperとやらにカエレ!といった奴だな。
124 :デフォルトの名無しさん :02/09/28 21:14
新しい流れとか言ってる奴はとりあえず、ソースうpしてみれ。
ほれ。
125 :デフォルトの名無しさん :02/09/28 21:14
>>123
lisperは厨だと思うけど?
厨房を排除しようというのは仕切るとは違うんじゃないの?
126 :デフォルトの名無しさん :02/09/28 21:15
みんな元気だね
127 :デフォルトの名無しさん :02/09/28 21:15
自縄自縛??????????????????????????
128 :デフォルトの名無しさん :02/09/28 21:16
>>127
こんな下らないスレをageんなよ
129 :デフォルトの名無しさん :02/09/28 21:16
じじょうじばく 【自縄自縛】
〔自分のなわで自分をしばる意〕自分の言動が自分を束縛して、自由に振る舞えず苦しむこと。「―に陥る」
130 :デフォルトの名無しさん :02/09/28 21:16
もうだめだな、このスレも。
131 :デフォルトの名無しさん :02/09/28 21:17
>>128
下らないからageるんだろ?
132 :デフォルトの名無しさん :02/09/28 21:18
>>125
微妙に会話になってないよ
133 :デフォルトの名無しさん :02/09/28 21:18
>>125
そもそも厨房という断定が高圧的なんだよ。
>一応、GC、関数トレース、リスト操作、再帰、高階、内部関数とかできます。
少なくともプログラミングを習って1ヶ月程度の発言とは思えないしな。
正直、長さはともかくアプして欲しかったぞ。俺は。
134 :デフォルトの名無しさん :02/09/28 21:19
>>118
好きなようにやればいいってのは嘘だろ〜
スレ違いはダメだと思うぞ。JavaスレでHSPの質問とか(w
135 :デフォルトの名無しさん :02/09/28 21:19
いっそ、このまま荒らして終わるか。
136 :デフォルトの名無しさん :02/09/28 21:20
>>125
つーかあんたが「最初にLisperとやらにカエレ!といった奴」ですか?
わかりやすい様にコテハンにでもなってくれ
137 :デフォルトの名無しさん :02/09/28 21:21
>>133
ならば自分でスレ立てれば?って何度も言われているけれど。
このスレは「七行プログラミング」だったと思ったけど?
技術があるから厨房ではないわけではないと思う。>>95がいいこと言ってる
138 :デフォルトの名無しさん :02/09/28 21:23
議論するならID出せよ
139 :デフォルトの名無しさん :02/09/28 21:23
すみません、初心者なんですけど、int a=3ってどういう意味なんですか?
変数に代入するときは全部こうするのかと思ったんですが、2回目以降に
エラーが出てしまって困っています。助けてください。
140 :デフォルトの名無しさん :02/09/28 21:23
このまま200まで行くに10万袋
141 :デフォルトの名無しさん :02/09/28 21:23
はやくUmlToJavaつくれや
142 :デフォルトの名無しさん :02/09/28 21:23
スレ立てたら立てたで糞スレ立てるなとか単発スレ反対とか言うくせに。
143 :デフォルトの名無しさん :02/09/28 21:23
スレ違い?>139
144 :デフォルトの名無しさん :02/09/28 21:24
ついにプログラム技術板も強制IDか。情けないな
145 :デフォルトの名無しさん :02/09/28 21:25
>138
この板はID出ないから他の板に移動が手っ取り早いよ
146 :デフォルトの名無しさん :02/09/28 21:25
>>142
んなもん最初だけ。ソースさえ見せれば良スレになる。早く立てれ。
147 :デフォルトの名無しさん :02/09/28 21:26
>>142
「自信作ソースをアップして、みんなでさらに改良するスレ」とかどう?
148 :デフォルトの名無しさん :02/09/28 21:26
ニュース議論板
http://corn.2ch.net/news2/
微妙に板違いか。
149 :デフォルトの名無しさん :02/09/28 21:27
>>147
そのタイトルだと、視認性落としてまで短くする意味が無くなるね。
150 :デフォルトの名無しさん :02/09/28 21:28
1画面プログラムを公開してみんなで叩きまくるスレ
151 :デフォルトの名無しさん :02/09/28 21:30
>>150
1画面て?縦横どれぐらい?80x25?
2chなら「省略されました」が出ないぐらいかな。
152 :暇人 :02/09/28 21:31
1  ちょっと測らせてね。
2
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
153 :暇人 :02/09/28 21:31
この板は16行みたいね。
154 :デフォルトの名無しさん :02/09/28 21:33
http://game.2ch.net/test/read.cgi/gamedev/1005038280/l50
新スレ立てたがってるひとはここをパクれ。
つーか。わざわざ、行数制限する必要ない。できるだけ短い
プログラムってい方向じゃないんだから。いわば、アレだ。
長編AAみたいな。
155 :デフォルトの名無しさん :02/09/28 21:33
part1からの古参です。なんか凄い荒れてますね…残念です。

7行スレはやっぱり7行でやって欲しいと思いますので、新スレには大賛成です。
>>150さんみたく、「1画面プログラミング」とかにしたらいいんじゃないでしょうか?79×24?
もしくは、「read.cgiが悲鳴をあげるまで」とかも面白そうかな(w
156 :デフォルトの名無しさん :02/09/28 21:35
01234567890123456789012345678901234567890123456789012345678901234567890123456789
11234567890123456789012345678901234567890123456789012345678901234567890123456789
21234567890123456789012345678901234567890123456789012345678901234567890123456789
31234567890123456789012345678901234567890123456789012345678901234567890123456789
41234567890123456789012345678901234567890123456789012345678901234567890123456789
51234567890123456789012345678901234567890123456789012345678901234567890123456789
61234567890123456789012345678901234567890123456789012345678901234567890123456789
71234567890123456789012345678901234567890123456789012345678901234567890123456789
81234567890123456789012345678901234567890123456789012345678901234567890123456789
91234567890123456789012345678901234567890123456789012345678901234567890123456789
a1234567890123456789012345678901234567890123456789012345678901234567890123456789
b1234567890123456789012345678901234567890123456789012345678901234567890123456789
c1234567890123456789012345678901234567890123456789012345678901234567890123456789
d1234567890123456789012345678901234567890123456789012345678901234567890123456789
e1234567890123456789012345678901234567890123456789012345678901234567890123456789
f1234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
11234567890123456789012345678901234567890123456789012345678901234567890123456789
21234567890123456789012345678901234567890123456789012345678901234567890123456789
31234567890123456789012345678901234567890123456789012345678901234567890123456789
41234567890123456789012345678901234567890123456789012345678901234567890123456789
51234567890123456789012345678901234567890123456789012345678901234567890123456789
157 :デフォルトの名無しさん :02/09/28 21:36
行数制限すればまた今回と似たようなことでもめる事は
目に見えてるでしょ。
158 :デフォルトの名無しさん :02/09/28 21:36
80×23行が最高のようです。
159 :デフォルトの名無しさん :02/09/28 21:37
行数より質で住み分けたがってんじゃないのか?
・目標7行。
・馴れ合い歓迎。
・ストイックに究めたい人は本家7行スレへ。
みたいな感じで。
160 :デフォルトの名無しさん :02/09/28 21:38
3行で2次方程式の解、とかやられても興ざめだしね。
161 :暇人 :02/09/28 21:38
>>158
1レスに収まる文字数ってことですか?
162 :デフォルトの名無しさん :02/09/28 21:38
154見たけど、ここの過去スレみたいにお互いに改良とかは無いみたいだね。
163 :デフォルトの名無しさん :02/09/28 21:39
単に「ソースを上げるスレ」でいいって。
164 :デフォルトの名無しさん :02/09/28 21:39
>>159
それが出来ると最高だけれど、重複スレ立てるな!って言われそう
165 :デフォルトの名無しさん :02/09/28 21:40
>>161
そ。17行からは省略されるけど。
166 :デフォルトの名無しさん :02/09/28 21:40
結局レイトレは可能?
167 :デフォルトの名無しさん :02/09/28 21:40
おい、そこのお前! どうか私のソースを見て下さい
http://pc3.2ch.net/test/read.cgi/tech/1012694261/l50
168 :デフォルトの名無しさん :02/09/28 21:41
>>164
じゃあ、マ板いけば?
169 :デフォルトの名無しさん :02/09/28 21:42
>>168
なんでマ?
170 :デフォルトの名無しさん :02/09/28 21:43
詭弁の特徴のガイドライン
http://ton.2ch.net/test/read.cgi/gline/1028811653/

>>70はよく読んで勉強してきてよ
171 :デフォルトの名無しさん :02/09/28 21:43
ソースをあげるスレがあるなら、1画面プログラミングあたりが無難だね。
172 :デフォルトの名無しさん :02/09/28 21:45
1画面の定義:
↓どうぞ
173 :デフォルトの名無しさん :02/09/28 21:45
なんのことはない。結局のところコードを出さずにどうのこうの言ってる連中総てが厨房。
174 :デフォルトの名無しさん :02/09/28 21:46
いっかいにかきこめるだけの量
175 :デフォルトの名無しさん :02/09/28 21:46
>>173
メール欄を読んでしまったオレモナー。
176 :デフォルトの名無しさん :02/09/28 21:47
わかったから早く立てろ。
177 :デフォルトの名無しさん :02/09/28 21:47
やっぱ、Telnetで接続したときに全部見えることじゃねーか?
178 :デフォルトの名無しさん :02/09/28 21:47
>>170そんなに悔しかったの?
179 :デフォルトの名無しさん :02/09/28 21:48
C言語の文字列出力で、短くなる良い方法ありませんか?
printf使いたくないんで。(putsは改行打たれちゃうので却下)
180 :デフォルトの名無しさん :02/09/28 21:48
>>173
詭弁の特徴ガイドライン(>>170)を読んでるところだから笑えた。

>>172
1行80文字(79文字+改行)というのは、昔のコンソールから来てるんじゃないですか?
とすると、1画面は24列が正しいかと思います
181 :デフォルトの名無しさん :02/09/28 21:49
列?
182 :デフォルトの名無しさん :02/09/28 21:50
>>179
データの構造をいじって何とかすれば、大抵printf1個で短く出来るみたいだよ
過去のプログラムを参考にしてみて下さい。
183 :デフォルトの名無しさん :02/09/28 21:51
>>181
行だね。スマソ
184 :179 :02/09/28 21:53
>>182
ありがとうございます。

1.while(*s)putchar(*s++);
2.for(;*s;)putchar(*s++);
3.p(s){printf(s)}
沢山使う場合、やっぱ3番みたいなのを定義するのが簡単でしょうか。
185 :デフォルトの名無しさん :02/09/28 21:54
すれ違い。質問スレ行け。
186 :179 :02/09/28 21:56
スレ違いでした。
187 :デフォルトの名無しさん :02/09/28 22:01
新スレまだ?
188 :デフォルトの名無しさん :02/09/28 22:01
待ってるぐらいならお前が立てろ>>187
189 :デフォルトの名無しさん :02/09/28 22:04
>>185
短くするためのテクニックはスレ違いじゃないよぉ
(というか、話の流れを変えようとしてくれた179氏の意志があれば汲みたい)

そうではなくて、例えばオセロは、配列データの中身が
0:空白 3:○ 6:● 9:改行
みたいな感じで、出力するときに
printf(" \0○\0●\0\n\0"+data[n])
とやっていた。
工夫次第で、printfを1カ所しか書かなくても大丈夫だよ
190 :デフォルトの名無しさん :02/09/28 22:04
とりあえず、新スレを立てるって方向でいいわけね。
で、lisperのような人は排除していっても問題ないと。
191 :デフォルトの名無しさん :02/09/28 22:10
正直、lisperがなんで叩かれてたのかわからんなあ。
仕切り厨房とソースくれ厨房がただ騒いでただけの様な気も。
192 :デフォルトの名無しさん :02/09/28 22:11
ルール追加
・コード以外でコミュニケーションするのを禁止
193 :デフォルトの名無しさん :02/09/28 22:12
>>191
「縮める気はないんだけど、僕のソース見て」
という態度だと思うよ。
194 :デフォルトの名無しさん :02/09/28 22:13
>>192
殺伐としたスレになりそうな予感
195 :デフォルトの名無しさん :02/09/28 22:15
>>194
main(){printf("クソコードあげんな(゚ Д゚)ゴルァルァルァ\n");}
こんな感じのクソコードが(以下略
196 :デフォルトの名無しさん :02/09/28 22:16
ここで馴れ合うのはよせ。早く移動しろ。
197 :デフォルトの名無しさん :02/09/28 22:18
そうやって決めつけるところが厨房だっつーの。>>193
198 :デフォルトの名無しさん :02/09/28 22:18
>>196
何様ですか?
つーかスレ立ててくださいよ。
199 :デフォルトの名無しさん :02/09/28 22:19
ここは煽りと議論だけで1000を目指すスレとなりました。
200 :200 :02/09/28 22:19
感動の200
201 :唐突に :02/09/28 22:20
↓ぴちょん君登場
202 :デフォルトの名無しさん :02/09/28 22:21
if (このスレ==糞スレ) goto 削除依頼;
203 :pythonクソ :02/09/28 22:22
( ´_ゝ`)
204 :デフォルトの名無しさん :02/09/28 22:23
>>197
移動してネ☆
205 :デフォルトの名無しさん :02/09/28 22:24
MSに連絡しろ
206 :デフォルトの名無しさん :02/09/28 22:24
洗面器持って来い
207 :デフォルトの名無しさん :02/09/28 22:25
新スレもたてずに馴れ合いで荒らして終わりかよ。最悪だな。
208 :デフォルトの名無しさん :02/09/28 22:26

   終  冬
209 :デフォルトの名無しさん :02/09/28 22:26
if(this.sled == Sled.KUSO_SLED) this.delete();
210 :デフォルトの名無しさん :02/09/28 22:26
荒れてるね。しばらく放置だなこりゃ。じゃ。またね。
211 :デフォルトの名無しさん :02/09/28 22:26
糸冬マ
212 :デフォルトの名無しさん :02/09/28 22:27
それじゃ>>2は偉大だ、という事で


−−−−−−終冬−−−−−−
213 :デフォルトの名無しさん :02/09/28 22:27
>>207

     お ま え が な ん と か し ろ
214 :デフォルトの名無しさん :02/09/28 22:27
↓↓ 次から何事もなかったかのように再開 ↓↓
215 :デフォルトの名無しさん :02/09/28 22:27
不平と不満を言うよりもすすんで明かりを点けましょう。
216 :デフォルトの名無しさん :02/09/28 22:27
>>209
s/sled/thread/g
217 :デフォルトの名無しさん :02/09/28 22:27
このスレは無事終冬しました(以下略
218 :デフォルトの名無しさん :02/09/28 22:28
>>2が前スレからレベルの低下を煽って、自ら墓穴を掘っていると思うが。
219 :デフォルトの名無しさん :02/09/28 22:28
>>215
放火魔?
220 :デフォルトの名無しさん :02/09/28 22:28
>>213
なんで、保守派がなんとかしなきゃいけないんだよ。つーかタイトルも
決まってないしね。テンプレ作ってくれたらスレぐらい作るよ。
221 :デフォルトの名無しさん :02/09/28 22:30
このスレに溜まっている厨房に新スレなんて作れません
222 :デフォルトの名無しさん :02/09/28 22:30
保守派って・・・自民党ですか。
223 :デフォルトの名無しさん :02/09/28 22:31
そして作品は出なくなった。
224 :デフォルトの名無しさん :02/09/28 22:33
新スレタイトル。
「釣りバカ日誌パート1」
225 :デフォルトの名無しさん :02/09/28 22:35
>>224
それでいいんなら立てるよ?
↓以下、賛同者5名以上で立てる。
226 :デフォルトの名無しさん :02/09/28 22:36
賛成
227 :デフォルトの名無しさん :02/09/28 22:36
>>224に家族分5票
228 :デフォルトの名無しさん :02/09/28 22:36
賛成した奴らはそちらへ移動しろ
229 :デフォルトの名無しさん :02/09/28 22:36
賛成してみるか。
230 :デフォルトの名無しさん :02/09/28 22:37
>>225
賛成。たてれ。
231 :225 :02/09/28 22:38
>このホストでは、しばらくスレッドが立てられません。
>またの機会にどうぞ。。。

残念だったなおまいら。
232 :デフォルトの名無しさん :02/09/28 22:40
>>225
くれぐれもマ板に立てろよ
233 :デフォルトの名無しさん :02/09/28 22:40
じゃぁおれが立てる
234 :デフォルトの名無しさん :02/09/28 22:40
どんな糞スレたてたんだ?リンクキボン。
235 :225 :02/09/28 22:40
>>232
そか、マ板でも試してみるよ。
236 :デフォルトの名無しさん :02/09/28 22:42
「釣りバカ日誌パート1」
http://pc3.2ch.net/test/read.cgi/tech/1033220509/

立てた
237 :225 :02/09/28 22:42
立てた。

釣りバカ日誌パート1
http://pc.2ch.net/test/read.cgi/prog/1033220523/
238 :225 :02/09/28 22:42
うわ。

もう知らん。
239 :デフォルトの名無しさん :02/09/28 22:43
分岐元はせめて236にしとけばよかったのに。
240 :デフォルトの名無しさん :02/09/28 22:43
もう、アホかと、馬鹿かと(略
241 :デフォルトの名無しさん :02/09/28 22:44
糞スレ荒らし養成所
242 :デフォルトの名無しさん :02/09/28 22:44
おい、ふざけんな。
243 :デフォルトの名無しさん :02/09/28 22:46
>>242
何様ですか?
244 :デフォルトの名無しさん :02/09/28 22:47
>>243

>>243
245 :デフォルトの名無しさん :02/09/28 22:48
見事なクソスレに成長したね!
よかったね!
246 :デフォルトの名無しさん :02/09/28 22:48
馬鹿だな  >>243
247 :デフォルトの名無しさん :02/09/28 22:48
今までの罵り合いの結果がこれか・・・。
ある意味ふさわしいとも言えるな。
248 :デフォルトの名無しさん :02/09/28 22:49
>>243
お前はアホだ。
249 :デフォルトの名無しさん :02/09/28 22:50
パラダイムシフトだね
250 :デフォルトの名無しさん :02/09/28 22:51
結局、ソースアップする奴はいないのか...。44行でもいいからアップさせりゃいいと思うよ。
で、誰が見ても 7行になりそうに無かったら、叩きゃいいんじゃないの ?
プログラマだったら、ソースで語ろうよ。
251 :デフォルトの名無しさん :02/09/28 22:52
なんかソース上がってますが
http://pc3.2ch.net/test/read.cgi/tech/1033220509/3
252 :デフォルトの名無しさん :02/09/28 22:53
釣り馬鹿日誌スレにアップする奴がいるのかと小一時間(略
253 :デフォルトの名無しさん :02/09/28 22:53
ム板、マ板両方に立てやがって。
254 :デフォルトの名無しさん :02/09/28 22:53
>>250
プログラマだったら概要で見積もれるようになれよ
255 :デフォルトの名無しさん :02/09/28 22:53
今さら無駄だね。
どうでもいいけど>>237の2で激しくワラタよ
256 :デフォルトの名無しさん :02/09/28 22:56
>>254
自分の見積もりを過信するなよ
257 :デフォルトの名無しさん :02/09/28 22:56
2乗に反比例してレベルが落ちていくな
258 :デフォルトの名無しさん :02/09/28 23:02
じゃあ、めでたく新スレ立ったことだし、7行ソースアプせいや
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
259 :デフォルトの名無しさん :02/09/28 23:03
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
260 :デフォルトの名無しさん :02/09/28 23:03
↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
261 :デフォルトの名無しさん :02/09/28 23:07
http://www.bulldog.co.jp/
http://menme.net/ssc/
http://www.co-op.or.jp/jccu/coop_shouhin/new/02_03/03c_05.htm
262 :デフォルトの名無しさん :02/09/28 23:09
このスレ無かった事にして、新しいスレ立てましょうか?
263 :デフォルトの名無しさん :02/09/28 23:09
無駄無駄無駄ぁ!
264 :デフォルトの名無しさん :02/09/28 23:10
>>262

>>236-237
265 :デフォルトの名無しさん :02/09/28 23:11
荒らしさん楽しそう♪
266 :デフォルトの名無しさん :02/09/28 23:11
>>262
とりあえず荒氏が去るまで寝かせておけ
平日になればおさまるだろ
267 :Part1の853 :02/09/28 23:13
何処に出せばいいやら
ますます分からんようになった。(´・ω・`)
268 :デフォルトの名無しさん :02/09/28 23:14
>>267
7行以下ならここ、
それ以上だったらこっち
http://pc3.2ch.net/test/read.cgi/tech/1033220509/
マ板のは微妙に意味が違ってきてる
269 :デフォルトの名無しさん :02/09/28 23:14
Part1がまだ生きてるからそこにアプしてわ?
270 :デフォルトの名無しさん :02/09/28 23:16
仕切り厨うざい。
271 :デフォルトの名無しさん :02/09/28 23:16
>>269
正直、それが安全だね。
272 :デフォルトの名無しさん :02/09/28 23:20
2、3日出さずに、貯めとくってのが1番いい。
273 :Part1の853 :02/09/28 23:28
やりたいのは「7行」なんだけど、
俺はPerlしか書けない低レベルな厨だし、
遊び相手がいないと面白くないから、
こういう暖簾分けをした以上、こっちに顔出すのは憚られるのね。

…消えるのが一番いいかな。(w
274 :デフォルトの名無しさん :02/09/28 23:30
ここには7行厳守を仕切っている奴がいるからな。
アプすつには彼の許可が必要。
みんなひれ伏すように。
275 :デフォルトの名無しさん :02/09/28 23:38
>>273
別にperlで7行じゃ駄目なのものなんだろうか?

ワンライナー以上ショート以下、でも機能はそれ以上ってことで
7行なんだと思ってたんだけど。

短くするってのは無駄を徹底的に省くって意味じゃなかったのかな?
276 :デフォルトの名無しさん :02/09/29 00:00
つーか、本気で縮めるならPerlみたいに暗黙の変数があったり
evalがあったりする方がテクニックが広がって面白いのではなかろうか。

あと、言語を選べばワンライナーになるものを、わざわざCとかJavaで
やって7行問題に仕立て上げるのもつまらんと思うし。grepとか。
277 :デフォルトの名無しさん :02/09/29 00:11
>>276
まあ処理系依存がなくて設計を工夫して極限まで短いなら面白いと思う。
ただそれを1バイト短くすることはどうでもいいというか、そんなことする位なら
一番短くなる言語で書けばいいじゃんって感じもするね。
278 :デフォルトの名無しさん :02/09/29 00:20
270以上スレが伸びてるのに、漏れが最初?
C#で適当に書いてみた画像ビューア
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();}}}
279 :デフォルトの名無しさん :02/09/29 00:26
>>278
278が流れを変えた!? エライ!!
280 :デフォルトの名無しさん :02/09/29 00:26
>>278 やっと神キターー。乙。
でも、C#分からないっす。スマソ。
281 :デフォルトの名無しさん :02/09/29 00:39
>>278
[STAThread]が抜けてるのでd.ShowDialog()が失敗する・・・
282 :278 :02/09/29 00:42
>>281
あれ、漏れのところでは別に問題ないけどなぁ
283 :デフォルトの名無しさん :02/09/29 00:44
仕切り厨うざいがうざいんだけど。
別居してくれない?
284 :怒らないから教えてごらん :02/09/29 00:45
>>283
具体的にどのレス?
285 :デフォルトの名無しさん :02/09/29 00:46
1人粘着してるの居てが非常にウザイ。
286 :283 :02/09/29 00:47
>>284
>>284
287 :デフォルトの名無しさん :02/09/29 00:48
>>285
あなたも含めてべとべとです。
7行スレで7行以外のネタを出して居直る神経がわからんよ、ホント。
288 :281 :02/09/29 00:50
>>282
うーん、ウチの環境だとd.ShowDialog()呼んだところで固まって帰ってこなくなります。

http://pc.2ch.net/tech/kako/1016/10165/1016597767.html のレス25
>COMの機能を使う場合は、STAスレッドで動作することを明記しなければならない
>Beta2のバグで、この属性がついていないフォームでも(一見)正しく動作してしまっていた

もしかしてβ使ってます?
289 :284 :02/09/29 00:54
おれかよ。
290 :デフォルトの名無しさん :02/09/29 00:58
いや、VS.NET入れてあるし、フレームワークはV1.03705。
OpenFileDialogはコモンダイアログコントロールだから、
COMじゃないと思うけど・・・
291 :278 :02/09/29 01:06
290=278です。
GDI+ってCOMかなぁ?
292 :デフォルトの名無しさん :02/09/29 01:07
usingが抜けてるとか…じゃないよね。C#しらないのでスマソ
293 :らいふげーむ :02/09/29 01:09
初めて作ってみたけど、7行ってむずかしい。
9行になってしまいまつた。

#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);}
294 :デフォルトの名無しさん :02/09/29 01:11
>>278
つーか自分の環境でちゃんと動いてるの?
295 :281 :02/09/29 01:11
>>290
うちも同バージョン。[STAThread]入れれば動いたんで、
コモンダイアログコントロールがCOMをラップしてるのかもとオモタ。
ildasmで実装がどうなってるのかぼちぼち調べてみるナリ。
296 :デフォルトの名無しさん :02/09/29 01:13
>>278 W2K+VS.NETのコマンドラインからcscでコンパイルしたけどちゃんと動いたよ。
297 :281 :02/09/29 01:17
ホントだ。cscからコンパイルで動作確認。吊ってくる。
すまん>>278
298 :デフォルトの名無しさん :02/09/29 01:18
>>297
普通になんで動かなかったのか知りたい(w
299 :100 :02/09/29 01:23
>>293
後は任せとけ。これなら余裕で7行にしてやれる
300 :278 :02/09/29 01:32
厨な質問で悪いんだが、
C#の行連結子みたいなの誰か知らない?
[STAthread]を入れようと思うのだが、微妙に足りなくて・・・
301 :100 :02/09/29 01:34
>>278
オーバーしたバージョンを出したら、誰かが縮めると思うぞ
302 :296 :02/09/29 01:34
>>297
VS.NETからコンパイルしていたのかしら?。だとしたら
なにか怪しいコンパイルオプションは付いていない?。
303 :デフォルトの名無しさん :02/09/29 01:36
>>298
http://pc3.2ch.net/test/read.cgi/tech/1024746501/835
に再現手順を書いてみました。
304 :デフォルトの名無しさん :02/09/29 01:48
>>299
散々偉そうなセリフを吐いたんだから実力を見せつけろよ
305 :278 :02/09/29 01:48
[STAThread]バージョンできました。
行をつなげられたら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();}}}
306 :らいふげーむ :02/09/29 01:56
変数名とか変えて8行に。自分ではこれが限界かも。

#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);}
307 :278 :02/09/29 02:01
>>306
パート1の砂嵐やパート2の時計を参考に、
WinMainの引数を減らすと良いと思われ
308 :デフォルトの名無しさん :02/09/29 02:02
>>305
3行目の
>public B()

B()
に可能。これでFileも救済できると思われ。
309 :278 :02/09/29 02:04
>>308
ホントだ。
こんなところを見逃してたなんて・・・Thx!
310 :278 :02/09/29 02:06
>>306
RGBはCOLORREFにするためのマクロだけど、
COLORREFはDWORDだから、即値にするとさらに減る
311 :デフォルトの名無しさん :02/09/29 02:07
>>293 7行にしてみすた。
#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);}
312 :デフォルトの名無しさん :02/09/29 02:14
>>311
甘いな。

>>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もしている

文句つける場所あるか?
313 :278 :02/09/29 02:18
>>312
窓の中でおながいします・・・

>>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();}}}
314 :デフォルトの名無しさん :02/09/29 02:19
>甘いな

なんだかなぁ…
315 :デフォルトの名無しさん :02/09/29 02:20
>>313
・・・その挑戦はきつい・・・
&File復活おめ
316 :デフォルトの名無しさん :02/09/29 02:21
>>314
お前らみたいに凄いのを凄いと素直に言えない奴らが厨房なんだよ。
317 :デフォルトの名無しさん :02/09/29 02:22
>>312==>>100
つくづく性格悪いな・・・
318 :デフォルトの名無しさん :02/09/29 02:22
>>316

>>137
>技術があるから厨房ではないわけではないと思う
319 :デフォルトの名無しさん :02/09/29 02:24
>>317
なんで匿名掲示板で礼儀正しくしてなきゃいけねぇんだよ。
つーかプログラム叩いてくれよ。

>>318
スマソ・・
320 :デフォルトの名無しさん :02/09/29 02:25
元のプログラムはCなのにCPPにするわけ?
321 :デフォルトの名無しさん :02/09/29 02:26
>>320
Cだと簡単すぎた
322 :デフォルトの名無しさん :02/09/29 02:27
>>316
だからといって、その前に出した311を蔑む必要があるか?
323 :デフォルトの名無しさん :02/09/29 02:29
>322
被害妄想。甘いものは甘い。自分よりレベルの低いコードだから指摘しましたが何か?
324 :デフォルトの名無しさん :02/09/29 02:32
とはいえ、蔑むつもりは毛頭なかったことを補足しておく。
7行化に協力してくれてthx>311
325 :デフォルトの名無しさん :02/09/29 02:52
>>312
> 文句つける場所あるか?

だめ、

> 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)]

とまだるっこしいことをやってる意味を考えろ。
326 :デフォルトの名無しさん :02/09/29 02:55
>>325
その通りだ。スマソ
327 :デフォルトの名無しさん :02/09/29 03:31
窓にしてみた。part1のソースコードを引っ張ってきたがいまいち意味がわからん。

#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行はすぐだろうな。
328 :デフォルトの名無しさん :02/09/29 03:31
WinMainの引数型はWINAPIだから省略しても問題ない。
>>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);}
329 :デフォルトの名無しさん :02/09/29 03:33
もう100こなくていいよ。気分悪い。
330 :デフォルトの名無しさん :02/09/29 03:49
>>329
何様ですか?(笑
331 :328 :02/09/29 03:50
最後のif文を?へ。
これで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);}
332 :デフォルトの名無しさん :02/09/29 03:55
前スレ>>896のgrepを少し縮めてみた。gccとvcでコンパイルできる。

typedef 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++;);}
333 :デフォルトの名無しさん :02/09/29 03:56
>>312から

#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]));
これが目玉(そうでもないか
334 :デフォルトの名無しさん :02/09/29 04:06
>>327
VC++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' : サイズが不明です。
って怒られるけど、何かオプション必要?
335 :デフォルトの名無しさん :02/09/29 04:16
>>334
定数式が必要だと思われ。
>n[a*102],
ところでC++ってこんなことできたっけ?(allocaがいらなくなる?)
gccの拡張機能にあったかもしれないけど。
336 :デフォルトの名無しさん :02/09/29 04:45
>>312
とりあえず、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);}
337 :デフォルトの名無しさん :02/09/29 04:51
>>334
拡張子をcppにするとコンパイルできるよ
って、なってるみたいね。わからん。
338 :デフォルトの名無しさん :02/09/29 05:06
もう100こなくていいよ。気分悪い。
339 :デフォルトの名無しさん :02/09/29 06:43
朝。
さわやかな朝。
340 :デフォルトの名無しさん :02/09/29 07:46
そして、さわやかな2ちぇんねる。
341 :デフォルトの名無しさん :02/09/29 07:56
そしていつものように>>340はtypo
342 :デフォルトの名無しさん :02/09/29 08:02
クソスレageんなヴォケ
343 :デフォルトの名無しさん :02/09/29 10:11
>>337
> 拡張子をcppにするとコンパイルできるよ
> って、なってるみたいね。わからん。

うちの VC++6 (SP5) だとコンパイル/実行はできる。ただし以下の警告が出る。

test.cpp(2) : warning C4007: 'WinMain' : '__stdcall' でなければなりません。
test.cpp(5) : warning C4508: 'WinMain' : 関数に戻り値の型が指定されていません。戻り値を void 型と見なします。
リンク中...
ブラウザ データベースを作成中...

test.exe - エラー 0、警告 2
344 :デフォルトの名無しさん :02/09/29 12:12
grepのソースコードすげえー
B()のforループがとんでもないね
345 :生ものゲーム :02/09/29 14:23
#include <windows.h>
int 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);}}
346 :デフォルトの名無しさん :02/09/29 15:15
>>345
窓7行達成おめ
347 :デフォルトの名無しさん :02/09/29 16:20
100はエラそうな割にたいしたこと無かったな
348 :デフォルトの名無しさん :02/09/29 17:28
>>347
あなたもかなり偉そうだぞ。そういう書き込みはまた厨房を召還してしまう。
コードに突っ込みを入れるなり自分で作品を出して言うべし。
ちなみに口が悪いから評価されてないけど、>>312はなかなかの作品だと思う。
349 :デフォルトの名無しさん :02/09/29 17:51
>>348
なかなかの作品ならあれからさらに2行も縮まるかボケ
350 :デフォルトの名無しさん :02/09/29 18:09
>>349
自分が嫌いだからと言ってソースも読まずに叩くなよ。
そういう事がやりたいなら板違いだからマ板へ行け
351 :デフォルトの名無しさん :02/09/29 20:30
348=312=100
作品以前に人間性に問題あるよ
352 :デフォルトの名無しさん :02/09/29 21:04
>>351
それ(348=312=100)、どうせ特定できないし、荒れる要因になるので、放置の方向で。
353 :デフォルトの名無しさん :02/09/29 23:24
7行スレで遊んでみて思うのは7行というのは結構長い、ということ。
79*7=553文字あると、かなりの範囲まで表現できると思いますた。
354 :デフォルトの名無しさん :02/09/29 23:33
もう改行もしないで80x7文字で行こう!
って最近のコンパイラは1行256文字超えても大丈夫?
355 :Part2の989 :02/09/30 00:26
#include<stdio.h>
char 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も廃止できるし…後一行の余裕でどうにかならないかしら。
356 :名無しさん@Emacs :02/09/30 01:13
>>355
前置記法と言うです。
357 :デフォルトの名無しさん :02/09/30 01:50
>>355
(P (+ 1 2 3))
3
せっかくの前置記法なのに勿体ない。
あと、Lって何に使えるの?
ソースは今から読みまふ。
そのまま寝てしまいそうですがw
358 :デフォルトの名無しさん :02/09/30 04:08
>>355
関数作れる様にできるといいね。条件式も。
関数定義:(F 名前 引数 値)
条件式:(? 条件 真 偽)
最低F?=+-があればフィボナッチとか書ける様になると思う。
(F f(n)(?(= n 0)0(?(= n 1)1(+(f(- n 1))(f(- n 2))))))
=>f
(f 20)
=>6765
359 :278 :02/09/30 05:29
使ってないusingを見つけたので、
それを省いて、代わりにスクロールバーを入れてみた。
そして、&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));}}
360 :デフォルトの名無しさん :02/09/30 07:54
>>350
まぁいいや、マジレス。俺も縮めた。
しかし、これを言うと特定されるから言いたくなかった。
以上

んじゃ。
361 :Part2の989 :02/09/30 11:21
#include<stdio.h>
char 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行なので、関数定義いけるか…?
362 :Part2の989 :02/09/30 11:31
関数定義…横暴な仕様を考え中。

・関数は1つだけ定義できる
・引数は1つだけ渡せる

(F 式) で定義。式中では引数はXで参照。
(C 式) で呼びだし。式の値が呼びだし先のXに。

で、>>358のフィボナッチを計算できないかな〜と(w
複数行の入力を受け付ける余裕はなさげなので、関数定義は0を返すようにして、↓な感じ

(+ (F (?(= X 0)0(?(= X 1)1(+(C(- X 1))(C(- X 2)))))) (C 20))
363 :デフォルトの名無しさん :02/09/30 11:42
>>361の分岐を、==のネストから-にして、ちょっと短くしてみました。
間違ってたらスマソ。
#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;}
364 :363 :02/09/30 11:44
あと、最後のmainのreturn 0;はいらないよね。それで5行までもうちょいかと。
365 :Part2の989 :02/09/30 12:10
>>363
ありがとうございます。

でも増えちゃったんですね〜関数定義追加したら。

#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固定です。
366 :363 :02/09/30 12:11
Pを省略して、代わりに結果をmainで常に出力させれば5行は達成すると思います。
main(){gets(s);printf("\d\n",a());}
367 :Part2の989 :02/09/30 12:14
ひょっとして?の前の式に()は要らない?…(試す)…おー、本当だ、すげー。
368 :363 :02/09/30 12:17
一応>>363から>>364,>>366を適用したものです。>>365はまだ反映してません。
これで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());}
369 :363 :02/09/30 12:20
あ、?の結果が変になりますね。やっぱり無理があったみたい。
r?a(),a():(a(),r=a())の部分をどうにかしないと…
370 :363 :02/09/30 12:36
>>368から>>369の不具合を直したもの。'?'を分離して対処。6行に戻る。
#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
());}
371 :Part2の989 :02/09/30 13:19
フィボナッチ計算デ(・∀・)キタ―――――――!!

#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行。%辺りの使わない演算子は消してしまってもいいかな?
372 :363 :02/09/30 13:35
>>371
凄い!とうとうやったね。
で、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
373 :Part2の989 :02/09/30 13:51
>>372
無駄な括弧は、デバッグ時書いていたものを、優先順位的に消してもいいものか迷ってました。
サンクス、大感謝です!

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);}
374 :363 :02/09/30 14:13
>>373
それだったら本物の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));}
375 :デフォルトの名無しさん :02/09/30 19:58
part 2 よりも下がってるのでage
376 :デフォルトの名無しさん :02/10/01 00:30
>347
最初の *p=s は main()でやってるので *p でいいのでは?

あと、終わりのほうのdo while()(10進文字列->intですよね?)の条件は
(*p>47&*p<58)でいいと思う。

うー、なんでwhileじゃなくdo whileなのかワカラン。わしがなにか読み落としとるのかー?
377 :デフォルトの名無しさん :02/10/01 00:32
まちがえた
>347 <-> >374
378 :デフォルトの名無しさん :02/10/01 00:34
a(int x)もa(x)でいい
379 :デフォルトの名無しさん :02/10/01 00:35
c==45とかをc-45に変換したらもう少し小さくならない?
380 :60cm浮き上がるストレート :02/10/01 16:42
スロットです。13行です。
どなたか縮めてください。または縮める方法やこつを教えてください。

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);}
381 :デフォルトの名無しさん :02/10/01 16:51
1 エスケープシーケンス使うのやめれ
2 printfはまとめろ
3 桁の多い定数は何とかして圧縮汁
4 a==1?1:0はa-1?0:1/a^1?0:1に置き換えられる
382 :デフォルトの名無しさん :02/10/01 16:53
最低でもこのスレに出てたソースのテクニックは全部詰め込め。
我流だけじゃ大して面白くもない
383 :デフォルトの名無しさん :02/10/01 17:31
>>382
縮めてやれよ
384 :デフォルトの名無しさん :02/10/01 17:44
>>383
NTなんでエスケープシーケンスが正常に表示されないんだよ
385 :デフォルトの名無しさん :02/10/01 17:51
>>384
文句言ってないで自分でなんとかしろ
386 :デフォルトの名無しさん :02/10/01 17:57
>>385
うるせーな、面倒なんだよ
387 :デフォルトの名無しさん :02/10/01 18:05
>>386
だったら文句言うなボケ
388 :60cm浮き上がるストレート :02/10/01 19:27
>>381
お答えありがとうございます。

>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文字でも大事にしないといけませんね。
389 :デフォルトの名無しさん :02/10/01 21:27
lispっぽいのすげえ!!
すでにソース見てもなにやってるかわからん(w
390 :363 :02/10/02 01:52
>>374からの変更です。
>>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の、==を-に直すアイデアは、左辺値のエラーが出るので保留です。
該当部分を括弧で括るとエラーは出なくなりますが、逆に増えてしまいました。
391 :デフォルトの名無しさん :02/10/03 00:50
前スレ553を参考に7行で動的rangecoder
# 初代スレ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);}
392 :デフォルトの名無しさん :02/10/03 01:47
>>391
ヒョ準入出力使ったら短くなるかな?
exec e <src >dst
393 :デフォルトの名無しさん :02/10/03 02:57
LISPインタプリタ。シンボル名は1文字、ラムダリストは必須パラメータのみ、
GC・クロージャ・リスト操作・リストのプリンタ・エラーチェックいっさいなしと、
かなり機能を絞りましたが全然小さくなりません。お前らもっと縮められませんか?

#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]);}
394 :393 :02/10/03 02:58
使えるスペシャルフォームと関数はこれだけ。

D 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
395 :デフォルトの名無しさん :02/10/03 07:05
>>393
どんどん凄くなってくけど、これを7行は難しいかも。
396 :!380 :02/10/03 15:09
ひまだったので、(えせ)スロットに挑戦。
とくにスゲーということはないですが、せっかくなので。

#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;}
397 :396 :02/10/03 15:09
・仕様
3x3を表示するのは無理(環境に依存しないで画面クリアやカーソル移動
するのができない)なのでまんなかの横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を返すことが
保証されているので。
398 :363 :02/10/03 18:26
>>397
>全然関係ないですが>376の(*p>47&*p<58)の&は&&のミスではないです。
そうでしたか。
手元にちゃんとした資料が無かったので確認できませんでした。
==を-に変換できたら組みこんでみます。
399 :Part2の989 :02/10/03 19:00
自分の知らないところでどんどん短くなっていく感覚、いいなあ(w
演算子減らしてでも、複数の文の実行 (...) (...) サポートできないだろうか?
+で連結するのもアレなので…。
それと、関数定義の空読みの時とりあえず0を使ってますけど、
割り算のことを考えると0以外しないとまずいかも。
400 :デフォルトの名無しさん :02/10/03 22:31
みんなで短くするにはですね、元となった圧縮前のコメント入りソースコードが
必要だと思いますがどうでしょう?パート1では砂嵐とかオセロとか
オリジナルのソースもアップされていたよね。
今は釣り馬鹿日誌もあるから、そちらでオリジナルコードを披露してみては?
401 :デフォルトの名無しさん :02/10/03 23:14
ホシュ
402 :デフォルトの名無しさん :02/10/03 23:15
>>400
仕切んなハゲ。
403 :デフォルトの名無しさん :02/10/04 03:31
>>410
すげえ使える
404 :デフォルトの名無しさん :02/10/04 05:19
ワラタ
405 :デフォルトの名無しさん :02/10/04 06:32
>>410 はすげぇ使えることを書かねばなりません。
406 :デフォルトの名無しさん :02/10/04 06:37
まだ大丈夫
407 :デフォルトの名無しさん :02/10/04 06:38
あ、ageちゃったスマソ
408 :デフォルトの名無しさん :02/10/04 06:39
こういうのは人がいないと盛りあがらんな
409 :デフォルトの名無しさん :02/10/04 07:15
↓よろ
410 :デフォルトの名無しさん :02/10/04 07:38
ruby!
411 :デフォルトの名無しさん :02/10/04 09:01
ィャ
412 :デフォルトの名無しさん :02/10/04 17:23
?
413 :308 :02/10/05 02:49
>>359 &Fileフカーツ!!
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,new Point(0));}}
414 :ロムスカ・パロ・ウル・308 :02/10/05 03:01
「&Fileは滅びぬ。何度でも甦るさ!ファイルメニューこそ、人類の夢だからだ!!」
415 :デフォルトの名無しさん :02/10/05 07:12
>>414 …ゆ、夢じゃねー(w
416 :デフォルトの名無しさん :02/10/05 17:45
>>413
その代わり、スクロールバーを動かすと絵がおかしくなる。
417 :ロムスカ・パロ・ウル・308 :02/10/05 19:22
「絵がぁー!絵がぁぁーーっ!!」


・・・だからAutoScrollPosition(>>359)になってたのか。
納得。しかし書き換えると17文字超過・・・
418 :デフォルトの名無しさん :02/10/05 19:27
>>417
あ,どっかで見た名前だと思ってたらあいつかあ。
「見たまえ,これが納期を7日間延ばしたという天のバグだ。インドらの野望とも呼ばれているがね」
419 :デフォルトの名無しさん :02/10/05 20:31
>>418
やべぇ、すっごくワロタw
420 :308 :02/10/05 22:24
AutoScrollPositionってPoint型だから、
e.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);}}

今度こそ・・・
421 :278 :02/10/05 23:16
>>420
それでは画像が解像度情報を持つときに、
1ピクセルが1ピクセルとして表現されないから、
そこを何とかしないと、
スクロールバーと画像がちゃんと同期しないよ。
422 :デフォルトの名無しさん :02/10/05 23:34
>>421
指摘サンクス。サンプル.jpgでテストしてたんで気づかなかった。
やはりRectangle(AutoScrollPosition,i.Size)でやるべきか・・・
423 :書き忘れ :02/10/05 23:35
>>422 = >>420
424 :デフォルトの名無しさん :02/10/06 09:09
適応型算術圧縮展開
exec [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));}
425 :デフォルトの名無しさん :02/10/07 00:02
昔作ったScheme風Lispインタープリタ。せっかく作ったので貼っとく参考にしてくれ。
機能減らさんと縮みそうにないけどな。
#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);}
426 :425 :02/10/07 00:02
シンボルはすべて一文字
スペシャルフォームは
(! 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))
427 :デフォルトの名無しさん :02/10/07 07:09
>>425
げ、末尾再帰対応っすか。
参りました。
428 :デフォルトの名無しさん :02/10/07 07:10
ラムダを見るとサザエサンハ ユカイダナのAAを連想してしまう…
429 :デフォルトの名無しさん :02/10/07 11:56
DES暗号化ってありましたっけ?
430 :278 :02/10/07 14:22
>>420
トイレでガンバッてたら、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))})});}}}
431 :308 :02/10/07 18:51
>>430 *^ー゚)b グッジョブ!!
namespace System・・・それは流石に思いつかなかったw
尽くせるだけの手を尽くしてもうだめぽと思ってたけど、
探せばあるんだな・・・
Refresh()は全く知らなかったんでMSDNで調べてきます。
432 :デフォルトの名無しさん :02/10/07 21:34
>>429
関係ないけどDES符号ってどっかの国の外へは持ちこんじゃいけないとか
話なかった?
433 :デフォルトの名無しさん :02/10/07 21:51
>>432
そうDES
http://hp.vector.co.jp/authors/VA008160/cipher/des.htm
434 :デフォルトの名無しさん :02/10/07 22:18
>多くの暗号学者によって研究されたにもかかわらず解読されたことはありません。

日経エレクトロニクス no.825(2002-7-1)号 P228「TechTale」より
>「あのー,山岸さん。ちょっと相談があるのですが」
>「どうしたー」
>「例の実験の件なんですが。実はですね,どうやら成功したようなんです」
>「え?何だって?」
>「DESの解読、うまくいったんですよ」
435 :デフォルトの名無しさん :02/10/08 02:28
>>434
(#`Д´)<マヂデスカッ
436 :デフォルトの名無しさん :02/10/08 02:34
調べたら2^43の平文と暗号文を使った線形解読法、ですた。
どのレベルの「解読」にもよりますな。
http://ne.nikkeibp.co.jp/NE/2002/020701/tt.html
http://www8.ocn.ne.jp/~a-little/Kumo/data/HPR054.htm
437 :デフォルトの名無しさん :02/10/08 13:20
(DESだったかは忘れたが)輸出禁止なもんだから、どうにかして
広めたいと思ったある人は、ソースコードを載せた本を出版した
という話を聞いたことがある(本ならOKなんかいな?)。その本には
ご丁寧にOCRの方法まで載ってたとか。。
438 :デフォルトの名無しさん :02/10/08 13:28
DESで言うならcryptぐらいをターゲットにするのが妥当かな
439 :デフォルトの名無しさん :02/10/08 20:18
DESは転置テーブルとか謎の置換配列とかだけでかなりでかいぞ。
440 :デフォルトの名無しさん :02/10/08 21:11
保守
441 :デフォルトの名無しさん :02/10/08 23:34
IBM->HALみたいなのは簡単ですか?
って、簡単でしたね。
main(a,v){int c;while((c=getchar()+1))putchar(a>1?c-2:c);}
引数なしでエンコード、ありでデコード
hal < hal.c | hal dmy > hal.dec
442 :デフォルトの名無しさん :02/10/08 23:40
保守
443 :デフォルトの名無しさん :02/10/08 23:41
あ、間違えた・・
main(a,v){int c;while(c=getchar()+1)putchar(a>1?c:c-2);}
444 :デフォルトの名無しさん :02/10/08 23:42
えーと、保守はageなくても大丈夫だよ?>442
445 :デフォルトの名無しさん :02/10/09 02:18
little endian用MD5。もう少し縮みそうな気もするが。

#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);}
446 :デフォルトの名無しさん :02/10/09 03:17
なんか、過去に出された作品見ると、
・79文字+改行
・78文字+改行
の2派が存在するみたいですけど、どっちが正しいんでしょうか?
447 :デフォルトの名無しさん :02/10/09 03:36
>>445
こりゃまた圧縮されてるね。
MD5って128bitを吐き出す一方向ハッシュ関数のことなのか。
ファイル名を引数にして実行するのね。
自分自身を実行すると
c:\md5\Release>md5 md5.exe
a94f0a85a2906a403c16c7fc3ec78562
おー、なんか動いてる。やるね。
問題はこの数値があってるかどうかの検証が分からないことか・・・。
448 :デフォルトの名無しさん :02/10/09 03:51
md5sum.exe拾ってきて、検証するのは?
449 :デフォルトの名無しさん :02/10/09 03:55
Cygwinに入ってるだろ>md5sum
450 :デフォルトの名無しさん :02/10/09 08:43
>>446
昔の端末は一行80文字だった。
それに収まるように、ということなので79文字+改行が正しい。
451 :デフォルトの名無しさん :02/10/09 08:59
>>445
一行弱縮めてみた。

#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));}
452 :デフォルトの名無しさん :02/10/09 09:24
>>450
改行が 0x0A なのか, 0x0D 0x0A なのかという質問じゃないのかえ?
453 :デフォルトの名無しさん :02/10/09 09:25
あ,Mac忘れてた。 0x0D も加えてくれ
454 :デフォルトの名無しさん :02/10/09 12:30
>>439
あのテーブルってどうやって作ったんだろうなあ
生成できればなあ。
なんか強力な暗号で7行で書けそうなのってないかな?
>>452
端末から送るのがCRでホストが送るのがCRLFだっけ?
内部コードの話ならOS-9とかもCRだったかな?
455 :デフォルトの名無しさん :02/10/09 12:56
>>454
端末からもホストからもCRでもLFでもなんでも趣味の世界です
一番多いパターンにあわせると
456 :デフォルトの名無しさん :02/10/10 00:20
>>454
IBMの技術者と思われ。
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行じゃ絶対無理っぽい・・・。
457 :デフォルトの名無しさん :02/10/11 20:50
S-Box転置のない暗号化って少ないよね
Fealとか、EPOCHとかどう?日本のだけど。
458 :デフォルトの名無しさん :02/10/11 23:37
どーでもいい機能を追加したら9行になった上にwinmm.libリンクしないとしないと動かないさいたまべんち。
#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;}

…逝ってきます。
459 :デフォルトの名無しさん :02/10/11 23:45
>445のMD5
512M以上でバグってたのを修正、>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));}
460 :458 :02/10/12 00:46
#include <windows.h>
#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;}

…なにやってんだ、オレ。
461 :デフォルトの名無しさん :02/10/12 03:16
84.4SaitamaPerSecond
・・・ってくだらなすぎ(w
もうちっと面白いベンチマークキボンヌ
462 :デフォルトの名無しさん :02/10/12 03:50
131Saitamaだった。
AAのさいたまが出てくるといいなぁ。
463 :デフォルトの名無しさん :02/10/12 04:26
>>462
あのAAって元々何なの?
自民党のマスコット?
464 :デフォルトの名無しさん :02/10/12 04:35
1 let a= 10
2 let b= 20
3 let c= a+ b
4 let d= c-a
5 let e= d-b
6 print e
7 goto 1
465 :デフォルトの名無しさん :02/10/12 04:39
void main(int ac, char[av]){
for(;;){
;
;
;
;
}
}

466 :281 :02/10/12 07:56
MSに投げてた問い合わせが返ってきますた。
VS.NETのバグで本来[STAThread]は不要、>>279のコードは無罪とのこと。

正直、スマンカッタ。>>279
467 :デフォルトの名無しさん :02/10/12 07:57
誤 >>279
正 >>278
468 :デフォルトの名無しさん :02/10/12 12:01
お題:ボンバーマソ

テトリスが7行なら余裕でそ。
問題は2PにするかCPUにするかだが、2Pが妥当か。
469 :デフォルトの名無しさん :02/10/12 12:55
>468
>テトリスが7行なら余裕でそ。
だったら、さっさとお前が作れよ
470 :278 :02/10/12 15:16
>>466-467
VSのバグですか・・・。
貴重な情報ありがとうございます。
471 :458 :02/10/12 22:56
>>461-462
AAを出すと7行に収まらないのですが…(ぉ
472 :デフォルトの名無しさん :02/10/13 00:01
>>471
「さいたま」の太陽だけとかなら、何とかなる?
473 :458 :02/10/13 00:44
>>472
sprintfとかMessageBoxとかを削れば(出力文字を減らせば)可能かも。
今日暇があったらまたやってみます〜。
474 :デフォルトの名無しさん :02/10/13 10:51
>>446
俺は78+改行で作っていたけど、それは一部のUnix端末では79で折り返す
普通じゃない端末があったから。可能なら78+改行を目指す方がいいけど、
もちろん79+改行で何の問題もないです。
475 :デフォルトの名無しさん :02/10/13 18:33
>>474
そんなものがあったのか…
ちなみに何ていう端末か教えて欲しい。

誰か78桁で折り返す端末を見つけ出せっ!
476 :デフォルトの名無しさん :02/10/13 20:10
>>475
MSXだと縦横のサイズを変えられる。
あとは、端末エミュレータ(KTERMとか)。
・・・だめ?
477 :458 :02/10/14 02:41
8行になってしまった。鬱だ。
しかも半角と全角が混ざっているからずれるし。
色々変態なこと書いてるのは目を瞑ってください。

#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;}
478 :デフォルトの名無しさん :02/10/14 03:57
>>477
ループ回数を10の倍数にして、
sprintfをwsprintfにして、%d.%dみたいに書けば、
sprintfが取れて、stdio.hをインクルードしなくて済むんじゃない?
479 :デフォルトの名無しさん :02/10/14 11:25
>>477
どうせ機種依存なのだからstdio.hはいらないといってみるテスト
480 :デフォルトの名無しさん :02/10/14 18:15
>>477
はcppだと思うので、
stdio.hの代わりに
EXTERN_C int sprintf(PSTR,PCSTR,...);
でどうよ。
481 :デフォルトの名無しさん :02/10/14 19:49
さいたま〜縮めてみた〜、太陽がうまくこぴぺできなかった〜、直しといて〜
後は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;}
482 :458 :02/10/16 00:43
色指定とか座標指定とかをもっと短く書けるとうれしいけど意外に短くならないんだよなぁ…。
やっぱ見栄えとソース量はアンビバレンツなのだろうか…(泣)

ちなみに結果表示の文字に半角カタカナとかを用いるとちょっと縮まりますね(ぉ
483 :デフォルトの名無しさん :02/10/16 18:34
age
484 :デフォルトの名無しさん :02/10/16 23:51
>>481
11998.535335 Saitama/sダターヨ。
485 :デフォルトの名無しさん :02/10/17 02:15
結果表示を少し変えて七行達成。
確認は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);}
486 :458 :02/10/17 21:14
>>485
VC++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 の実行エラー

がーそΣ( ̄□ ̄;)
487 :デフォルトの名無しさん :02/10/17 23:16
コンパイルオプションもプログラムの一部だよなぁとおもう今日この頃。
488 :デフォルトの名無しさん :02/10/18 01:55
>>487
するってーと、プログラム本体が

 #include <windows.h>
 X

で、コンパイルオプション(コマンドライン)が

 g++ -DX="extern\"C\"{int rand();int sprintf(char*,char*,...); ..." \
  saitama.C -mwindows -luser32 -lwinmm -mno-cygwin

というのはありですか?
489 :485 :02/10/18 02:59
>486
VC持ってないからチェキ出来ないけどコレでどうよ。

#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);}
490 :デフォルトの名無しさん :02/10/18 08:20
>>489
ワーニング出るけどコンパイルできたよん(VC++6)
25381.874516 埼玉s ですた。
491 :480 :02/10/18 22:15
これで、VC++6でもワーニング出ないと思う。
#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;}
492 :デフォルトの名無しさん :02/10/19 01:24
>>491
バチーリです
493 :485 :02/10/19 03:19
結果表示を元に戻してみた。
これ、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;}
494 :デフォルトの名無しさん :02/10/19 10:17
30文字ほど減らしてみますた。
windows.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);}
495 :458 :02/10/19 10:32
貴方たちは神や…

#後はAAに黒い四角が紛れ込むのが問題かなぁ…
496 :デフォルトの名無しさん :02/10/19 14:00
黒い四角は、AAの13バイト目に半角の空白があるのが原因。
↓そこだけ修正した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);}
497 :デフォルトの名無しさん :02/10/19 15:18
error C2055: 関数定義内で仮引数リスト以外が使われていました。
498 :デフォルトの名無しさん :02/10/19 15:21
>>497
環境および、エラーの発生したと思われる箇所をどうぞ
499 :デフォルトの名無しさん :02/10/19 15:54
スマソ
ソース:>>496 環境:VC++6.0 エラー:3行目
500 :デフォルトの名無しさん :02/10/19 15:55
OS:Win98SE
501 :458 :02/10/19 16:03
>>496
原因はわかっていたけど、素早い修正に感謝♪

しっかし、見れば見るほど恐ろしいソースコードだ…がくがくw
502 :デフォルトの名無しさん :02/10/19 16:28
盛り上がってるネ。









俺はWindows持ってないんだけど...
503 :デフォルトの名無しさん :02/10/19 18:35
>>496
呼び出し規約から、WinMainの引数型は省略できるよー
WinMain(p,q,r,s)〜
504 :503 :02/10/19 18:42
#include <windows.h>
char*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
505 :デフォルトの名無しさん :02/10/19 19:11
精度は落ちるし、文字数も増えるけど、
timeGetTimeの代わりに、GetTickCountを使うと、winmm.libが要らなくなる。
506 :458 :02/10/19 19:21
>>505
精度が高いからtimeGetTime使ったけど、
特に細かく計測する必要は無いと考えればGetTickCountでもいいかもしれません。
winmm.libがいらないって言うのはおいしいのでw
507 :デフォルトの名無しさん :02/10/19 21:22
>>502 ならばMac版とか作ってみるテスト。

extern "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。
508 :503 :02/10/20 03:38
>>505-506
精度不用ならclock()というのがありますけど。
509 :デフォルトの名無しさん :02/10/20 15:57
>>507
CW持ってません。
MPWでもコンパイルできるのかな、
使ったことないけど(w
510 :デフォルトの名無しさん :02/10/22 02:28
>> 507
てかObject-Cで書いてくだされ(笑
511 :デフォルトの名無しさん :02/10/22 04:12
>>510

Objective-Cか。iveがたらなんだか。。(´・ω・`)
512 :デフォルトの名無しさん :02/10/23 00:30
ネタが無いみたいだね。

過去の7行未達コードでも上げれば?
513 :デフォルトの名無しさん :02/10/23 21:46
EUC(LF)/ShiftJIS(CR+LF)変換
exec 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;}
514 :デフォルトの名無しさん :02/10/26 18:52
age
515 :デフォルトの名無しさん :02/10/26 19:38
MP3エンコーダ
不可能ならu-adpcmでもいいから.
516 :デフォルトの名無しさん :02/10/26 23:13
なんかあんたらかっこよくみえるよ・・
517 :デフォルトの名無しさん :02/10/28 10:57
はやくUmlToJavaつくれや
518 :デフォルトの名無しさん :02/10/28 15:17
>>517
お前が作れ
519 :デフォルトの名無しさん :02/10/28 17:07
7行C++逆コンパイラ作ってくれ。
もしできたら俺の処女をあげるよ。
520 :デフォルトの名無しさん :02/10/28 18:21
おまいら適当なこと言ってるんじゃない。

実用的な7行(ホントに使うやつはいないと思おうが)を書いた>>513の流れを汲んで
次はShiftJIS→UniCode(エンコードは何でもOK)だろ!!
521 :デフォルトの名無しさん :02/10/28 18:49
WindowsAPI使えば数行だと思うけど。
522 :520 :02/10/28 19:19
Σ( ̄□ ̄; そうなの!? アホじゃん、俺。
523 :デフォルトの名無しさん :02/10/28 19:46
>>519
臭そう
524 :デフォルトの名無しさん :02/10/28 21:16
>>523
俺が綺麗に洗ってやるよ
525 :デフォルトの名無しさん :02/10/28 22:12
お前ら、>>504とかのさいたまベンチ何枚ですか?
おれは1Gのノート(XGA)で 9309.303 saitama/sです。
526 :デフォルトの名無しさん :02/10/29 00:25
>>525 12946.661saitama/s P4-1.7G
527 :デフォルトの名無しさん :02/10/29 20:16
#include <stdio.h>
int 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までを入力します。
チェックしてないので既に置いてある所は置かないでください。
528 :デフォルトの名無しさん :02/10/30 00:08
>>520
UNICODEはテーブル持ってないと変換できなかったと思う。
(WindowsAPIもテーブル使ってたはず。記憶違いだったらすまん)
ずらして変換できるならJISだが、2番煎じだなぁ
あ、>>513にS-JIS<=>EUC<=>JIS変換で7行、時間があればやってみようかな
529 :!527 :02/10/30 02:12
勝手に終局判定付けさせてもらいました。関数の返り値の型を
省略したので、-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;}
530 :デフォルトの名無しさん :02/10/30 21:25
前スレの囲碁を削りますた、間違ってたら誰かデバッグよろ(ぉ

int 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]);}
531 :デフォルトの名無しさん :02/10/30 23:42
>>530
元が13行だったのを考えるとすごいね。

ただ、途中までうまく動いているようだけど、人間が囲んだ石が取れないで
残ったままになったりする。もともとのソースのバグかもしれんけど。

それとあまりにも弱すぎて打っていて面白くないなぁ。
オセロはまだ楽しめたけど。
ルールどおりはともかく囲碁は7行では難しすぎるかも。
532 :デフォルトの名無しさん :02/11/01 13:20
囲碁は世界レベルのアルゴリズムですら
アマ1段に勝てませんので・・・
533 :デフォルトの名無しさん :02/11/01 17:00
これ作って。おねがい。
http://pc3.2ch.net/test/read.cgi/tech/1036013915/l50
534 :デフォルトの名無しさん :02/11/01 17:09
あがっちゃってる。。。
ごめんなさいm(_ _)mごめんなさいm(_ _)m
535 :デフォルトの名無しさん :02/11/01 17:12
おいおまえら。UmlToJavaはできましたか?
536 :デフォルトの名無しさん :02/11/01 17:21
私は19才の♀で〜す。
彼氏募集中です。
年齢は20〜25ぐらいの人がいいなぁと思っています。
彼女募集中な人は私に電話下さい!
電話番号は
09084600360
だよ。
いたずら電話はやめてね。
電話待ってま〜す。
537 :デフォルトの名無しさん :02/11/01 18:02
>>536
繋がりませんが。
538 :デフォルトの名無しさん :02/11/01 19:39
>>536
七行に縮めてから出直しなさい。
539 :デフォルトの名無しさん :02/11/01 19:44
携帯からレスしてみるテスト。
>>533
作ってみたら6行で出来た。
今2chに書き込めないから後で書くYO!
540 :デフォルトの名無しさん :02/11/01 21:12
これを7行にしてくだちい。おながいします。
http://pc3.2ch.net/test/read.cgi/tech/1028570486/649-654n
541 :デフォルトの名無しさん :02/11/01 21:15
>>540
つーか、まず自分で縮めてみろ
542 :539 :02/11/01 22:07
移動中にさらに縮めて5行達成。

#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--;}}

実行したいファイルを引数にして実行汁。
543 :デフォルトの名無しさん :02/11/01 23:05
行儀が悪くても良いなら4行?
#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--;}}
544 :デフォルトの名無しさん :02/11/01 23:18
>>542-543
君等は神
545 :デフォルトの名無しさん :02/11/02 06:19
せっかく頑張ってくれた539には悪いが、アッチのスレの>>1の説明の悪さのためか、
間違っているっす。
[は対応する]に対してジャンプします。
つまり、入れ子になるって事もあると言うこと。
入れ子になったときは、入れ子の対応する括弧に飛びます…。

++++[->++++[->+++<]<]>>.

これを実行すれば、0が印字されるはずなんですが、542のではエが印字されてしまう…。
あと、バイト配列は30000だそうです。
たぶん、正式な言語仕様と思われるところを貼っておきます。
では、がんばって〜〜応援してま〜〜す。
http://www.muppetlabs.com/~breadbox/bf/
546 :デフォルトの名無しさん :02/11/02 12:22
仕様は見とらんがこれでどうよ? >>545
#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--;}}
547 : ◆leSXCx/JO2 :02/11/02 19:37
>>539
スマンコ
548 :539 :02/11/02 23:17
>>545の規格でbefungeインタープリタを2タイプ作ってみた。

/*ちょっと行儀悪くして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
スゲー
549 :デフォルトの名無しさん :02/11/02 23:19
がいしゅつでないといいけど、コッホ曲線。
コッホ曲線ってなに?ってすれがあったので、なんとなく作成。

#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;}
550 :60cm浮き上がるストレート :02/11/03 06:51
>>549
WinMainのはどうやって起動すればよいのでしょう。
C言語にコピペしてやるとmain()が未解決と出てしまいますし。
拡張子をc++にしても同じですし。
C言語しか知りませんので、お教えください。
551 :デフォルトの名無しさん :02/11/03 11:42
メッセージループ入れました。warning出ますが、、、。

#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
でどう?
552 :デフォルトの名無しさん :02/11/03 17:08
>>550
bccだったら
bcc32 -tW k.cpp
553 :539 :02/11/04 00:29
さらに圧縮してみるテスト。

#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);}
554 :60cm浮き上がるストレート :02/11/04 02:42
>>551,>>552
使っているのは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++ファイルを作りテキストにコードをコピペして、
リンク操作などをして、実行しました。
スレ違いで申し訳ないのですが、解決方法をお教えください。
555 :デフォルトの名無しさん :02/11/04 02:45
>>554
そういう初心者質問は別のスレでお願い…
556 :60cm浮き上がるストレート :02/11/04 14:50
>>555
解りました。逝ってきます。
557 :デフォルトの名無しさん :02/11/05 02:09
>>545 の仕様を元にC言語トランスレータにしてみました。スカスカでつ。

#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 ; }
558 :539 :02/11/05 03:19
>557

圧縮。
#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);}
559 :539 :02/11/05 03:23
間違えた。こっちが正しいコードでつ。

#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);}
560 :539 :02/11/08 00:58
//befungeコンパイラ(要gcc)
#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);}
561 :デフォルトの名無しさん :02/11/09 00:31
http://pc3.2ch.net/test/read.cgi/tech/1028570486/853-
に出ていた二段階ソート法、現在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++;}
562 :デフォルトの名無しさん :02/11/09 01:07
から揚げはうまいYo
563 :!561 :02/11/09 05:27
>>561
勝手に短縮。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];}

何をやってるコードなのかは理解しておりませぬ。なので、あってるかも
未検証。警告もでるし。それにしても、最初から縮めることを考えて
作られたのでないのはなかなか縮まりませんな。
564 :デフォルトの名無しさん :02/11/09 23:37
>>563
二段階ソート法は、BWTを行う高速化法の一つですね。
正確にはsuffix arrayを作成する手法です。
565 :デフォルトの名無しさん :02/11/14 14:36
>>561
>>563
00 00 00 00 ... 00 という0並びのデータを与えると、正しくない。
566 :デフォルトの名無しさん :02/11/15 18:13
2ch エンコーダ/デコーダ
http://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 符号化/復号化の実装はちょっとムリっぽかったのでパス。
567 :デフォルトの名無しさん :02/11/16 12:51
ageage
568 :デフォルトの名無しさん :02/11/17 15:33
>>566
ふと思った。符号化・復号をまとめられるんじゃないか、と。
でも、忙しくて自分じゃできないYo・・・
569 :デフォルトの名無しさん :02/11/17 23:59
言い訳すんなー!ばかちんがー!
570 :デフォルトの名無しさん :02/11/18 01:13
砂嵐って会ったけど、あれって単なるランダムなんだよな。
実際のTVに近づけるために横方向の周期性とか、そういったのを持たせられないかなぁ。
571 :デフォルトの名無しさん :02/11/18 04:24
だれか「All-interval serie」を算出する関数考えてくんないかなあ。
572 :デフォルトの名無しさん :02/11/19 20:17
RSA公開鍵暗号実装しれ
573 :デフォルトの名無しさん :02/11/24 02:58
からあげからあげ
574 :依頼だ :02/11/24 18:32
おまいら、これを7行にしてみませんか?
ttp://mcgi2.nifty.ne.jp/cgi-bin/thread.cgi?user_id=VZV05226&disp_no=1082&log_no=500&msg_per_page=10&def=10
575 :デフォルトの名無しさん :02/11/25 13:03
>>574
おまいがやってみませんか?
576 :これ7行にしてください :02/11/26 03:43
#include <stdio.h>
#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;
}
577 :デフォルトの名無しさん :02/11/26 06:03
( ´,_ゝ`)
578 :デフォルトの名無しさん :02/11/26 07:45
>>576
#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;}
579 :578 :02/11/26 07:51
最後逆だった。
;return f?0:-1;}
580 :デフォルトの名無しさん :02/11/26 10:05
あっけない幕切れだな,おい
581 :デフォルトの名無しさん :02/11/26 10:38
getch()とtime(long*)がなんたらって出てコンパイルできないす。
582 :デフォルトの名無しさん :02/11/26 10:57
       コンパイルできないとか言うヤシは
( ´ー`)y━~ ちっとは考えろやゴルァ
583 :デフォルトの名無しさん :02/11/26 11:20
Oo(´o` )y━~ 龍の文句はオレに言えぇ
584 :581 :02/11/26 11:28
ごめんなさい、これでコンパイルできました。
#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;}
585 :デフォルトの名無しさん :02/11/26 11:35
>>581
C++の場合は1行目を
extern "C" {int getch();long time(long*);}int main(int c,char**v){float x=0;
586 :581 :02/11/26 11:47
>>585
なるほど。CとC++では変わるのですか。知らなかったす。
試したところ、確かにコンパイルできました。
どうもです。
587 :デフォルトの名無しさん :02/11/26 12:38
Cだとextern要らなかったり。
#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;}
588 :デフォルトの名無しさん :02/11/28 03:13
このプログラムでド胆を抜けまつか?

#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;}
589 :デフォルトの名無しさん :02/11/28 10:43
>>588
誤爆しました。
590 :デフォルトの名無しさん :02/11/28 13:42
過去の作品集めてあるところないですか?
7行ドラクエってのを見たいんですが
591 :デフォルトの名無しさん :02/11/28 13:42
>>589
圧縮しますた。
#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;}
592 :590 :02/11/28 22:32
安西先生・・・俺ドラクエが見たいです・・・(ノД`)
593 :デフォルトの名無しさん :02/11/28 22:34
>>592
ドラクエは7行になっていない。
現在dat落ちしている7行スレ2にあるわけだから、
それをみればいいわけで・・・
594 :安西 :02/11/28 22:35
>>592 くん。あきめたらそこで試合終了だよ
595 :デフォルトの名無しさん :02/11/29 06:21
ドラクエ転載

int 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;}
596 :デフォルトの名無しさん :02/11/29 06:21
for(n=0,l=0;n<6&&l/10!=3;n++){b=z[n];if(p[b]!=48){N();d=x[b];S(b);d==0?
(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;}}

俺も好きだなあ。コピペして倉庫に放り込んであった。
597 :デフォルトの名無しさん :02/11/29 11:13
>>595-596
バグねーか?
コマンド入力で Enter 押すと MP 増える。
MP が 0 でなければ、足りなくてもマイナスでも呪文が使える。
598 :デフォルトの名無しさん :02/11/29 12:04
>>597
デバッグしてください。
マジ願いです。
599 :デフォルトの名無しさん :02/11/29 14:12
>>598
見てみた。


とりあえず、この 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[] なんだもんなあ・・・。
600 :599 :02/11/29 14:19
やべ、もうこんな時間かよ・・・(;´Д`)
601 :デフォルトの名無しさん :02/11/29 17:45
ドラクエは別のスレでやってくれ。スレが破綻する。
602 :デフォルトの名無しさん :02/11/29 19:33
「釣りバカ日誌パート1」
http://pc3.2ch.net/test/read.cgi/tech/1033220509/l50

ひさびさに存在を思い出した。
7行になるめどがつくまでは釣りスレでじっくり遊ぶのがいいかもだ。
603 :デフォルトの名無しさん :02/11/30 00:04
>>595-596
bccでコンパイル通らないんだけど、何かインクルードしなきゃだめ?
604 :デフォルトの名無しさん :02/11/30 01:44
>>603
( ´∀`)・ω・) ゚Д゚)・∀・) ̄ー ̄)´_ゝ`) Σ(´D`lll)
605 :デフォルトの名無しさん :02/11/30 02:31
>>603
これ何のソースだかわかってる?
606 :デフォルトの名無しさん :02/11/30 22:56
まさかJavaとか?
607 :デフォルトの名無しさん :02/12/01 06:27
(゚Д゚)ハァ?
608 :デフォルトの名無しさん :02/12/01 07:55
何のソースだかわかってるなら、bcc でもコンパイルできるはずなんだが。
609 :デフォルトの名無しさん :02/12/01 13:53
stdio.h
stdlib.h
math.h

だけでいいはず。
610 :デフォルトの名無しさん :02/12/01 13:54
あとansi.sysもいるな。

俺は入れてないから「もうダメポ」に。
611 :デフォルトの名無しさん :02/12/01 18:26
>>609
595-596 のソースにか?
要らんだろ。

NEC98 でなければ ANSI.SYS は要る。
612 :デフォルトの名無しさん :02/12/01 18:28
DOSIME.SYS にでも放り込んどきゃいいじゃん
613 :デフォルトの名無しさん :02/12/01 20:41
>>611
bccなら>>609つけたほうがいいだろ。
614 :デフォルトの名無しさん :02/12/01 20:41
違うわ、ゴメン。
615 :デフォルトの名無しさん :02/12/01 21:40
bcc でも、別に何も追加やら修正やらしなくてもコンパイル通ったが。
616 :デフォルトの名無しさん :02/12/02 00:31
bccにVC6とMFC4.0、それとVB.netをHSPで導入したら、コンパイラできました。
ありがとうございます。
617 :デフォルトの名無しさん :02/12/02 00:34
3点。
618 :デフォルトの名無しさん :02/12/02 08:36
-4i点。
619 :デフォルトの名無しさん :02/12/02 16:16
(AA省略)を7行ってできる?
620 :デフォルトの名無しさん :02/12/02 18:15
puts("(AA省略)");
621 :デフォルトの名無しさん :02/12/02 18:50
PRINT "AA省略"
END
622 :デフォルトの名無しさん :02/12/04 18:25
'(AA省略)
623 :デフォルトの名無しさん :02/12/04 19:06
>>622
バカ発見
624 :デフォルトの名無しさん :02/12/04 19:24
>>623
バカ発見厨カコワルイ
625 :デフォルトの名無しさん :02/12/04 19:35
>>624
お前、>>623が何故バカと言ったのか分かってないだろ?>>624=>>622か?
626 :デフォルトの名無しさん :02/12/04 20:01
>>625
マジにわからんから教えてくれ。
実行しても何も起こらないとか、そういう事じゃないよな?
627 :デフォルトの名無しさん :02/12/04 21:51
repeat:cls:redraw 2:line 320,240,mousex,mousey:redraw 1:await 1:loop;;;;;;;;;;
628 :デフォルトの名無しさん :02/12/04 23:19
8bit時代の人間にしかわからんバカさだな。
629 :デフォルトの名無しさん :02/12/05 14:40
>>628
プ 七行プログラムも書けないくせに
時代じゃねーよ 才能だボケ!
630 :デフォルトの名無しさん :02/12/05 15:18
repeat:cls:redraw 0:line 320,240,mousex,mousey:redraw 1:await 1:loop;
631 :デフォルトの名無しさん :02/12/05 15:33
reiterate oppai
〃 nullpo
632 :デフォルトの名無しさん :02/12/06 10:02
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ ←>>631
 (_フ彡        /
633 :デフォルトの名無しさん :02/12/06 10:21
>>632
このAAなんかおかしいよな。
634 :デフォルトの名無しさん :02/12/07 10:29
ポートスキャナー。使い方も含め6行。これ以上縮まるかなぁ?

// 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){}}}}
635 :634 :02/12/09 13:18
ちなみに>>634は、開きポートのみ出力。

例:ポート80があいていた場合。
--------------------------------------------------
C\test>java P 127.0.0.1 21 110
80

C\test>
--------------------------------------------------

みたいな感じ。わかりにくくてスマソ。
636 :デフォルトの名無しさん :02/12/09 19:58
釣り馬鹿dat落ちした?
637 :デフォルトの名無しさん :02/12/10 00:24
今日はいろんなスレが落ちていったナー。
638 :デフォルトの名無しさん :02/12/10 12:26
旧スレより下がってるから、age
639 :デフォルトの名無しさん :02/12/14 18:00
ついにpart1がdat落ち age
640 :デフォルトの名無しさん :02/12/15 07:22
ついにここもdat落ち?
641 :デフォルトの名無しさん :02/12/15 18:53
>>640
最近はネタも少ない上に、食いつきも悪いからね・・・。
part1の前半を第一のピークとすれば、
part1の後半からpart2の中盤くらいが第2のピークで。
part3になると、出足からけちがついていてちょっと落ち目だね。
642 :デフォルトの名無しさん :02/12/18 08:11
601 がDQ ネタを追い出したからだ
643 :デフォルトの名無しさん :02/12/18 09:22
DQN ネタを追い出したからだ
644 :デフォルトの名無しさん :02/12/19 01:06
コテハンを追い出したから・・・ってのは結構あるかも
645 :デフォルトの名無しさん :02/12/19 06:29
企画の無意味さに気づいてきたんじゃ…
646 :デフォルトの名無しさん :02/12/19 12:26
もうだめか。。。
647 :デフォルトの名無しさん :02/12/19 12:58
もうだめぽ
648 :デフォルトの名無しさん :02/12/19 14:36
みんな はさーん
649 :634 :02/12/20 04:32
俺っていったい・・・
650 :デフォルトの名無しさん :02/12/20 11:53
>>649
いや、それはそれですごいと思うよ。
ただ7行スレの場合、7行以上のものを縮めるのが楽しい人も多いわけで。
651 :デフォルトの名無しさん :02/12/20 16:58
>>649
> 俺っていったい・・・
大したやつだ!
652 :デフォルトの名無しさん :02/12/21 00:21
何かネタない〜?俺はない。
653 :デフォルトの名無しさん :02/12/21 00:35
アセンブリ言語
654 :634 :02/12/21 02:19
 
655 :デフォルトの名無しさん :02/12/21 02:27
>654
hagesiku同意
656 :デフォルトの名無しさん :02/12/21 04:24
何これ
657 :デフォルトの名無しさん :02/12/21 06:00
何って?冒頭読めば分かるじゃん。
658 :デフォルトの名無しさん :02/12/21 11:33
>>656
ttp://www.isl.cs.gunma-u.ac.jp/~shingo/make/7line/7line.html
調子に乗りすぎ。駄作ばっかり並んでるし。
オセロの作者は、オセロだけではなくて他に色々高度なネタを披露しているけど、
こいつはテトリスだけだよな。自己満足のページ作るくらいなら、他の人の
作品もまとめた方がなんぼかマシだよ。

しかしあのテトリスは凄かったが。
659 :デフォルトの名無しさん :02/12/21 13:21
>>658
自己満足なんだから放っておけ

しかし自己満足だとしても、オセロの作者のページなんかがあれば見てみたいな
660 :デフォルトの名無しさん :02/12/21 14:38
>>658
何悔しがってんの?だっせー。
661 :デフォルトの名無しさん :02/12/21 17:38
>>658
なんか「俺にはファンがいる」とか自分で言ってるのが痛いな
662 :656 :02/12/21 20:29
俺が言うのもなんだけど。
>>657-661みたいな意見が7スレをだめにしたんだと思うよ。
663 :デフォルトの名無しさん :02/12/21 20:38
>>662
加えて最近の駄作続きが拍車をかけたのか…
# DQって何がすごいの?
664 :656 :02/12/21 20:41
656を見て駄作だらけとは感じないのか?
でも、れを摘み取ってはいけないと思うのだけど、どうよ。
665 :デフォルトの名無しさん :02/12/21 20:44
それよりMPMっていうのが気になった。ぐぐっても見つからん。
666 :Sタソファソ :02/12/21 20:51
お前らSタソもここ見てるんだから励まそうよ!
ハァハァ
667 :Sタソファソ :02/12/21 20:52
>>661 ファンですが何か?
668 :デフォルトの名無しさん :02/12/21 20:57
>>661
そんなこといって最後まで読んでんじゃん
俺もよんだけどなー
669 :デフォルトの名無しさん :02/12/21 21:04
>>661
むなしく同意
でも、こいつが自分のwebでオナニーしてるだけなら文句は言わない。
奴はちょっとでも自信があると、ここで連投するから鬱陶しいと思われ
#技術力も発想力も言うほど無いしな
670 :デフォルトの名無しさん :02/12/21 21:05
>>666 メールアドレスワラタ
671 :デフォルトの名無しさん :02/12/21 21:09
>>669
ちまちまうpすることが、非難されてるけど、それが7行スレを衰退させたと思う。
あくまでも俺は、だけど、連投賛成。
672 :デフォルトの名無しさん :02/12/21 21:15
>671
7行達成していないならば、自分ではもうどうしようもなくなってからアップすべきだな
例:砂嵐シミュレータ、ハフマン、マインスイーパ、等

Sは自己満足のためだけだったから鬱陶しかった。典型的ヲタク臭がしたのは俺の気のせいか?
#それに出来上がった作品も、遊んでみてなんだかいまいちだったしな
673 :デフォルトの名無しさん :02/12/21 21:19
>>672
でも自分と違うテクニックを持っている他人の出現を求めるには、
「自分ではどうしようもなくなってから」では遅いということを痛感するよ。
part1の時は俺も投稿したことがあるけど、
意見レスはあっても、結局プログラムのレスは付かなかった。
「自分ではどうしようもなくなってから」という状態は、他人が手をつけにくいという、
技術的な問題も含んでいるし、いまさら参加できないという精神的な問題もあると思う。

俺もS氏のテトリスに参戦しようと思ったけど、表明が遅すぎて何もできなかった。
674 :671 :02/12/21 21:22
>>672>>673
昔から言われていたが、7行スレの見方に複数意見があることは間違いないですか?

・縮める過程を見せろ、あるいは参加したい
・7行に到達した作品だけをもってこい
675 :デフォルトの名無しさん :02/12/21 21:23
>>672
日記見てると、どちらかというと典型的な研究者だな。
だから自分の成果はどんどん公表したいんだろうよ。
676 :デフォルトの名無しさん :02/12/21 22:33
結局のところSは痛い香具師
そしてプログラムで語らない俺らも痛い香具師
677 :デフォルトの名無しさん :02/12/21 22:43
>>674
俺的には
>・縮める過程を見せろ、あるいは参加したい
だな。どんどん短くなってく様を見たい。
いきなり完成品投稿されてもフーンとしか思えない。

>>662
>>660も?
678 :デフォルトの名無しさん :02/12/21 22:49
10 PRINT "だったら俺は痛くない?":GOTO 10
679 :デフォルトの名無しさん :02/12/21 22:51
・7行になりそうに無いネタ振ってくるな
・つまらんネタ振ってくるな
680 :デフォルトの名無しさん :02/12/21 22:52
http://pc.2ch.net/tech/kako/984/984182993.html
パート1の60、トリッキー1、*nix厨房、そういった奴らが数人集まって
はじめて良スレが出来上がるんだろうな。
60の技術力は凄いし、トリッキーの1はスレの方向の誘導がすごいうまいと思う。
彼らの兼ね合いも読んでいて面白いし。こういう人と仕事したいね。

みんなもパート1読んでなごめやゴルア
681 :デフォルトの名無しさん :02/12/22 00:20
>>679
>・7行になりそうに無いネタ振ってくるな
テトリスはなりそうにないのになっちゃったから、一応ネタを振るだけなら許可。

>・つまらんネタ振ってくるな
こっちは激しく同意
682 :デフォルトの名無しさん :02/12/25 20:01
>>680
確かにいいことを言っているが、現状はどうしようもない
奴らはもう帰ってこないだろう。
683 :過去参(略 :02/12/28 02:20
活気がなくなってきたんで、とりあえずこの辺で









===== 糸冬 了 =====
684 :デフォルトの名無しさん :03/01/08 17:09
あ、久しぶりに来たら、終わってた。
ちょっと寂しいな・・・
685 :デフォルトの名無しさん :03/01/08 19:35
>>684
あなたが書いてくれればまた始まりますよ。
686 :デフォルトの名無しさん :03/01/08 23:04
/*
687 :デフォルトの名無しさん :03/01/08 23:24
*/
688 :デフォルトの名無しさん :03/01/09 00:15
/*/*/*/*/*
689 :デフォルトの名無しさん :03/01/09 02:32
*/
690 :デフォルトの名無しさん :03/01/09 02:52
あずきちゃんDVDBOX買って馬鹿になろう!
http://www.starchild.co.jp/special/azuki
691 :デフォルトの名無しさん :03/01/09 03:33
大阪キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
692 :デフォルトの名無しさん :03/01/09 04:16
ITバブルの中で様々な幻想が語られた。

リアル経済ならぬバーチャル経済しかり。
ITによる失業者の吸収しかり。
「これからは2ちゃんねるの時代だ」のごとき匿名幻想しかり。

IT社会はリアルワールドにおける
信頼と責任抜きにはありえないというだけの話だ。
693 :デフォルトの名無しさん :03/01/09 13:51
食えりゃなんでもいいよ。
694 :デフォルトの名無しさん :03/01/09 14:45
ID:ZBsKvw39(・∀・)カエレ!クルナ!イッテヨシ!
695 :デフォルトの名無しさん :03/01/09 17:37
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
696 :デフォルトの名無しさん :03/01/09 23:28
おぺら6.05からテスト
書けてるよ〜
697 :デフォルトの名無しさん :03/01/10 08:28
そうそう、しかし保護は無理だろ、責任追及されたら誰かが責任とらないといけないんだし。    
698 :デフォルトの名無しさん :03/01/10 09:49
>>183
きわめてそれっぽい
699 :デフォルトの名無しさん :03/01/10 10:31
えーっと、


IPの話はどこへ、、、(^_^;)
700 :デフォルトの名無しさん :03/01/10 11:02
みんなで博之を訴えまくるか。
名誉毀損のレス1つ1つに対して民事を起こす。
10億件とか。
んで判決間際で取り下げ。
裁判所を麻痺させろ!!
701 :デフォルトの名無しさん :03/01/10 11:46
>正直、本当の危機に直面しないと動かんだろうな。>2ちゃんねらー

動くってどうするんだよ?
なくなったらなくなったでいいや。
という人が多いんだよ。
702 :デフォルトの名無しさん :03/01/10 12:16
なんだよ ひろゆき とうとうやっちゃったな
つまんねーネタがネタにならねーじゃねえか
もう だ・め・ぽ・・・
703 :デフォルトの名無しさん :03/01/10 13:06
じゃあ今までIP、IPって騒いでたのは何だったんだよ?(^^;
ニャロ
704 :デフォルトの名無しさん :03/01/10 15:29
真面目な質問だったのか・・・。

一見違うように見えるんじゃなくて趣旨が違います。
趣旨を理解できないアホなボランティアが多いのは確かですが、
真似してはいけません。
705 :デフォルトの名無しさん :03/01/10 16:56
じゃあさトップに閲覧料1分1億円てかいといて訴えられるたびに請求したら良くない?
706 :デフォルトの名無しさん :03/01/10 23:18
>>ひろゆき
女紹介してくれ
707 :デフォルトの名無しさん :03/01/10 23:23
http://qb.2ch.net/test/read.cgi/accuse/1042131034/

312 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/10 19:59 ID:jWxHxvti
全部にいれてみた。

708 :デフォルトの名無しさん :03/01/11 00:41
真っ先に帰るのが普通の客なんでないかな??冷やかしの人に裁判沙汰のリスクは
おえないでしょ。
本職はIP位ではへこたれずに留まるだろうけど、暫らくは半端な厨房が通常板へ
なだれ込んで無差別に悪さ(差別コピペ)をする、っつー事になりそう・・・

709 :デフォルトの名無しさん :03/01/11 10:11
ひろのぶさーん。
710 :デフォルトの名無しさん :03/01/11 10:43
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
711 :デフォルトの名無しさん :03/01/11 11:36
幹事よろしく!!
712 :デフォルトの名無しさん :03/01/11 12:11
正当な内部告発をにちゃんに書くな
713 :デフォルトの名無しさん :03/01/11 13:10
なんでもかんでもバシバシ訴えると、ヤブヘビになる件も出てくると思うんだよね。
そういう意味では、企業レベルよりも個人レベルの要請が増えるのかもしれない。
714 :デフォルトの名無しさん :03/01/11 13:40
北欧に行くってさ

172 :ひろゆき ◆3SHRUNYAXA :03/01/11 05:31 ID:kSb7xo24
北欧は放浪して資源を貯めれるので、
逃げ回ってると死なない。 
715 :デフォルトの名無しさん :03/01/11 16:26
だから、時々タイーホあるやん
716 :デフォルトの名無しさん :03/01/11 16:33
意見を聞いてもらうために「次スレたってないようなのでこちらに」は
 
 やめろ。
717 :デフォルトの名無しさん :03/01/12 00:34
つーかトリップもキャップもついてないし。
718 :デフォルトの名無しさん :03/01/12 00:45
600,000,002だった・・・(´・ω・`)
719 :デフォルトの名無しさん :03/01/12 03:26
ビビタ・・・
720 :デフォルトの名無しさん :03/01/12 03:26
勇気=マンコを示せ!!
721 :デフォルトの名無しさん :03/01/12 10:54
前スレで写真うpした奴の話は本当だったのか・・・
疑ったりして悪いことしたな・・・
722 :デフォルトの名無しさん :03/01/12 10:57
まぁ本当にひろゆきが金払う必要があるなんて思ってる知能指数0の基地外は
2ちゃん内部にはいないからな
723 :デフォルトの名無しさん :03/01/12 12:17
閑話休題;

LZW互換?圧縮/復元 ( 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++ で書くと何行になるんだこれ。
724 :デフォルトの名無しさん :03/01/12 21:28
何を今更・・・
725 :デフォルトの名無しさん :03/01/12 21:31
642 が核心を突いてるぞ!

(トリップ便乗!)
726 :デフォルトの名無しさん :03/01/12 21:42
一人でいろいろ作業するのは大変なので
分業することにしたようですよ。
727 :デフォルトの名無しさん :03/01/13 11:23
>>723のと同作者。この圧縮法は既出?

reflexive_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が目一杯。
まあ並のファイル相手じゃどれも大差ないんだケド。
728 :山崎渉 :03/01/13 19:02
(^^)
729 :山崎渉 :03/01/15 18:15
(^^)
730 :デフォルトの名無しさん :03/01/19 23:51
保守
731 :sage :03/01/20 01:39
ガイシュツならスマン。円周率計算なら

int 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));}

なんてのがあったな。
どういう公式使ってるのかわかった香具師は教えれ
732 :ccc :03/01/20 01:43
http://click.dtiserv2.com/Click/127-45-4493
      ★お話しませんか?★
733 :ぬるぽ :03/01/20 06:09
http://pc.2ch.net/test/read.cgi/prog/1042017145/l50
      ★ぬるぽしませんか?★★
734 :デフォルトの名無しさん :03/01/21 00:42
  ∧  ∧
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ ←>>733
 (_フ彡        /
735 :山崎渉 :03/01/23 20:08
(^^)
736 :デフォルトの名無しさん :03/01/29 19:46
鯖がpc3->pc2記念
737 :デフォルトの名無しさん :03/01/31 15:12
>>732-734にワラタ
738 :デフォルトの名無しさん :03/02/07 00:27
円周率

$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;
739 :デフォルトの名無しさん :03/02/08 16:10
>738
実行してみてワロタ
740 :俺もワロタ :03/02/08 23:26
>>738
ガッ
741 :デフォルトの名無しさん :03/02/09 04:43
SOCKS4 Proxy 10行・・・
import 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){}}}
742 :デフォルトの名無しさん :03/02/10 04:43
9行になりましたもうおしまいです。
import 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;}
743 :デフォルトの名無しさん :03/02/10 13:57
>>738
禿げ藁
744 :デフォルトの名無しさん :03/02/14 22:44
今日のお昼はから揚げでしt
745 :デフォルトの名無しさん :03/02/15 22:06
>>738
  ∧_∧
 ( ´∀`)< ぬるぽ
746 :デフォルトの名無しさん :03/02/16 08:09
>>745-750
ガッ
747 :デフォルトの名無しさん :03/02/19 21:44
ネタ希望
748 :デフォルトの名無しさん :03/02/20 00:04
>>747
複数文字列のパターンマッチングとか。

実装例)fgrep
アルゴリズム) AC法、CW法
749 :デフォルトの名無しさん :03/02/20 00:22
>>747

ソースコードをHTML出力するプログラム

・外部データとしてkeyword.txt(名前は何でもいい)を読み込み
 そこに記載されているキーワードには色をつける。
・コメントにも色をつける
・できれば文字列リテラル("〜"、'〜')にも色をつける。

みたいな。
750 :デフォルトの名無しさん :03/02/20 01:37
>>749
lex使ってもいいでつか?
751 :デフォルトの名無しさん :03/02/20 01:39
>>750
できれば使わない方向で。
>>748 を実装し、そのさらなる応用として>>749
みたいな。
752 :デフォルトの名無しさん :03/02/20 23:22
>>749
#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行だし・・・
753 :752 :03/02/20 23:25
修正
char d[4][5]={"<","&lt;",">","&gt;"}
&は半角
754 :デフォルトの名無しさん :03/02/21 00:16
>>752
よく見ずにレスするけど、TABの展開作業ってしてる?
755 :デフォルトの名無しさん :03/02/21 01:05
>>752
コメント&リテラル色付き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行の&は半角で。
756 :デフォルトの名無しさん :03/02/21 02:38
>>749
挫折しますた
757 :752 :03/02/21 03:04
#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],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展開、コメント(//)色付き、リテラル内のキーワード色付け防止機能追加
頭痛くなってきた・・・
758 :752 :03/02/21 03:06
修正
#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);}
759 :デフォルトの名無しさん :03/02/21 15:39
>>758
自身を食わせると,アンパサンドの変換がないから元と異なるソースが出るね.
dに&と&amp;の対応入れた方が良いかな.
char d[4][5]は書き換える訳じゃないから,char *d[]で良いね.
NULL Terminateな文字列をコピーするときにmemcpy使わずにstrcpyで良いんじゃ?
string.hも#includeしてることだし.
ぱっと見たところでこれだけ発見.けど7行への道のりは遠い……
760 :755 :03/02/21 17:15
EOF検出が甘かったので修正。
hoge 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:;}}
761 :752 :03/02/21 18:00
#include <stdio.h>
#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』行・・・根本から変えんと縮まる事は無いだろうな・・・
762 :デフォルトの名無しさん :03/02/21 18:51
>>758を少し弄ってみた.
stdlib.hって必要ないですよね?
14行.fopen/fcloseが結構コスト高いなぁ
あとは&nbsp;の連続とか,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[]={"<","&lt;",">","&gt;","&","&amp;","\t","&nbsp;&nbsp;&nbsp;&nbsp;"};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)
;}
763 :デフォルトの名無しさん :03/02/21 18:55
>>762
ctype使うかってなんだ...
isalphaのまちがいでふ.
しかも752にアップデートされてるし……
764 :755 :03/02/21 19:15
760を圧縮。12行

#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」とか。
765 :デフォルトの名無しさん :03/02/21 19:47
>>764
そ,そうですね.
さらに数字も拾えないですね.str2intとか.
ついでにintegerでも色変わりますね.鬱.
766 :デフォルトの名無しさん :03/02/21 20:01
HTMLの部分も不正だけど(藁
<body><pre>〜
だけで閉じタグ無くても良くないか?

あと、投稿の時は&を&amp;と表記すると良い。
&amp;(&) &gt;(>) &lt;(<)

<font color=#RRGGBB> 〜 <font>
           を
<a style=color:#RGB> 〜 </a>
としたら減らない?
767 :755 :03/02/21 20:03
764だと最後のキーワードが読めなかった……
ついでに微修正

#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;}
768 :デフォルトの名無しさん :03/02/21 20:05
sage間違えた撃つ。隣を押していたよ。

後半の部分、 <font> -> </font>だった。
これでも3文字減るはず。
色表記の組み合わせが 256^3 から 16^3 になるけど問題ないはず。

…#RRGGBB表記じゃなくて 'red' だったのか。
ゴメン、後者だとむしろ一文字増える。
スマン
769 :デフォルトの名無しさん :03/02/21 20:16
>>768
*sにあらかじめ # まで入れといたら、
1文字くらいの節約になるか。
red teal blue 三色あるから。
770 :752 :03/02/21 20:32
#include <stdio.h>
#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行しか減らなかった・・・(;´Д⊂`
771 :デフォルトの名無しさん :03/02/21 21:28
>>770
「&nbsp;&nbsp;&nbsp;&nbsp;」のようなとき、
実態参照の後にスペースがあるなどの場合は;を省略できるから
「&nbsp&nbsp&nbsp&nbsp;」でOK。
# これで3文字

<html></body></html>も無くてもいいだろう。
# 23文字くらいか
本当はあまり良くないけど、7行のためだ、テトリスだってタグを省略してたし。
772 :デフォルトの名無しさん :03/02/21 21:53
つーかなんで7行なの?
773 :755 :03/02/21 22:00
766、771の通りタグ減らしてみた。
1行しか減らなかったけど。

#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("&amp;"
):f("&gt;"):f("&lt;");}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
774 :デフォルトの名無しさん :03/02/21 22:00
>>767
isalphaとisalnumはctype.h,strcmpはstring.hの定義だよぉ
775 :755 :03/02/21 22:10
>>774
strcmpは使ってない(strdupはプロトタイプ書いてある)
isalpha/isalnumは返り値がintだから書いてない。
コンパイラによっては警告出るかもしれないけど。
767がエラーになるはコピペミスです。スマソ。
776 :755 :03/02/21 22:12
>>775
strcmp使ってるし……
これも返り値intだから書いてないだけ……
777 :752 :03/02/21 22:37
#include <stdio.h>
#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行分削減
778 :デフォルトの名無しさん :03/02/21 22:39
>>777 7行スレふぃーばー!
memcmp,fclose,fputs,fprintfなどを関数ポインタにしてみたら?
779 :752 :03/02/21 23:18
>関数ポインタに変えた結果
memcmp - 10字程減少
fclose - 10字程増加
fputs - 15字程減少
fprintf - (以下略

後30字程減少できたら1行削減なのに届かない・・・
780 :752 :03/02/21 23:30
#include <stdio.h>
#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);}
781 :749 :03/02/21 23:58
半分冗談で書いたんだがw、すげーな、もまいら。
7行すれなんだからダメなんだろうけど、そこまで圧縮できただけでも
すごいよ。まじで。
782 :デフォルトの名無しさん :03/02/22 00:10
>>780
そもそもプログラム末のfcloseはいらないのでは?
あと、文字列リテラルchar *d[]={"1...","2...", ...};は、まとめちゃって、
char *d="1...\02...\..."; にして、d+0,d+?, ... でアクセスしたら?
あと、それに\"</font>も加えると。d+x, d+x+2で\"を入れるか入れないか選択可。
783 :デフォルトの名無しさん :03/02/22 00:14
あと細かいけど、
char 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;
784 :デフォルトの名無しさん :03/02/22 00:43
>>780
・==0は(基本的に)不要
・グローバルなint n=999を用意し、配列のサイズは全部nに統一
・可能な限りローカル変数グローバルにする。それぞれにint等書く分と、
場合によっては=0の初期化分が稼げる。関数呼び出しがネストしなければ、
引数と返り値もグローバルにしたほうがちぢむ可能性あり(callの出現回数による)。

キレイすぎ。元からもっと縮められるはず。
785 :デフォルトの名無しさん :03/02/22 00:54
つーか、void main(...) のあたりでいやソな感じ
786 :752 :03/02/22 02:08
#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<\0>\0>\0&\0&\0\\\\\0\\\\\0\\\"\0\\\"\0"
"\t\0&nbsp&nbsp&nbsp \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!
787 :752 :03/02/22 02:10
をっと・・&を全角にするのを忘れていた・・・
#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);}}
788 :デフォルトの名無しさん :03/02/22 02:16
>>786
独自に>>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;}}
789 :788 :03/02/22 02:18
文字列の部分をしっぱい。

char*d[]={"<","&lt;",">","&gt;","&","&amp;","\\\\","\\\\","\\\"","\\\"","\t",
"&nbsp;&nbsp;&nbsp;&nbsp;"," ","&nbsp;","","<FONT COLOR="},*o,h[256][256],b[999],g[256];
790 :デフォルトの名無しさん :03/02/22 02:20
>>773
アルゴリズムは追ってないけど。

・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)

あとはファイル名を短い固定のものにするか、
入出力を変えるくらいですね
791 :デフォルトの名無しさん :03/02/22 02:32
7行じゃなくて済みません。Java版、自分自身を表示。

class 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";}

792 :デフォルトの名無しさん :03/02/22 02:35
>>788

最初のループの中身を次のようにしてもいいんじゃないか?
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;
793 :デフォルトの名無しさん :03/02/22 02:35
>>791
それはむしろトリッキースレだな・・・
794 :デフォルトの名無しさん :03/02/22 02:39
>>791
おもしれーな
795 :755 :03/02/22 03:49
>>790
サンクス。
キーワードファイル名を「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":"&amp;":"&gt;":"&lt;",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++は問題なし)。
796 :デフォルトの名無しさん :03/02/22 03:53
788ですが、12行まで縮めたので寝まつ。

仕様変更:入力キーワードファイルを 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;}}
797 :デフォルトの名無しさん :03/02/22 05:54
初心者質問良いですか?
こうやって行数を少なくすると実用面で良い点(処理速度とか)
があるんですか?
798 :デフォルトの名無しさん :03/02/22 06:06
>>797
実用性は無い。まったく無い。七行プログラムを書い
たり、他人の書いた七行プログラムを解読することで、
プログラミングの能力がちょびっと高まることはあるか
もしれん。でもそれも副作用にしか過ぎない。できる
だけ少ない行数でできるだけ高度な機能を実装してい
るプログラムを見て驚くのが好きだからやってる。
799 :デフォルトの名無しさん :03/02/22 10:48
>>797
楽しんでるだけだよ。
プログラムを楽しめるってのはいいことじゃないか。
800 :デフォルトの名無しさん :03/02/22 14:20
void*memset(void*,int,unsigned int),srand(unsigned int),exit(int);int rand(),
printf(),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`)・・・
801 :デフォルトの名無しさん :03/02/22 15:10
>>796
&nbsp&nbsp&nbsp&nbsp;
用は半角スペースが2個以上連続していなければいいんだから、
二つ目の&nbspはハンカクスペースで置き換えられるかも。
802 :788 :03/02/22 15:46
10行と半分。>>755 さんにはまだ追いつけない・・・

バグ?:>>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&lt;\0>\0&gt;\0&"
"\0&amp;\0\\\\\0\\\\\0\\\"\0\\\"\0\t\0&nbsp &nbsp&nbsp;\0 \0&nbsp;",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;}}
803 :デフォルトの名無しさん :03/02/22 16:43
>>752 >>788
かなり最初のほうから、行コメントとブロックコメントの重複処理がバグっている

// aaa /* bbb */
ccc

これだと、aaa の p=2 が bbb で消されて、ccc 以降がすべて aaa の色になる。
804 :788 :03/02/22 17:14
バグ?:致命的だったので、>>803 のバグを解決しました。
仕様変更:入力を標準入力から読み込むように変更

#include <stdio.h>
char*d="<\0&lt;\0>\0&gt;\0&\0&amp;\0\\\\\0\\\\\0\\\"\0\\\"\0\t\0&nbsp &nbsp&nbs"
"p;\0 \0&nbsp;",*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;}}
805 :791 :03/02/22 17:18
7行にできました。Java版、自分自身を表示。

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&#X<#qr#p$$dE##$##$#$L%)$#o%%)$#MF##$#B$#qJ%)$#o%%)$$<l##$%)$%*$%)$#o%%)"+
"$%+o%)$#o%%)$%wn%)$#V$#W$~~/* Save me to a file as 'S.java' (^_^)/ */";}

806 :755 :03/02/22 17:58
やっと一桁……でもあと2行(死

int 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":"&amp;":"&gt;":"&lt;",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);}};}
807 :755 :03/02/22 18:33
>>806
7行目のみ修正&「'」「"」に色をつけないように仕様変更。
;}else if(d-47){if(d==34|d==39){for(f("%c%sblue>",c=d,s);h(c);)a();f("%s",e);}a
808 :デフォルトの名無しさん :03/02/22 18:43
int printf(),(*m)()=printf;char*z="?\0O\0a\0b\0c\0d\0e\0f\0g\0h\0X",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]<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&amp&!l[c+f][b]?l[c+f][b]=a[c
+f][b],g--,i=2:0;a[c][b+f]<10&amp&!l[c][b+f]?l[c][b+f]=a[c][b+f],g--,i=1:0;}}}}

8ギョウマインスイーパ('A`)ワーニングハキニシナイ
809 :755 :03/02/22 19:16
806-807微修正。

int 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":"&amp;":"&gt;":"&lt;",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);}};}
810 :デフォルトの名無しさん :03/02/22 20:33
>>808
char 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&amp&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&amp&l
[c][b+f]==0?l[c][b+f]=a[c][b+f],g-=11>(b+f)&amp&(b+f)>0,i=1:0;}}}}
811 :デフォルトの名無しさん :03/02/22 22:54
マインスイーパってpart1にもあったよね?
812 :デフォルトの名無しさん :03/02/23 02:00
char*a="123456789TJQK",*b="HDCS?",c[53],d[9],e[9],l[9];int f,g,h,i,j,printf(),(
*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:勝負
813 :788 :03/02/23 02:49
今日はここまで・・・また>>755さんが遠くへ・・・

#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":"&nbsp &nbsp&nbsp;":"&amp;":"&lt;":"&n"
"bsp;",*o);}}
814 :755 :03/02/23 12:27
ソース標準入力&コメントは/*〜*/のみ(ANSI C)&
>>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":"&amp;":"&gt;":"&lt;",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行の範囲ってことで。
815 :755 :03/02/23 13:13
ちなみに809の機能でソース標準入力にして8行半。

int 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":"&amp;":"&gt;":"&lt;",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);}};}
816 :デフォルトの名無しさん :03/02/23 17:20
>>812
char*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行
817 :デフォルトの名無しさん :03/02/23 21:17
randomize:v=639:w=479:*a:c+:stick k,15:if k&1{x-=4}:if k&2{y-=4}if k&4:x+=4
if 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
818 :デフォルトの名無しさん :03/02/23 21:36
>815を乱暴に圧縮してみるテスツ

int 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":"&amp;":"&gt;":"&lt;",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);}};}
819 :755 :03/02/23 22:11
>>818
int以外のプロトタイプ無くすのはともかく
<pre>無くすと<br>とか&nbsp;とか要るから

a(){f(d-9?d-10?d-32?d-60?d-62?d-38?"%c":"&amp;":"&gt;":"&lt;":"&nbsp;":"<br>":
"&nbsp &nbsp&nbsp;",d);}

とかになってむしろ長くなるかと。
820 :デフォルトの名無しさん :03/02/23 22:43
>>818

int*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);}};}
821 :デフォルトの名無しさん :03/02/23 22:44
>>820
int*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":"&amp;":"&gt;":"&lt;",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);}};}
822 :デフォルトの名無しさん :03/02/24 00:32
o(x){for(;h(x);)a();}を新設しfor(AAA();h(c);)a();→AAA(),o(c);とする
このパターンのforが3箇所あるのでトータルでは削れる
場所によっては{for(AAA();h(c);)a();BBB();}→AAA(),o(c),BBB();と{}を省略可能かと
ついでに一部のif()elseが3項演算子に出来るかもしれず

ちなみに検証はしてない(w
823 :デフォルトの名無しさん :03/02/24 00:42
>>815 &その他
p=t;for(*p++=d;isalnum(h(0))|d==95;)*p++=d;*p=0;

ungetc(d,i);fscanf(i,"%[0-9a-zA-Z_]",t);
に。たぶん*pは未使用になる。
824 :755 :03/02/24 16:44
>>820-823
色々取り入れてついでに警告抑制してみた。

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":"&amp;":"&gt;":"&lt;",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));}};}
825 :デフォルトの名無しさん :03/02/24 18:20
>>813
//コメントの機能削除,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);}}
826 :デフォルトの名無しさん :03/02/24 20:31
>>825
getsだと改行が無くなる。

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":"&amp;":"&lt;",*o);}}
827 :788 :03/02/24 20:32
>>825 アンパサンドが消えてますね・・・
機能追加: ちょっと短くできたので、行番号表示をしてみました。

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":"&amp;":"&lt;",*o);}}
828 :788 :03/02/24 20:44
バグ修正: >>826 さんの指摘の改行を追加

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("\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":"&amp;":"&lt;",*o);}}
829 :755 :03/02/24 21:35
824のコメントでない/の処理がおかしかったので修正。

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":"&amp;":"&lt;",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));}};}
830 :デフォルトの名無しさん :03/02/24 22:51
>828
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("\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":"&amp;":"&lt;",*o);}}
831 :デフォルトの名無しさん :03/02/24 23:01
>>829
f(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の{と、対応する}は冗長。

最後の;は要る?
832 :755 :03/02/24 23:29
>>831
ご指摘通りに。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":"&amp;":"&lt;",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));}}
833 :788 :03/02/24 23:35
>>830

int 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":"&amp;":"&lt;",*o);}}
834 :デフォルトの名無しさん :03/02/24 23:51
>>833
>>1にあるやうに1行は79文字にしませう
835 :デフォルトの名無しさん :03/02/25 00:51
>>834
以前は7x80だったよね?
なんで79になってるの?中途半端でしょ。
836 :835 :03/02/25 00:55
おっと、発言が正確でないな。
以前に、「なぜ80じゃないのか?」という議論があったとき、
改行を含むか含まないか、80文字でも1行で表示できるできない、
といろいろ意見があって、結局のところ、
「79でも80でもどちらでも、その人の好きなように」という結論だったはず。
837 :788 :03/02/25 01:32
>>834
いやいやおかしいな、と思ってよく見たら、
エディタの80行自動折り返しが、横80文字でした。

ついでに過去ログをざっと眺めてみましたが、
>>836 の議論は、もともと「改行文字を含めて」79文字なのかどうかの議論のようです。
part1の最初の頃は1行78文字の作品もあります。
が、その後いろいろ見ていると、半数近くの作品が、
「改行文字を含めずに」79文字と80文字になっているようですね。

私としては、どちらでもいいかなと思います。
しかし、79文字の方が難易度が高いので、
(一応今回の私のは、79文字でも7行でしたが)
次回も挑戦することがあれば79文字でやっていこうと思います。
838 :デフォルトの名無しさん :03/02/25 02:22
grep. 3行半。

main(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 [検索を掛けるファイル名][リスト出力用ファイル名][検索キーワード]
839 :シ尺木寸 :03/02/25 03:49
>>838 新しいのがきたらあげよう。
840 :838 :03/02/25 03:58
正規表現組み込むのは大変だな・・・
841 :仕様書無しさん :03/02/25 12:15
「ししゃくもくすん」って何ですか?
842 :デフォルトの名無しさん :03/02/25 14:06
grep 7行

main(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倍・・・
843 :デフォルトの名無しさん :03/02/25 15:39
>正規表現"|","&"入れただけで2倍・・・
"&"?
844 :デフォルトの名無しさん :03/02/25 15:41
あ、・・・(検索中)・・・"&"なんて正規表現に無いか(゚∀。)
845 :デフォルトの名無しさん :03/02/25 15:42
比較演算子の結果のみを論理演算するなら、&&ではなく&だけでOK。0 or 1 だから。一文字減る。
846 :デフォルトの名無しさん :03/02/25 22:41
grep 6行半

main(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)
847 :デフォルトの名無しさん :03/02/26 20:46
>>841 4バイト文字だよ
848 :デフォルトの名無しさん :03/02/26 21:26
4バイトなのか
849 :デフォルトの名無しさん :03/02/26 22:49
>>846
オリジナルの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]));}
850 :デフォルトの名無しさん :03/02/27 01:00
マッチングはstrstr()でよいのでは。あるいはsscanf()を使い、[]にも
対応するとか。

あと、argcのチェックや、CR,LF両対応(テキストモードで開いてる
にも関わらず)をするより、gREpに近い機能を盛り込んだほうが
よいのでは。

&機能はgrepを|で接げば実現できるので、個人的には不要に思う。
851 :!842 :03/02/27 23:33
>>850 のアドバイスを取り入れた
俺もオリジナル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]);}
852 :!842 :03/02/28 16:32
grep 1[123][123] file
[]による選択が可能なようにした。ただし、[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;}
853 :デフォルトの名無しさん :03/02/28 16:35
↓↓↓↓↓★ココだ★↓↓↓↓↓
http://www.pink-angel.jp/betu/linkvp/linkvp.html
854 :デフォルトの名無しさん :03/02/28 22:33
>>852
strstr()をsscanf()にし%[^0-9]を使い、先頭から順にマッチングすれば
[^0-9]には対応できるのでは? .は%*cで。
855 :デフォルトの名無しさん :03/03/01 09:36
なんかヒサビサに熱いね!age
856 :デフォルトの名無しさん :03/03/01 14:27
age
857 :!842 :03/03/01 15:13
grep [CMG][a-zA-Z1-9] file
[]による選択の際、-(ハイフン)を用いた指定が可能に。
>>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;}
858 :デフォルトの名無しさん :03/03/02 22:28
素人からのお題
「アナグラム」
どう?
859 :デフォルトの名無しさん :03/03/02 22:31
 __
| ム |
 ̄ ̄ ̄ ̄
860 :デフォルトの名無しさん :03/03/02 23:58
>>859
3分でこの回答なら合格。
861 :デフォルトの名無しさん :03/03/03 12:28
>>858
anagram 辞書ファイル名 アルファベットのみの文字列
辞書は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);}}}}
862 :デフォルトの名無しさん :03/03/04 21:05
age
863 :デフォルトの名無しさん :03/03/06 21:20
ex)grep abc[def][g-i]*?j filename

#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);}
864 :デフォルトの名無しさん :03/03/09 22:49
お題「麻雀」

この程度↓のルールなら7行楽勝では?
ttp://www.asahi-net.or.jp/~EY5K-MYHR/p_majan.htm
865 :デフォルトの名無しさん :03/03/10 13:20
>>864
FP-602P! 懐かしいな。
自分は501Pしか持ってませんでしたけどね。(泣
まず解読するのに手間がかかるな(w
866 :デフォルトの名無しさん :03/03/10 22:32
HSP2.6

title "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"
867 :デフォルトの名無しさん :03/03/11 02:51
>>866
プレイヤーの参加性がほしい。
1ターン中に一定時間内にマウスかキーを連打させ、
その回数をダメージに反映させるようにしたら?
(さらには攻撃はマウス連打、防御(被攻撃)はキー連打とか)

んで、ゲームバランスを、必死にならないと勝てないくらいにする、と。
868 :866 :03/03/12 22:04
7行クエスト

z=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"
869 :デフォルトの名無しさん :03/03/13 01:56
836スゲェ
870 :デフォルトの名無しさん :03/03/13 02:00
ジサクジエンカッコワルイ
871 :デフォルトの名無しさん :03/03/13 02:05
7行で画像ファイルの操作って出来るかな?
操作の種類は問わないけど
872 :デフォルトの名無しさん :03/03/13 02:14
xpmとかだと簡単っぽい
873 :デフォルトの名無しさん :03/03/13 02:19
xpmのフォーマットってどんなの?
874 :デフォルトの名無しさん :03/03/13 02:31
>>873
ttp://water.si.hirosaki-u.ac.jp/~slmizu/jikken_gazo/jikken_gazo/node3.html#SECTION00422000000000000000
こんなの。
*NIX上限定なら#include</dev/tty>とかで読み込みに関する記述を省ける(邪道だな
875 :デフォルトの名無しさん :03/03/13 02:41
ども。文字列なのか。
でもこれに対してやりたい操作ってなんかあるの?
876 :デフォルトの名無しさん :03/03/13 05:42
拡大・縮小、トリミング、増減色くらいかな。
それかxpm2bmpとか(キビシイか)。
877 :デフォルトの名無しさん :03/03/13 06:10
モザイク付けてやらしい画像ぽくするとか。実用的。
878 :デフォルトの名無しさん :03/03/13 08:29
16x16でモザイク?
イヤラシイ画像を自動生成するとか。
879 :デフォルトの名無しさん :03/03/13 22:24
そういや、bmpやpngファイルの生成が過去にあったね。
880 :デフォルトの名無しさん :03/03/15 13:28
汚いコードばっかりだな
もっと見易く書けよ
881 :デフォルトの名無しさん :03/03/15 14:20
>>880
ネタ ? 煽り ? 単なるヴァカ ?
882 :デフォルトの名無しさん :03/03/15 14:32
釣りだうんこ
883 :デフォルトの名無しさん :03/03/16 02:01
>>880
どうっすか?
釣れてますか?
884 :デフォルトの名無しさん :03/03/16 02:48
ム板で「ぬるぽ」の文字を見つけたら自動的に「ガッ」のレスを返す
プログラムをどなたか作ってください。
885 :デフォルトの名無しさん :03/03/16 03:09
自分で殴るから面白いのに・・・
自動でやらせて何が嬉しいんだか・・・
886 :デフォルトの名無しさん :03/03/17 21:22
保守
887 :デフォルトの名無しさん :03/03/20 01:20
ねた:シリアル通信
サーバとクライアント間で文字列(ないしは1バイト記号)を転送をする

環境:お好きなように
888 :デフォルトの名無しさん :03/03/20 16:15
「FX-602P のエミュレータがほしい」とか逝ってみる鉄男。
889 :デフォルトの名無しさん :03/03/20 17:26
過去の7行言語系の能力から察するに、>>864のいう麻雀のほうが
まだ実現可能性があると思うがどうか。
890 :デフォルトの名無しさん :03/03/20 19:53
ネタ:ファイル暗号化/複合化
7行でできる限り強力なもの 暗号化と複合化は別々で桶
891 :デフォルトの名無しさん :03/03/21 00:12
>>890
7行RSAとかどうよ
多倍長できないと駄目ね
892 :デフォルトの名無しさん :03/03/21 23:58
麻雀面白いな
893 :デフォルトの名無しさん :03/03/22 08:55
ネタ:ファイヤーウォール
楽勝だろ?
894 :デフォルトの名無しさん :03/03/22 13:22
>>893
HTTP proxy なら過去にあったが、任意のポートとなるとまだないね。

ファイルからIPアドレス変換とか許可ポートを取得して、
それにしたがってNATをかますとか(NAPTは無理だろう)。
895 :デフォルトの名無しさん :03/03/24 20:12
ネタ:ぬるぽ
896 :デフォルトの名無しさん :03/03/24 20:35
>>895
ネタ:ガッ
897 :デフォルトの名無しさん :03/03/24 21:26
int main(int argc,char **argv){*argv=NULL;}//ぬるぽ
898 :デフォルトの名無しさん :03/03/25 22:37
>>897
int main(int argc,char **argv){return (int)*argv[argc];}
のほうが、コンパイル時にエラーが出ず、コード中にNULLがなく、
それでいて確実にNULL参照するのでいいのでは? どうでもいいが。。
899 :デフォルトの名無しさん :03/03/26 01:28
本当にどうでもいいな。
900 :デフォルトの名無しさん :03/03/26 01:53

どうでもいいけど900get
901 :デフォルトの名無しさん :03/03/26 04:21
>>900
どうでもよくない
902 :デフォルトの名無しさん :03/03/27 00:28

てつでもいいけど902get
903 :デフォルトの名無しさん :03/03/27 16:35
>>902
意味がない
904 :デフォルトの名無しさん :03/03/27 20:34
ねた:ボンバーマソ
905 : ◆Bpod9Etbmc :03/03/27 23:43
Brainf*ck
/*---------------------------------------------------------------------------*/
#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;}
/*---------------------------------------------------------------------------*/
906 :デフォルトの名無しさん :03/03/27 23:49
>>905
本家に3行インタプリタがあったはずだが。
907 : ◆Bpod9Etbmc :03/03/28 02:44
リベンジ。
エラーチェックを外し、全体的にリファイン+いい加減化。
入力文字列をファイルの中身から 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);}
908 :デフォルトの名無しさん :03/04/07 20:11
そろそろ次スレの時期か?
909 :デフォルトの名無しさん :03/04/07 22:05
だいぶ古いネタだが1行にしろ。
Input: 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;
910 :デフォルトの名無しさん :03/04/10 04:30
さすがに一行は無理でしょう
911 :デフォルトの名無しさん :03/04/13 12:26
>>909
次スレ前に気合上げ
912 :デフォルトの名無しさん :03/04/13 19:34
次スレはまだいいでしょう。
あせらずに!
913 :山崎渉 :03/04/17 15:28
(^^)
914 :山崎渉 :03/04/20 04:30
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
915 :JPEG part 1 :03/04/22 23:24
#include <math.h>
typedef 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)
916 :part 2 :03/04/22 23:24
{s++;c=(c<<1)|gi(1);while(h->s[k]==s){if(h->c[k]==c)return h->v[k];k++;}}return
-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]
917 :part 3(最後) :03/04/22 23:25
=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;}}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;}}}

で、終わり
918 :915-917 :03/04/23 00:09
あ、使い方説明忘れてた
fp = fopen("hoge.jpg","rb");してから
init();decode( rgb );で、24bit RGBが出てきます
919 :デフォルトの名無しさん :03/04/23 00:24
長いのキター
これを7行に・・・出来るわけ無いか(´Д`)
920 :デフォルトの名無しさん :03/04/23 01:08
>>919
諦めたらそこで終わりだ。明らめようじゃないか!
921 :デフォルトの名無しさん :03/04/23 01:56
変数宣言だけで7行近くあるな…
922 :915 :03/04/23 20:27
駄コードでスマン
923 :デフォルトの名無しさん :03/04/24 00:32
地道にやればいつかは…

関数 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;
924 :デフォルトの名無しさん :03/04/24 02:14
以前どっかで書かれてたが、7行プログラムを多段接続するアプローチはどうか?
925 :デフォルトの名無しさん :03/04/25 22:21
がんばって〜
926 :デフォルトの名無しさん :03/04/25 22:26
ハフマンとか分離したらー
927 :デフォルトの名無しさん :03/04/26 00:15
10行くらい減らせた〜、あと10行くらいは行ける。
でも、それでも40行くらいあるぞ〜 ・・・
928 :デフォルトの名無しさん :03/04/26 00:28
m_yuv って未使用だね?
929 :デフォルトの名無しさん :03/04/26 10:34
君たちさぁ、そうやって外人のパクってばっかりいるから馬鹿にされちゃうんだよ
930 :915 :03/04/26 23:36
>>927 すごいっス
>>928
あ、未使用ですね。
気づかなかった(汗
931 :デフォルトの名無しさん :03/04/27 07:37
30行くらいになたよ。25行くらいになったら一度うpしてみるね。
932 :デフォルトの名無しさん :03/04/27 16:32
n_qt も未使用だ...
m_yuv と n_qt って、使わなくてもいいの?
933 :915 :03/04/27 17:32
>>932 m_yuvは、縮める前のライブラリでは使ってました
n_qtは一応用意してるだけだと思った(エラー検出用かも
934 :デフォルトの名無しさん :03/04/28 00:03
そろそろ歴代ベスト3の7行プログラムを投票汁!
935 :デフォルトの名無しさん :03/04/28 00:14
なかなか参考になったり役立つプログラムがあったりして諜報してます。
ありがとう。>ALL
936 :デフォルトの名無しさん :03/04/28 00:14
s/諜報/重宝/
デシタ
937 :デフォルトの名無しさん :03/04/28 21:38
>>934
オセロ・圧縮・手とリス
938 :1 :03/04/28 23:16
>>915 を、ppm 形式で出力するようにしました。標準入出力です。
jpeg2ppm.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());
939 :2 :03/04/28 23:16
return;}for(;v-->0;)for(j=g(i=0)&7;m==27&i<y;qt[j][i++]=g())v--;}}}}main(Q){n()
;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++]);}
940 :デフォルトの名無しさん :03/04/29 01:39
>>934
1:オセロ
2:砂嵐
3:テトリス
941 :デフォルトの名無しさん :03/04/29 01:51
lispとかBASICとか、どうなったんだっけ?7行到達ならそれらが一番かな
あとはカラースネーク
942 :デフォルトの名無しさん :03/04/29 01:59
>>938-939
YCbCr変換に感動

>>934
1:オセロ
2:BASIC
3:ハフマン
943 :デフォルトの名無しさん :03/04/29 02:07
1:オセロ
2:BASIC
3:マインスイーパー

オセロは完成度の他にも、俺を含む幾多の職人をこのスレに呼び寄せた点がでかい。
BASICは純粋に驚いた。
マインスイーパーは、最後の7行化が目から鱗だったからよく覚えている。
944 :デフォルトの名無しさん :03/04/29 02:48
絶対無理だろうという雰囲気を見事打ち消してくれる作品が好きだ。
このJPEG変換が7行になったら1位をあげたい。が、今のところ、
1:レンジコーダー(part1の)
2:オセロ
3:SHA1
次点:テトリス
945 :デフォルトの名無しさん :03/04/29 10:15
次スレ作るのやめないか……?
946 :デフォルトの名無しさん :03/04/29 10:36
個人的に好きなやつ

1:オセロ              …… MSX-FANの1画面プログラムを思い出した
2:さいたまベンチ         …… ワラタ
3:BrainFuckインタープリタ   …… 職人さんありがとう
947 :デフォルトの名無しさん :03/04/29 13:25

 や め な い か ?
948 :デフォルトの名無しさん :03/04/29 13:28
1、オセロ
2、BASIC

は硬いな。

3、はHuffmanか、RangeCoderか…、テトリスか…

悩む。
949 :デフォルトの名無しさん :03/04/29 13:57
オセロは衝撃的だったので1番。
basicもかなりgoodで2番。
3番…huffmanは自分でも出来たから…RangeCoderかな

テトリスを入れる余地が無いのが残念だ。
950 :デフォルトの名無しさん :03/04/29 15:37
7行スレらしく、歴代ベスト7を決めればいいんだよ。
そうすればテトリスの入る余地だってあるし。
951 :デフォルトの名無しさん :03/04/29 16:17
じゃあBEST7行-!(7行達成してなくてもいいよな?
1:オセロ
2:BASIC
3:ハフマン
4:lisp
5:grep
6:テトリス
7:HTTPd
0:part2 581
952 :デフォルトの名無しさん :03/04/29 17:43
>>951
7行達成していないのはダメでしょう
953 :デフォルトの名無しさん :03/04/29 19:48
>>950
次スレよろ
954 :デフォルトの名無しさん :03/04/29 20:34
>>945と同様、次スレいらないんじゃないかと思うのだが
955 :デフォルトの名無しさん :03/04/29 21:03
理由もなく何をのうのうと・・・
956 :デフォルトの名無しさん :03/04/29 21:05
七行にこだわることはないと思う。
目安だったけど。
957 :デフォルトの名無しさん :03/04/29 21:08
七行にこだわらずして、何が「七行プログラミング」なのだと。
958 :デフォルトの名無しさん :03/04/29 21:11
>>955
パート2のラスト、パート3の最初を見るとなぁ
最近のネタ切れも含めて、過去の栄光を…と思った
959 :デフォルトの名無しさん :03/04/29 21:16
じゃあ、「七行スレを懐かしむ」スレをたてて
960 :デフォルトの名無しさん :03/04/29 22:21
>>959
ワラタ、それいいな
なんなら立てようか?
961 :デフォルトの名無しさん :03/04/30 05:28
じゃ、6行スレ立てますね
962 :デフォルトの名無しさん :03/04/30 15:09
そのベスト3、もっかい晒せや。漏れがさらに短くしてやっから。
963 :デフォルトの名無しさん :03/04/30 20:29
>>962
お題がなければ何もできない厨房ハケーソ
964 :デフォルトの名無しさん :03/04/30 20:49
http://pc2.2ch.net/test/read.cgi/tech/1051703369/l50
965 :デフォルトの名無しさん :03/05/01 01:14
>>962
そのベスト3じゃなくて悪いんだが、これを7行にして く れ な い か ?

#include <stdio.h>
int main (void) { printf ("hell world!\n"); return 0; }
966 :デフォルトの名無しさん :03/05/01 01:19
#include <stdio.h>
int main (void) { printf ("hell"
" "
"wo"
"rld"
"!\n");
return
0; }

...駄目でした...
967 :デフォルトの名無しさん :03/05/01 07:53
>>965
P a r t 1 の >>3 を 見 れ 。
968 :デフォルトの名無しさん :03/05/03 13:02
誰だよ、先走って次スレ作った奴は(w
969 :デフォルトの名無しさん :03/05/04 08:09
まだ生きてた
970 :デフォルトの名無しさん :03/05/05 22:30
七行プログラミング part4
http://pc2.2ch.net/test/read.cgi/tech/1051703369/
971 :デフォルトの名無しさん :03/05/12 23:07
埋め立て代わりに。
jpeg2pgm.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=
972 :続き :03/05/12 23:08
c>>9,j=c/y%8,k[c]=cos(c/8%8*i*.4)*cos(c%8*j*.4)/(i*j?4:i|j?6:8);n();printf("P5"
" %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++]);}
973 :part3 の作品一覧 :03/05/25 00:23
7行達成したもの

画像ビューア >>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
974 :part3 の作品一覧 :03/05/25 00:23
EUC/SJISと改行 >>513
○×ゲーム >>527 >>529
囲碁 >>530
Brainfuck >>542-543 >>553 >>905-907 C言語変換 >>557-560
コッホ曲線 >>549-551
2ch符号 >>566
あっけない幕切れ >>578 >>584 >>587
ド肝を抜く >>588 >>591
ポートスキャナ >>634
LZW? >>723
975 :part3 の作品一覧 :03/05/25 00:24
reflexive符号 >>727
円周率 >>731 ん? >>738
ソース2HTML >>752-788 >>829-832>>814 >>825-830 >>833
自己表示 >>791>>805
ブラックジャック >>812>>816
逃げる >>817
5-7行クエスト >>866-868
976 :part3 の作品一覧 :03/05/25 00:33
未達成もの

grep >>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
977 :山崎渉 :03/05/28 13:09
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
978 :デフォルトの名無しさん :03/06/16 21:35
なんとなく移植途中だった>>504のさいたまベンチを完成。今更なのでここで。

Mac版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じゃ動かないと思う。
プロトタイプが中途半端なのはご愛嬌。
979 :デフォルトの名無しさん :03/07/01 21:14
既に現スレで7行逝ってるのでこちらにひっそりup

/* 多少だが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("");}
980 :デフォルトの名無しさん :03/07/10 08:56
このスレまだ生きてる?
981 :805 :03/07/10 09:02
>>805 を自分でコピーしてみると、連続する空白が
つながってしまってエラーになってしまうことが判明。
もう一度書き直しました。文字数を変えないようにすれば、
最後の文字列中のコメント部分は何書いても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&#X<#qr#p$$dE##$##$#$L%)$#o%%)$#MF##$#B$#qJ%)$#o%%)$$<l##$%)$%*$%)$#o%%)"+
"$%+o%)$#o%%)$%wn%)$#V$#W$~~/*_____________Save_me_as_'S.java'____________*/";}

982 :805 :03/07/10 10:01
かつあげ。
983 :デフォルトの名無しさん :03/07/10 10:15
>>982
次スレ立ってるんだから、あげるなよ・・・

[Home]