七行プログラミング p ..
142:デフォルトの名無しさん
06/11/28 00:09:31
辞書を外に持った簡易日本語IMEってのはどうだ?
143:デフォルトの名無しさん
06/11/28 00:11:24
>>142
データを外に持つのか。それはいいのか?
144:デフォルトの名無しさん
06/11/28 00:16:31
ダメだったら毎回辞書を標準入力から…
145:デフォルトの名無しさん
06/11/28 00:16:39
だめです
146:デフォルトの名無しさん
06/11/28 00:22:08
ネタとして楽しめるならなんでもいいよ。
評価は見てる人がそれぞれすれば良いんだから。
147:デフォルトの名無しさん
06/11/28 00:25:35
じゃー明日オセロ作るわ。
明日な、明日。
148:デフォルトの名無しさん
06/11/28 00:31:34
>>147
プログラム作ってる暇があったらちゃんとオナニーしろよな
149:デフォルトの名無しさん
06/11/28 00:33:27
>>148
校則で禁止されています。
150:デフォルトの名無しさん
06/11/28 01:25:21
破るためにあるんですよ。ナニとは言いませんが。
151:デフォルトの名無しさん
06/11/28 03:45:57
オナニーじゃ処女膜は破れない
152:デフォルトの名無しさん
06/11/28 04:00:38
処女がバイブ使うのは、推奨しない。
でも、たった7行で逝けるなんて感動。
153:デフォルトの名無しさん
06/11/28 07:54:50
今日はじめてみたけど楽しそうなスレだね。
初代のトリッキー1さんとかってまだ居るの?
5年前って凄いな。
154:デフォルトの名無しさん
06/11/28 08:06:29
7行printfは組込で実際に使った。便利だった。
155:デフォルトの名無しさん
06/11/29 03:25:04
そういや、VBScriptやJScriptってsprintf無いよね?
156:デフォルトの名無しさん
06/11/29 11:02:47
ないみたいだな。
URLリンク(www.google.com)
自前でいろいろ作ってる人はたくさんいるみたいだけど、
これを7行のプログラムにするのも楽しそうだなww
157:デフォルトの名無しさん
06/11/30 03:32:53
10進BASICで七行プログラミング
158:138
06/12/02 21:34:13
先輩!
COMとの対戦オセロ作ってるんですけど50行くらいあるんですよね。
月曜日まで待ってもらっていいですか?
159:デフォルトの名無しさん
06/12/02 22:01:46
よーし じゃあ父さんもなでしこで七行プログラミングしちゃうぞー
160:デフォルトの名無しさん
06/12/02 22:52:59
>>158
きたいあげ
161:138
06/12/04 12:06:28
今14行 あと7行……
162:デフォルトの名無しさん
06/12/04 13:22:05
COMとの対戦オセロなら、パート1でトリッキーの1さんが6行で作ってますね
163:デフォルトの名無しさん
06/12/04 14:07:25
>>162
だから?
164:デフォルトの名無しさん
06/12/04 14:13:19
>>163
せっかくオブラートに包んであげたのに…
既に素晴らしい作品があるから、二番煎じな上に14行なんて面白くもなんともない経過報告いらないですよ
165:デフォルトの名無しさん
06/12/04 14:49:11
>>164
(^ω^;)
最近7行のプログラム出てこないから書いてるだけなんだけど
面白くないと思うなら面白いものを提示してくれ
166:デフォルトの名無しさん
06/12/04 17:44:52
>>165
相殺法と呼ばれる詭弁術の典型例
やっていることがつまらないという評価に対してなんら反論できてない
167:デフォルトの名無しさん
06/12/04 18:02:36
ああ 他人が見ても面白くないのはわかるよ。
#include <stdio.h>
typedef int n;n t[64]={0};n a(n i,n&g){n s=g%8;g+=("1987"[i%4]-48)*(i>3?-1:1);
return !((!s||s==7)&&s+g%8==7);}n h(n x,n m){n i=0,r=1,g;if(t[x])return 1;for(
;i<8&&a(i,g);i++,g=x){for(;t[g]==3-m&&a(i,g)&&g>=0&&g<64;){if(t[g]==m){while(g
!=x)t[a((i+4)%8,g)]=m;r=0;}}}if(!r)printf("%s:%d %d\n",m==1?"黒":"白",x%8+1,x/
8+1);return r;}n d(){n s=0,d,i=0;for(;i<64;i++){printf("□\0○\0●"+(d=t[i])*3
);if(i%8==7)puts("");s=s?d&&s!=d?3:s:d;}return s!=3;}void main(){n x=1,y,p,m=0
,c=0,k=0,r=-1;t[35]=t[28]=1;t[27]=t[36]=2;while(!d()||x&&k!=r){puts("x y");
scanf("%d %d",&x,&y);m=m?m:x?1:2;if(x||--x>7||--y>7||h(x+y*8,m))continue;if(d(
))break;k=r=(c++/2+x*8+y)%64;while(++k!=r&&h(k,3-m))if(k>64)k=0;}x=y=c=0;for(;
c<64;c++)if(p=t[c])p==1?x++:y++;printf("黒:%d 白:%d %s",x,y,x>y?"黒の勝ち":x<y
?"白の勝ち":"引き分け");}
12行までいけたけどもうやめるわ。すまんかったな
168:デフォルトの名無しさん
06/12/04 18:13:07
>>167
関数使いすぎ。
グローバル変数は仕様上自動的にゼロに初期化される。
セミコロン多すぎ、結果if文増えすぎ。
for文やwhile文多すぎ。これらは工夫で1つか2つまで減らせるはず。
breakやcontinue使うとかありえない。最初から構造をもっと考えて設計するといいと思う
番兵使おう。
別のお題で再挑戦頑張れ
169:デフォルトの名無しさん
06/12/04 18:13:49
自分からネタも出せない批評家気取りのクズは死ねばいいのに
170:デフォルトの名無しさん
06/12/04 18:16:14
より完成度の高い対戦オセロがでてくる『可能性』の芽をつぶしたバカ晒し上げ
>162 >164 >166
171:デフォルトの名無しさん
06/12/04 18:22:01
>>168
じゃーお題出してくれ
172:デフォルトの名無しさん
06/12/04 18:24:04
実際過疎気味だしオセロとか低レベルなのでもいいと思うけどね
新しい7erが現れるかもしれんし
>>138=>>163=>>165=>>167
なら少しくらい煽り耐性つけろよと言いたいがな
173:デフォルトの名無しさん
06/12/04 18:40:07
よくわからないけれど ここは荒んでいますね よくわかります
174:デフォルトの名無しさん
06/12/04 18:45:31
うお バグりまくり
175:デフォルトの名無しさん
06/12/04 18:58:10
#include <stdio.h>
typedef int n;n t[64]={0};n a(n i,n&g){n s=g%8;g+=("1987"[i%4]-48)*(i>3?-1:1);
return !((!s||s==7)&&s+g%8==7);}n h(n x,n m){n i=0,r=1,g=x;if(t[x])return 1;
for(;i<8&&a(i,g);i++,g=x){for(;t[g]==3-m&&a(i,g)&&g>=0&&g<64;){if(t[g]==m){
while(g!=x)a((i+4)%8,g),t[g]=m;r=0;}}}if(!r)printf("%s:%d %d\n",m==1?"黒":"白"
,x%8+1,x/8+1);return r;}n d(){n s=0,d,i=0;for(;i<64;i++){printf("□\0○\0●"+(
d=t[i])*3);if(i%8==7)puts("");s=s?d&&s!=d?3:s:d;}return s!=3;}void main(){n x=
1,y,p,m=0,c=0,k=0,r=-1;t[35]=t[28]=1;t[27]=t[36]=2;while(!d()||x&&k!=r){puts(
"x y");scanf("%d %d",&x,&y);m=m?m:x?1:2;if(x&&(--x>7||--y>7||h(x+y*8,m)))
continue;if(d())break;k=r=(c++/2+x*8+y)%64;while(++k!=r&&h(k,3-m))if(k>64)k=0;
}x=y=c=0;for(;c<64;c++)if(p=t[c])p==1?x++:y++;printf("黒:%d 白:%d %s",x,y,x>y?
"黒の勝ち":x<y?"白の勝ち":"引き分け");}
176:デフォルトの名無しさん
06/12/04 19:12:59
低レベルなのを上げられるくらいならいなくなったほうが・・・
177:デフォルトの名無しさん
06/12/04 20:06:25
低レベルなのも上げられないやつがいなくなったほうが
178:デフォルトの名無しさん
06/12/04 20:18:21
低レベルから高レベルに育っていく過程を見てみたいので期待age
179:デフォルトの名無しさん
06/12/04 21:04:04
七行(C)の心得
・ローカル変数は敵だ
・セミコロンも敵だ
・っていうか括弧も敵だ
・参考演算子は神
もっとある?
180:デフォルトの名無しさん
06/12/04 21:04:45
まちがえた。
○三項演算子
×参考演算子
181:デフォルトの名無しさん
06/12/04 21:05:20
なでしこは敵だ
182:デフォルトの名無しさん
06/12/04 21:19:59
再帰は敗北
番兵は勝利
7行プログラムは作る前から7行(構想と構造が大事)
183:デフォルトの名無しさん
06/12/04 22:58:03
> 7行プログラムは作る前から7行
なんか良く分かんないけど感銘を受けた
184:デフォルトの名無しさん
06/12/04 23:04:01
>>183
俺もだ
なんかこう… 深いよな
185:デフォルトの名無しさん
06/12/04 23:08:11
!「nakonet.nako」を取り込む。サーバーとはTCPサーバー。そのポートは80。サーバーを開始。
サーバーの受信した時は〜
サーバーの受信データを「 」で区切る。ファイル名はそれ[1]の「/」を「」に置換したもの。
もし、ファイル名が空ならば、ファイル名は「index.html」。
もし、ファイル名が存在するならば、ファイル名を開く。違えば、それは「なし」。
内容は「HTTP/1.0 200 OK{改行}Content-Type: text/html{改行}{改行}{それ}」。(サーバーの相手IP)へ(内容)をサーバーで送信。
サーバーの送信完了した時は〜サーバーの相手IPをサーバーが切断。
(^o^)ノ<HTTPサーバーできたぞー
186:デフォルトの名無しさん
06/12/04 23:14:16
>>185
7行なのはいいとして桁数オーバーしてないか?
187:デフォルトの名無しさん
06/12/04 23:17:53
>>186
(^o^)ノ<こっちだったぞー
!「nakonet.nako」を取り込む。
サーバーとはTCPサーバー。そのポートは80。サーバーを開始。
サーバーの受信した時は〜サーバーの受信データを「 」で区切る。ファイル名はそれ[1]の「/」を「」に置換したもの。
もし、ファイル名が空ならば、ファイル名は「index.html」。
もし、ファイル名が存在するならば、ファイル名を開く。違えば、それは「なし」。
内容は「HTTP/1.0 200 OK{改行}Content-Type: text/html{改行}{改行}{それ}」。(サーバーの相手IP)へ(内容)をサーバーで送信。
サーバーの送信完了した時は〜サーバーの相手IPをサーバーが切断。
188:デフォルトの名無しさん
06/12/04 23:24:39
しかも、HTTPサーバって過去スレにあったよな
189:デフォルトの名無しさん
06/12/04 23:28:45
>>187
これがなでしこってやつなの?
>>188
だから(ry
190:デフォルトの名無しさん
06/12/04 23:37:33
既に誰かが解いたことのあるパズルってだけでやる気無くすのか?
そんなこたぁ無いだろー。
しかし、なでしこは初見だが、結構日本語風なんだな。びっくりした。
191:デフォルトの名無しさん
06/12/04 23:41:13
「メールホストを入力してください」と尋ねて、メールホストに代入。「メール差出人を入力してください」と尋ねて、メール差出人に代入。
「メール宛先を入力してください」と尋ねて、メール宛先に代入。「メール件名を入力してください」と尋ねて、メール件名に代入。
「メール本文を入力してください」で、メモ記入して、メール本文に代入。「いままでの内容が気に入らなければ、{改行}取消ボタンを押してください」を、「続行{改行}取消」のボタン選択。
もし、それが「続行」ならば、「メールホスト:{A}{改行}メール差出人:{B}{改行}メール宛先:{C}
メール件名:{D}{改行}メール本文:{E}{改行}{改行}送信します。」と言う。違えば、終了。
メール送信。「送信が終わりました」と言う。終了。
(^o^)ノ<最低限機能メール送信ソフトだぞー
192:デフォルトの名無しさん
06/12/04 23:42:04
^^;
193:デフォルトの名無しさん
06/12/04 23:51:40
利用リストとはリスト。その幅は400。退避ボタンとはボタン。退避リストとはリスト。その幅は400。利用ボタンとはボタン。更新処理。
●更新処理({=""}Fを{=""}Aから{=""}Bへ)
もし、F≠空ならば、「{A}{F}」から「{B}{F}」へファイル移動。
利用リストのアイテムは「{SENDTOパス}*」をファイル列挙。退避リストのアイテムは「{SENDTOパス}退避\*」をファイル列挙。
退避ボタンをクリックした時は〜
「{SENDTOパス}退避\」へフォルダ作成。利用リストをSENDTOパスから「{SENDTOパス}退避\」へ更新処理。
利用ボタンをクリックした時は〜退避リストを「{SENDTOパス}退避\」からSENDTOパスへ更新処理。
(^o^)ノ<Windows送るメニューカスタマイズソフトだぞー
194:デフォルトの名無しさん
06/12/04 23:55:47
とても読みやすいんだけど、書きにくくないか?
195:デフォルトの名無しさん
06/12/04 23:59:24
なでしこは案外作り易そうだな
標準で使えるライブラリのサポートが多いせいもありそうだけど
1文字(2Byte)辺りの表現力が高いお陰なのかな
196:デフォルトの名無しさん
06/12/04 23:59:39
俺はCとか英語で書くの本格的にやったこと無いから、そっちの方が異次元だ
なでしこなら
「Hello,World!」を表示。
の一行だぜ
197:デフォルトの名無しさん
06/12/05 00:00:19
なでしこなんか貼るな、空気嫁
198:デフォルトの名無しさん
06/12/05 00:01:33
なでしこの中の人すげーな
>>197
おまえが空気読め
199:デフォルトの名無しさん
06/12/05 00:03:38
というか、連投されると有り難みが薄れるぜ
でもせっかくだから、作り易いなら正規表現辺りにチャレンジして欲しい
200:デフォルトの名無しさん
06/12/05 00:04:43
どうかんがえてもなでしこの方が空気読めてません。
201:デフォルトの名無しさん
06/12/05 00:06:06
なでしこの欠点は速度とか云々よりも”日本語”だから駄目だと言われた。
日本語らしさを追求するばかり、機械的な書き方が出来なくなる、と
しかし二重インタプリタという感じで、メモリも速度も重いんだぜ
202:デフォルトの名無しさん
06/12/05 00:11:12
C/C++得意な人に聞きたいんだけど
&&の代わりに&を使うテクニックがあったよね
どういうときに使えるか覚えている人いる?
ぐぐり辛い…
203:デフォルトの名無しさん
06/12/05 00:12:28
>>201
なでしこってインタプリタなの?( ゚д゚)
204:デフォルトの名無しさん
06/12/05 00:15:28
はいそうです
205:デフォルトの名無しさん
06/12/05 00:17:12
>>202
&&は前の式がtrueなら後ろの式が評価されないけど&は評価される
ただ&は演算結果がboolean値ではないので思わぬ結果を巻き起こしやすいので
&&から&に変える場合には最新の注意が必要
206:デフォルトの名無しさん
06/12/05 00:18:12
>>202 ビット積演算子
207:デフォルトの名無しさん
06/12/05 00:19:23
>>202
なんか作成中なのか?
208:デフォルトの名無しさん
06/12/05 00:29:40
>>205-206
さんくす
結構限定的っぽいですねえ
>>207
いや…自分はまだそんなレベルじゃないです
過去の作品とか見ながら文字数の減らし方とか考えていてふと思ったので…
でも何か出来たら持ってきます
209:デフォルトの名無しさん
06/12/05 00:45:21
||の代わりに|なら比較的ありがちなテクニック。
あと&&の代わりに*もありがち。ただこっちはオーバフローの危険あり
210:デフォルトの名無しさん
06/12/05 02:06:55
なでしこかよww ぱっと見て「なに構想語ってんの?」とか思ってしまった
211:デフォルトの名無しさん
06/12/05 06:36:36
まあまあ
7行なら良いじゃない
なでしこはその前身のひまわりより
書きにくいとも聞くがどうなんだろ
212:デフォルトの名無しさん
06/12/05 07:08:06
特に変わらないと思う
なでしこの処理速度はひまわりの十倍です
213:デフォルトの名無しさん
06/12/05 07:37:08
なでしこ面白いね
ただ七行にするためのテクニックを駆使するものではなさそうだけど
214:デフォルトの名無しさん
06/12/05 09:38:44
なでしこいいけど、1行80文字くらいは守ってもらおう
215:デフォルトの名無しさん
06/12/05 10:12:36
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
216:デフォルトの名無しさん
06/12/05 10:34:18
>>215
一見ただの荒らしに見えるが、「なでしこ」という文字の中にひとつだけ
違うものが混じっている。探してみよう!
m9(^Д^)
217:デフォルトの名無しさん
06/12/05 12:01:37
随分ノリノリだな
218:デフォルトの名無しさん
06/12/05 17:45:46
TTSneoのことも思い出してあげて下さい
219:デフォルトの名無しさん
06/12/05 21:33:18
なにそれ?
220:デフォルトの名無しさん
06/12/05 21:41:03
なでしこのようなものです
221:デフォルトの名出しこさん
06/12/05 23:46:00
なでしこでインデント禁止だと辛いです。この間、テトリス作って15行でした。
>>191の真似してメール送信フォームです。
S="メールホストvメール差出人vメール宛先vメール件名vメール本文";C=~もし回数=5ならメール送信;終
S=(Sをvで区切)を全角変換;文字サイズ=16;反復,対象を9,回数*36-24へ文字表示;
ダイアログ数値変換=0;155,10へ移動;4回,E\回数をエディタとして作成;E[回数]→W=400
E\5をメモとして作成;E\5→W=400;E\5→H=230;母艦のタイトル="メール送信";送信とはボタン
その位置="560,365";そのクリック時=~Sで反復,EVAL(対象&「=E[{回数}]→テキスト」),C
222:デフォルトの名無しさん
06/12/06 03:47:10
>221
暗号臭くなって来て良い感じw
223:デフォルトの名無しさん
06/12/06 09:46:20
>>221
イイヨイイヨー
224:デフォルトの名無しさん
06/12/06 15:44:47
1行目の「終」はなでしこならではだね
ホントは「終わり」だったと思うけど
なでしこは漢字+送り仮名の命令に対して
助詞以外の送り仮名は飛ばす
Mindとかでもそうなってるハズ
225:デフォルトの名無しさん
06/12/13 08:49:50
>>221
ちょっとなでしこに興味湧いた
226:デフォルトの名無しさん
06/12/19 00:19:30
com2textを半角カナバージョンで、
ファイル指定は8.3形式で、
ゴミがつくのは仕様で、
実行は自己責任で。
H72タPQSVWP[Pクツツ0G=0GAs2A0GN1GP0GY0G[0Gg0Gl0Gv1Gy3ノア0T_)マ)マWセSテ、Iu>%
@3ロKCuフXセ}テ_="@3タャ,&|9uナ_^[Y3タテHP[アトャ<。xタ,0,0ムロムミェ<ノu,)ラ#
Oコ1ス60ニX@ス50ニ@Xスp01?Q1テ30シp0Jソp0ク@ル5キWuヒシ06Nニ@uフi[mコ4スウ06ニ@セ50コ*Oシ30スD51ニ@rタj
(UソD1[[2_Iノシ300Iタカネフネ+ヘNSl12WH2HオTj(ラネヘネヘpYチCコ1ニ@I_シ30カu_ネコ1ニ@T4jロVjシコ[1ス60ニ@
_ス50ニ@セ450ユウスC?0コ1ニ@コ-Oニ@コ1ス460ニ@ス550ニ@ニ@TXKIタXXY1[[X]Xシ?チチHSNH>SPiIPH4SWHSXH
BS\HS]H2ScHSfHdSkHSlIZトクHZ_DVヌDヌ[ソYTチイTjOB`65PIヘUJQjニ\ソnNチ_NAPIGタカFCnL^jツ__]\
LIタチTX]8クツカNーlGタFHFHネJヘネネオNトdjFDヒA6'5B0000'000000&
227:デフォルトの名無しさん
06/12/19 01:57:17
バイナリは誰かがためしてからじゃないと怖くて実行出来ないです><
228:デフォルトの名無しさん
06/12/19 02:20:51
誰かが試しても実行できないけど、自分自身をcom2textしているのはわかった。
行末の改行そのままでいいの?
229:デフォルトの名無しさん
06/12/19 12:45:39
>>228
やってみた。
・行末の改行はCRLFを残す
・>>226の行末についてしまっている空白は取り除く
・JIS X0201
で。
コード表眺めて気がついたけどNOP使えないから小賢しい技はちょっと使いづらいね。
230:226
06/12/20 00:14:09
行末の空白をひとつだけ無視できるように。
ファイルにリダイレクトした時そのまま使えるように。
変な事してるっぽいけど気にしない。
H72タPQSVWP[Pクツツ0G;0G?s1KA0GP1GR0G[0G]0Gi0Gn0Gz3ノア0T_)マ)マWセTテ、Iu>5
4@3ロCAKuフXセ}テ_="54@ャ,&|9uナ_^[Y3タテHP[アトャ<。xタ,0,0ムロムミェIu-tル######Xスp01?Q1テ30シp0
Jソp0ク@ル5キWuヒシ06Nニ@uフi[gコ4スァ0.ニ@セ10コ*Oシ30ス951ニ@rタj(Uソ91[[2_Iノシ300Iタカネフネ+ヘNSl12
WH2HオTj(ラネヘネヘpYチCコ1ニ@I_シ30カu_ネコ1ニ@T4jロVjシコ[1ス60ニ@_ス50ニ@セ450ユウスC?0コ1ニ@コ5Oニ@ニ@T
XKIタXXY1[[X]Xシ?チチHSMHfSOiHUPAHSXHSY]HS]HS^=HSdHSgaHSmIトクcHZ_DヌD:ヌ[ソZチイBTjOJ65
cJPIヘQPJUjニ\ソn>チ_NAJJGPカFCnL^jツ__]\LIタチTX]8クツカNーlGタFHFHネZヘネネオTjdFjフAAA.AAAB00&
231:デフォルトの名無しさん
06/12/20 00:55:25
>>230
カタカナ無しは無理かな?int 21hのどこかが必ずカタカナに抵触しそうかな。
確かCD 21だったよね
232:デフォルトの名無しさん
06/12/20 22:17:27
変換効率が3/2とかなら簡単だろうけど、4/3だと難しそう。
intよりもmovやシフトが使えないのが痛い
233:デフォルトの名無しさん
07/01/02 01:21:25
07年age
234:デフォルトの名無しさん
07/01/18 18:49:08
保守がてら
参考リンク
URLリンク(www.4dm.org)
7行ネタが思い付かない人は、PKUに挑戦してみるのだ
235:デフォルトの名無しさん
07/01/19 00:32:26
>>234
面白いものつくってなーw
236:デフォルトの名無しさん
07/01/19 05:22:24
アセンブラ用に使えるニモニックの一覧表ってどこにあるんだっけ
237:デフォルトの名無しさん
07/01/19 10:43:21
>>236
石は……?
238:デフォルトの名無しさん
07/01/19 11:34:14
適当なバイナリ作って逆汗
239:デフォルトの名無しさん
07/01/19 16:33:39
>>236
アセンブラのソースコードでも読めば。
240:デフォルトの名無しさん
07/01/22 21:26:35
>>234
A+B Problemからわからんorz
241:デフォルトの名無しさん
07/01/23 19:04:29
>>240
問題のヒントに答えが書いてありますがな
242:240
07/01/23 19:43:36
>>241
さすがに答えはわかるwそうじゃなくて、どうやって短く書いてんのかがさっぱりわからんってこと。
243:デフォルトの名無しさん
07/01/23 19:52:47
>>242
参考程度に昔自分が書いてたコード
main(n){gets(&n);putchar(n%85+5);}
これはAとBの合計が10未満で、
入力の1Byte目がA,2byte目が空白,3byte目がB,4byte目が改行|EOFのときだけ動く。
今はテストケースが改善されて10以上もあるから通らないけどな。
244:デフォルトの名無しさん
07/01/24 19:14:12
C#でブロックソート書いてみた。
using System;using System.Collections.Generic;namespace BWT{public static
class BlockSort{public static int Sort(ref byte[]data){int l=data.Length,i=1,j
;byte[][]t=new byte[l][];t[0]=data;for(;i<l;i++){t[i]=new byte[l];for(j=1;j<l;
j++){t[i][j]=t[i-1][j-1];}t[i][0]=t[i-1][l-1];}Array.Sort<byte[]>(t,new Comp()
);i=Array.IndexOf<byte[]>(t,data);for(j=0;j<l;j++){data[j]=t[j][l-1];}return i
;}}class Comp:IComparer<byte[]>{public int Compare(byte[]x,byte[]y){int r=0,l=
x.Length,i=0;for(;i<l;i++){r=(int)(x[i]-y[i]);if(r!=0)i+=l;}return r;}}}
ジャグ配列のソートを自前で実装するのは行数的に厳しいです orz
修行が足りません。
245:244
07/01/24 19:41:10
同じくソート解除
using System;using System.Collections.Generic;namespace DBWT{struct DE{public
DE(int i,byte d){Ind=i;Data = d;}public int Ind;public byte Data;}public
static class DeBlockSort{public static void Restoration(int ind,ref byte[]data
){int i,l=data.Length;DE[] de=new DE[l];for(i=0;i<l;i++){de[i]=new DE(i,data[i
]);}Array.Sort<DE>(de,new Comp());for(i=0;i<l;i++){data[i]=de[ind].Data;ind=
de[ind].Ind;}}}class Comp:IComparer<DE>{public int Compare(DE x,DE y){if(x
.Data != y.Data){return(int)(x.Data-y.Data);}else{return x.Ind-y.Ind;}}}}
やっぱりまだまだです orz
246:デフォルトの名無しさん
07/01/24 20:24:34
perl -e "for(;;){print eval<STDIN>}"
インタラクティブパールできたよー
247:デフォルトの名無しさん
07/01/24 20:31:50
引数何も無しでおkだから、さ
248:デフォルトの名無しさん
07/01/24 21:10:17
perl -pe '$_=eval$_'
これで十分だろと
249:デフォルトの名無しさん
07/01/24 21:12:09
それは長すぎ。
perl -pe "$_=eval($_)"
で十分。
250:249
07/01/24 21:13:27
被った上に()の分負けてるー
orz
251:デフォルトの名無しさん
07/01/25 02:49:12
perl -pe 'eval$_'
でいいんじゃない?
252:デフォルトの名無しさん
07/01/25 11:45:00
これって標準入力を評価して標準出力に出力するってこと?
具体的にどういう使い方があるの?
253:デフォルトの名無しさん
07/01/25 13:43:07
irb のように使う?
254:デフォルトの名無しさん
07/01/25 23:44:26
電卓がわりとかじゃね?
255:デフォルトの名無しさん
07/01/26 00:44:33
あなたの実家に腐ったイカを送りましたよ
256:デフォルトの名無しさん
07/01/26 19:59:39
ある変数が マイナスだったら-1、プラスだったら1 に変換するCの式
if( a<0 ){
a=-1;
}else if( a>0 ){
a=1;
}else{
a=0;
}
を、なんか格好よく書くには どんな本を読んで勉強するべきでしょうか?
257:デフォルトの名無しさん
07/01/26 20:12:38
>>256
(a>0)-(a<0)
(a>=0)-(a<=0)
(a>>31)|((unsigned)-x>>31) (算術シフト前提)
258:デフォルトの名無しさん
07/01/26 20:19:16
まず中1の数学の教科書だと思う。
a = a ? -1 * ( a / a ) : a;
259:デフォルトの名無しさん
07/01/26 20:22:10
あ、ちがった。ゴメン。
a = a > 0 ? 1 : ( a < 0 ? -1 : 0 );
とか。
260:256
07/01/26 21:08:24
>>258
ヒントありがとう
a = (a>0)-(a<0);
までがんばれたっぽい。
261:デフォルトの名無しさん
07/01/27 00:10:37
>>260 >>257の一番上
262:デフォルトの名無しさん
07/01/27 01:55:23
もうすこし短くならない?
263:デフォルトの名無しさん
07/01/27 01:56:35
そういう関数があったと思ったが・・・
264:デフォルトの名無しさん
07/01/27 01:58:51
これ以上はむりじゃね?
265:デフォルトの名無しさん
07/01/27 06:43:02
>>179の心得に従ってみた
a=a>0?1:-!!a
266:デフォルトの名無しさん
07/01/27 10:13:35
>>183に従え
267:デフォルトの名無しさん
07/01/27 14:25:48
>>265
スパシーバ
268:デフォルトの名無しさん
07/01/27 16:11:59
>>265
:-!!
監禁されてガムテープで口縛られてるみたいだぞ
269:デフォルトの名無しさん
07/01/27 16:43:12
a=a>0||-!!a;
↑ってどう?
270:デフォルトの名無しさん
07/01/27 17:35:56
a=5のときどうなる?
271:デフォルトの名無しさん
07/01/27 17:44:36
>>269
正しく動かない。
main(){
int a = -5;
a=a>0||-!!a;
assert(a==-1);
return 0;
}
272:デフォルトの名無しさん
07/01/27 17:54:52
あ、そっか0か1にしかなんねーじゃん
273:デフォルトの名無しさん
07/01/27 18:04:00
まだそんなこと言ってるの?
アホが1匹まじってますよ〜
274:デフォルトの名無しさん
07/01/27 18:09:37
短い順
a=a>0?1:-!!a; //13
a=(a>0)-(a<0); //14
a=a>=0+(a>0)-1; //15
a=(a>=0)-(a<=0); //16
a=a>0?1:a<0?-1:0; //17
275:デフォルトの名無しさん
07/01/27 18:11:14
>>274
3つ目はカッコないとだめだろ
a=(a>=0)+(a>0)-1; //17
276:デフォルトの名無しさん
07/01/27 18:13:46
a>0が真のとき値は必ず-1になるんですか?
277:デフォルトの名無しさん
07/01/27 18:16:09
間違えた
1desu
278:デフォルトの名無しさん
07/01/27 21:01:51
環境によるんじゃないかなぁ、実のところ。
279:デフォルトの名無しさん
07/01/27 23:27:29
今までの作品見てて思ったんだが、音物ってまだでてないね。
やっぱりヘッダだけでもかなり文字数食うのかな。
280:デフォルトの名無しさん
07/01/27 23:37:20
>>279
1行食うからな…
でもwindows.hだけでbeep音は鳴らせるよな?
281:デフォルトの名無しさん
07/01/28 00:09:18
10 BEEP
282:デフォルトの名無しさん
07/01/28 00:25:02
>>279
昔のMSXとかBASIC見たいにMML鳴らせればねえ
283:デフォルトの名無しさん
07/01/28 00:58:37
10 PLAY ALLOC 0: PLAY "CDEFG"
284:デフォルトの名無しさん
07/01/28 02:23:05
cygwinとかbsd系でdsp使える環境
#include <sys/ioctl.h>
#include <fcntl.h>
int main(void){int rfd,dfd;char buf[1024];rfd=open("/dev/random",O_RDONLY);dfd=
open("/dev/dsp",O_WRONLY);while(1){read(rfd,buf,1024);write(dfd,buf,1024);}}
音なるよ
285:デフォルトの名無しさん
07/01/28 02:42:59
それで4行なら7行で方形波生成+メロディ位いけるんじゃないか?
286:デフォルトの名無しさん
07/01/28 02:48:27
>>284
read, write未定義って言われる・・・
287:デフォルトの名無しさん
07/01/28 02:50:37
cygwinいれんのマンドクセ
会社行ったらやってみよ
288:デフォルトの名無しさん
07/01/28 02:51:01
#include <unistd.h>
か、
すげーーーーー音なった!!
289:デフォルトの名無しさん
07/01/28 02:52:09
ちなみに、cygwinです。
290:デフォルトの名無しさん
07/01/28 02:54:11
ちなみにどんな音がなるんだ?
291:デフォルトの名無しさん
07/01/28 02:56:16
いや、ノイズだよ。
ザーって。
292:デフォルトの名無しさん
07/01/28 02:56:56
/dev/random辺りから察して砂嵐だろう
293:デフォルトの名無しさん
07/01/28 02:57:52
ボリュームに気をつけたほうがいい。いつもので行ったら死にそうになった。
294:デフォルトの名無しさん
07/01/28 02:58:00
なんだ
ランダムだからどんなんかな〜と思ったけど、一音そんなに短いのか
295:284
07/01/28 02:58:13
>>288 thx
>>290 /dev/randomから読み取ってdspに直書きしてるだけだから>>291です
単一の音色のソフトシンセくらいなら作れる可能性があるね7行で
296:デフォルトの名無しさん
07/01/28 02:59:21
/dev/dspってすげーな。
> cat /cygdrive/c/WINDOWS/Media/tada.wav > /dev/dsp
普通にwav鳴らせるんだ・・・
297:デフォルトの名無しさん
07/01/28 03:00:55
こんな時間に人が沸いてきた方が驚きなんだけど。仕事中か?
298:デフォルトの名無しさん
07/01/28 03:00:59
ああ、>>ちなみにcygwinのコマンドラインで
cat /dev/random > /dev/dsp
などとしても音なるよ
同じことです
299:デフォルトの名無しさん
07/01/28 03:03:29
>>296
んだんだ
cygwinのdspさんはwaveファイルも使えるんだ
あとioctl()とか使ってサンプリングレートとかチャンネル数とか変えれるから、
ちょっと気張ればネット越しに音鳴らすサウンドサーバが出来る
mixingも自力で頑張ればウハウハ
コード自体はfreebsdでも動くから、bsd機をpxebootで起動させればHDDいらずで(ry
300:デフォルトの名無しさん
07/01/28 03:36:23
#include <windows.h>
int d[]={659,195,2,739,184,2,783,164,4,739,220,2,659,220,2,622,246,4,659,220,2,
739,220,2,493,195,4,554,184,2,622,184,2,659,164,4,587,184,2,523,184,2,493,195,4
,440,220,2,391,220,2,361,246,4,391,220,2,440,220,2,493,195,2,440,195,2,391,246,
2,361,246,2,329,164,2,329,184,2,659,195,2,739,184,2,783,164,4,739,220,2,659,220
,2,622,246,4,659,220,2,739,220,2,493,195,4,554,184,2,622,184,2,659,164,4,587,1\
84,2,523,184,2,493,195,4,440,220,2,391,220,2,369,293,6,391,293,2,391,195,8};vo\
id b(int x,int y, int z){if(y){for(int i=0;i<z/50;++i){Beep(x,25);Beep(y,25);}}
else{Beep(x,z);}Sleep(0);}int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){fo\
r(int i=0;i<sizeof(d);i+=3)b(d[i],d[i+1],d[i+2]*100);return 0;}
ノートが周波数そのままなので、七行超えてしまた。Beep()で音が鳴るPCでどうぞ。
Bio_100%の蟹味噌のインスパイアです。
301:デフォルトの名無しさん
07/01/28 03:53:05
>>300
すげー、ピコピコなってるよ・・・
かに味噌なつかしす( ´ー`)
302:300
07/01/28 04:30:09
#include <windows.h>
int d[]={659,195,2,739,184,2,783,164,4,739,220,2,659,220,2,622,246,4,659,220,2,
739,220,2,493,195,4,554,184,2,622,184,2,659,164,4,587,184,2,523,184,2,493,195,4
,440,220,2,391,220,2,361,246,4,391,220,2,440,220,2,493,195,2,440,195,2,391,246,
2,361,246,2,329,164,2,329,184,2,659,195,2,739,184,2,783,164,4,739,220,2,659,220
,2,622,246,4,659,220,2,739,220,2,493,195,4,554,184,2,622,184,2,659,164,4,587,1\
84,2,523,184,2,493,195,4,440,220,2,391,220,2,369,293,6,391,293,2,391,195,8};vo\
id b(int x,int y, int z){for(int i=0;i<z/50;++i){Beep(x,25);Beep(y,25);}}int W\
INAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){for(int i=0;i<sizeof(d)/sizeof(in\
t);i+=3)b(d[i],d[i+1],d[i+2]*100);return 0;}
酷いバグを直して19バイト削減。曲データ抜きなら4行だから、まぁアリってことにしてくださいm(__)m
303:300
07/01/28 04:53:31
あ、横が80文字になってるし。WinMainのintは省略できるし、b()なんて
関数化する必要ないし。漏れアホス、回線切って首吊ってきます
304:デフォルトの名無しさん
07/01/28 09:21:18
>>300の真似をしてみました。
VC8以外でコンパイルできるかは不明なり。
#include <windows.h>
char a[]="949=>9>>=;9848;>>=969444949=>9>>=;98468946899===;98989;<= ;;;;98643"
"134445454545656767878989:9:;<=>",b[]="94942929999;4;468222246894942929999;46"
"894449991335566116611; 113344 4445454;;;9998886664441111111",c[]="888888822"
"2288444444448448888888222288888422844@4444444444448844444444844@@@@422422422"
"4224224224444";int x[99],i,j=32;main(){float s=110;while(j<99)x[j++]=s*=1.05\
95;for(j=0;a[i];++i,j=0)while(j++<c[i]-48)Beep(x[a[i]],30),Beep(x[b[i]],30);}
305:デフォルトの名無しさん
07/01/28 09:31:50
げ、スペースが一箇所詰まってしまた。
#include <windows.h>
char a[]="949=>9>>=;9848;>>=969444949=>9>>=;98468946899===;98989;<= ;;;;98643"
"134445454545656767878989:9:;<=>",b[]="94942929999;4;468222246894942929999;46"
"894449991335566116611; 113344 4445454;;;9998886664441111111",c[]="888888822"
"2288444444448448888888222288888422844@4444444444448844444444844@@@@422422422"
"4224224224444";int x[99],i,j=32;main(){float s=110;while(j<99)x[j++]=s*=1.05\
95;for(j=0;a[i];++i,j=0)while(j++<c[i]-48)Beep(x[a[i]],30),Beep(x[b[i]],30);}
これでちゃんと鳴る……といいな。
306:デフォルトの名無しさん
07/01/28 09:39:48
>>296
ワロス
知らんかった
307:デフォルトの名無しさん
07/01/28 09:57:20
>>305
鳴ったよー。gcc cygwin で確認
308:279
07/01/28 10:24:12
言った本人が何もしないのもあれなので作ってみたが、
レベル高すぎて投下する気なくす…orz
309:デフォルトの名無しさん
07/01/28 10:38:30
>>305
すげーww
なんかめちゃくちゃなつかしい
310:デフォルトの名無しさん
07/01/28 11:42:10
>>305
bcc5.5だと
1.05\
95;
の部分がエラーになったんだけど、直したら聞けました。つーかすげーこれww
311:デフォルトの名無しさん
07/01/28 12:04:42
#include <unistd.h>
#include <fcntl.h>
char a[]="949=>9>>=;9848;>>=969444949=>9>>=;98468946899===;98989;<= ;;;;98643"
"134445454545656767878989:9:;<=>",b[]="94942929999;4;468222246894942929999;46"
"894449991335566116611; 113344 4445454;;;9998886664441111111",c[]="888888822"
"2288444444448448888888222288888422844@4444444444448844444444844@@@@422422422"
"4224224224444";int x[99],d,i,j=32,k=8000,l=8;m(a,b,s){char r[4096];s*=2;a=k/a
;b=k/b;for(j=s;j--;)r[j]=(!(j%a)+!(j%b))*32;write(d,r,s);}main(){float s=1\
10;while(j<99) x[j++]=s*=1.0595;d=open("/dev/dsp",2);for(i=0;a[i];m(x[a\[i]],\
x[b[i]],30*c[i]-48),++i);}
>>305
がんばったけど、7行に出来ない(orz
とりあえず音はなるけど、和音とかしらんので鳴るだけでいいと思ってる (´・ω・` ス
312:デフォルトの名無しさん
07/01/28 12:12:40
>>311
#include <unistd.h>
#include <fcntl.h>
char a[]="949=>9>>=;9848;>>=969444949=>9>>=;98468946899===;98989;<= ;;;;98643"
"134445454545656767878989:9:;<=>",b[]="94942929999;4;468222246894942929999;46"
"894449991335566116611; 113344 4445454;;;9998886664441111111",c[]="888888822"
"2288444444448448888888222288888422844@4444444444448844444444844@@@@422422422"
"4224224224444";int x[99],d,i,j=32,k=8000,l=8;m(a,b,s){char r[4096];s*=2;a=k/a
;b=k/b;for(j=s;j--;)r[j]=(!(j%a)+!(j%b))*32;write(d,r,s);}main(){float s=110;
while(j<99) x[j++]=s*=1.0595;d=open("/dev/dsp",2);for(i=0;a[i];m(x[a[i]],x[b[\
i]],30*c[i]-48),++i);}
こうだな
313:デフォルトの名無しさん
07/01/28 12:18:47
#include <unistd.h>
#include <fcntl.h>
char a[]="949=>9>>=;9848;>>=969444949=>9>>=;98468946899===;98989;<= ;;;;98643"
"134445454545656767878989:9:;<=>",b[]="94942929999;4;468222246894942929999;46"
"894449991335566116611; 113344 4445454;;;9998886664441111111",c[]="888888822"
"2288444444448448888888222288888422844@4444444444448844444444844@@@@422422422"
"4224224224444";int x[99],d,i,j=32,k=8000,l=8;m(a,b,s){char r[4096];for(j=s;j\
--;)r[j]=(!(j%a)+!(j%b))*32;write(d,r,s);}main(){float s=110;while(j<99) x[j+\
+]=k/(s*=1.0595);d=open("/dev/dsp",2);for(i=0;a[i];m(x[a[i]],x[b[i]],60*c[i]-
96),++i);}
>>312もうちょっと
後はデータをファイルに持たせるとか…か
314:デフォルトの名無しさん
07/01/28 12:21:34
>>311-313
dsp1.cpp:7: error: expected constructor, destructor, or type conversion before '(' token
dsp1.cpp:7: error: expected `,' or `;' before '(' token
dsp1.cpp: In function `int main()':
dsp1.cpp:7: warning: converting to `int' from `float'
dsp1.cpp:10: error: `m' undeclared (first use this function)
dsp1.cpp:10: error: (Each undeclared identifier is reported only once for each function it appears in.)
dsp1.cpp:10:11: warning: no newline at end of file
って、出る('A`)
315:デフォルトの名無しさん
07/01/28 12:25:41
m(a,b,s){
多分、この書き方なんですけど、これってCでいいんですか?
316:デフォルトの名無しさん
07/01/28 12:31:09
>>284に戻るけど…
using System;using System.IO;class Program{static void Main(string[]args){try{
int i=int.Parse(args[1]);byte[]h=new byte[]{82,73,70,70,36,0,(byte)i,0,87,65,
86,69,102,109,116,32,16,0,0,0,1,0,1,0,68,172,0,0,68,172,0,0,1,0,8,0,100,97,116
,97,0,0,(byte)i,0};using(FileStream f=new FileStream(args[0],FileMode.Create))
{f.Write(h,0,44);h=new byte[i*65536];Random r=new Random(DateTime.Now.Second);
r.NextBytes(h);f.Write(h,0,i*65536);}}catch{Console.Write("Error");}}}
使い方:
hoge.exe savepath length
長さは(0〜255)*65536Bでつ。
317:デフォルトの名無しさん
07/01/28 12:56:06
>>302
require"base64";require'zlib';require"Win32API";$o=Win32API.new("kernel32","B\
eep",%w(i i),'v');def b(x,y,z)(0...z/50).map{$o.call x,25;$o.call y,25}end;b=
"eJybzHSYgYnhMdMOIMnPvISBBci+A2RPBpN5TN+AIhA2RPwt42GgiBZYfR6Y\nnMwE0uUNZnODSY\
iaHYwg9e1gMpMRZA6EDREHqQGxD4PVfIOqYWLwZFwCJiEm\n08NthYyqjGxAtiojSOQwAwcDAE8gP\
SA=\n";d=Zlib::Inflate.inflate(Base64.decode64(b)).unpack("S*");(0...d.size/3
).map{|i|i*=3;b d[i],d[i+1],d[i+2]*100}
ワーイ。rubyで、6行できたよー。
318:デフォルトの名無しさん
07/01/28 13:14:40
>>314
C++じゃなくてCで
>>315
暗黙に int とみなされる
319:デフォルトの名無しさん
07/01/28 13:38:54
>>318
なったよw
320:デフォルトの名無しさん
07/01/28 13:41:13
>>313
データをファイルに持たせるのはルール違反
321:デフォルトの名無しさん
07/01/28 13:54:52
beep ついてねーよヽ(`Д´)ノウワァァン
ということで cygwin 専用 beep エミュ。
音程が合わない時は BASE_FREQを適当に調整してください。
#include <windows.h>
#include <stdio.h>
#define BASE_FREQ8000
WINAPI BOOL Beep(DWORD freq, DWORD time){int t,tf,dt;static FILE *fp=0;if(!fp)
fp=fopen("/dev/dsp","wb");if(!freq||freq>BASE_FREQ/2)tf=0x7fffffff;else tf=
BASE_FREQ/2/freq;for(t=0;t<time*BASE_FREQ/1000;t++){dt=((t/tf))%2?127:0;fwrite
(&dt,1,1,fp);}fflush(fp);return TRUE;}
322:321
07/01/28 14:31:09
無駄が多すぎた。
#include <windows.h>
#include <stdio.h>
FILE *p;WINAPI BOOL Beep(DWORD f, DWORD m){int B=4000,t=0,g,d;p=p?p:fopen("/de"
"v/dsp","wb");g=!f||f>B?(1<<31)-1:B/f;for(;t<m*B/500;t++){d=t/g%2?127:0;fwrite(
&d,1,1,p);}fflush(p);return TRUE;}
323:デフォルトの名無しさん
07/01/28 16:23:05
Cの&& ||ってショートサーキット評価だっけ?
324:デフォルトの名無しさん
07/01/28 16:26:07
そうだぜ
325:デフォルトの名無しさん
07/01/28 16:32:51
thx
もう少し縮められそうだ
326:305
07/01/28 16:54:21
おー、なんか皆がんばっとる!('ω`*)
徹夜して作った甲斐がありました!
327:デフォルトの名無しさん
07/01/28 17:24:11
標準入力からMMLを読んでビープで再生する
A-G: 音符; R: 休符 (数値を後置して長さ, ドットを後置して付点)
Tn: Tempo; Ln: Length
On: Octave (n=0-7); >: Octave+; <: Octave-
#include <stdio.h>
#include <windows.h>
int r,c,d,n,j,a,o=4,l=4,t=120,f[84],g[]={0,2,3,5,7,8,10};w(a){ungetc(a,stdin);
}y(){return getchar();}float s=27.5;q(int*p){for(r=0;'0'<=(d=y())&&d<='9';)r=r
*10+d-'0';w(d);r?*p=r:0;}main(){for(;j<84;j++,s*=1.0595)f[j]=s;while((c=y())!=
EOF)c+=c<'a'||'z'<c?0:'A'-'a','A'<=c&&c<'H'||c=='R'?c-'R'?a=g[c-'A']+12*o,(d=y
())=='+'||d=='#'?a+=a!=83:d=='-'?a-=!!a:w(d):0,n=l,q(&n),j=120000*((d=y())-'.'
?w(d),2:3)/t/n,c-'R'?Beep(f[a],j):Sleep(j):c=='L'?q(&l):c=='O'?q(&o),o=o>7?7:o
:c=='T'?q(&t):c=='>'?o+=o!=7:c=='<'?o-=!!o:0;}//9行47桁
俺の力ではこれ以上短くできない…orz
328:デフォルトの名無しさん
07/01/28 17:35:05
あら。一行78文字になってた
#include <stdio.h>
#include <windows.h>
int r,c,d,n,j,a,o=4,l=4,t=120,f[84],g[]={0,2,3,5,7,8,10};w(a){ungetc(a,stdin);}
y(){return getchar();}float s=27.5;q(int*p){for(r=0;'0'<=(d=y())&&d<='9';)r=r*\
10+d-'0';w(d);r?*p=r:0;}main(){for(;j<84;j++,s*=1.0595)f[j]=s;while((c=y())!=E\
OF)c+=c<'a'||'z'<c?0:'A'-'a','A'<=c&&c<'H'||c=='R'?c-'R'?a=g[c-'A']+12*o,(d=y()
)=='+'||d=='#'?a+=a!=83:d=='-'?a-=!!a:w(d):0,n=l,q(&n),j=120000*((d=y())-'.'?w(
d),2:3)/t/n,c-'R'?Beep(f[a],j):Sleep(j):c=='L'?q(&l):c=='O'?q(&o),o=o>7?7:o:c==
'T'?q(&t):c=='>'?o+=o!=7:c=='<'?o-=!!o:0;}
329:デフォルトの名無しさん
07/01/28 17:56:04
ソース解読するための
整形ツールって無いですか?
330:デフォルトの名無しさん
07/01/28 17:56:22
時代が20年くらい巻き戻ったな、このスレ
331:デフォルトの名無しさん
07/01/28 17:56:33
GNU Indentは?
332:デフォルトの名無しさん
07/01/28 18:31:01
>>331
いけました。サンクス
333:デフォルトの名無しさん
07/01/28 21:03:16
>>329
過去スレに7行のもあった希ガス
334:デフォルトの名無しさん
07/01/28 22:42:27
'A' とかは数字の即値で書いたほうが短そう
335:デフォルトの名無しさん
07/01/28 22:48:24
>>284
BSD系って君が言ったから
OSXは、/dev/dspねぇ。。
336:デフォルトの名無しさん
07/01/28 22:50:04
>>334
上でも出てるがそりゃ邪道だ
337:デフォルトの名無しさん
07/01/28 23:04:34
>>335
多分あるよ。
FreeBSD5のカーネル付近から/dev/以下は自動的に作られるから。
ls -l /dev/dsp ってやってみて
それでもnot foundならkldload snd_driverでカーネルにサウンドドライバロードさせてみて
で、 ls -l /dev/dsp
338:デフォルトの名無しさん
07/01/28 23:19:02
>>336
そんなん言ったら数字とか英字の判断は、
C的にはisdigitとかisalphaを使うべきとこだよ。
>'0'<=(d=y())&&d<='9';
isdigit(d=y());
こっちのほうが圧倒的に短いし。
339:デフォルトの名無しさん
07/01/28 23:23:16
#includeディレクティブが一行食うから
よほど文字種判別ばかりやってるコード
じゃないと短くはならんでしょ
340:デフォルトの名無しさん
07/01/28 23:30:01
>>338
テレックスで用いられるようなアルファベットが連続していない文字コードを考慮すると
'A'<=c&&c<'H'||c=='R'
は
'A'==c||'B'==c||'C'==c||'D'==c||'E'==c||'F'==c||'G'==c||'R'==c
ないし
!('A'-c||'B'-c||'C'-c||'D'-c||'E'-c||'F'-c||'G'-c||'R'-c)
と書かないといけないのか。
流石にこのスレ的にはつらいな
341:デフォルトの名無しさん
07/01/28 23:31:26
!('A'-c&&'B'-c&&'C'-c&&'D'-c&&'E'-c&&'F'-c&&'G'-c&&'R'-c) だた
342:デフォルトの名無しさん
07/01/28 23:58:46
>>339
うちの環境だと #include<stdio.h> すれば問題なかった……っていうと、
これも邪道かなー。正しくは #include<ctype.h> だし。
どのみち環境に対して何の仮定もおかないで書くのはつらい。
mainでreturnしないのも本来問題あるわけだし。
まー、最終的には個人の裁量だから、この話題はヤメにしよう。宗教論争になりそうだ。
343:デフォルトの名無しさん
07/01/29 00:15:11
print"第一数字(半角数字で入力してください):";i=gets.to_i;print"第二数字(半角数\
字で入力してください):";j=gets.to_i;puts"\n足し算:%g + %g = %g"%[i,j,i+j],"引\
き算:%g - %g = %g"%[i,j,i-j],"掛け算:%g * %g = %g"%[i,j,i*j],"べき算:%g の %g\
乗 = %g"%[i,j,i**j]
ワーイ、rubyで4行、け言語できたよー。
344:デフォルトの名無しさん
07/01/29 03:05:51
>>343
毛言語とはまた怪訝な言語じゃの
345:デフォルトの名無しさん
07/01/29 13:22:28
めそ
346:デフォルトの名無しさん
07/01/29 13:39:59
モキュ
347:デフォルトの名無しさん
07/01/30 08:57:38
和音に挑戦しようと思ったんじゃが
乗り遅れたか
348:デフォルトの名無しさん
07/01/30 11:13:16
キー押して音鳴らすようなの作れそうじゃね?
349:デフォルトの名無しさん
07/01/30 22:38:47
今更ながら>>305に感動
350:305
07/02/01 01:13:43
本体部分を50バイト削減ー。
でもデータ作成に挫折った。キリのいいところまで入らない。
#include <windows.h>
char a[]=" 747:7:@:@C@AC@ACCCCCC<7<7HFHLOMLJLMLHJCJCJLMOQOMLMOTOMHHLMOOHJLMOQ"
"QTSQOOOOONMMMLLLJHGEGEC",b[]=" 747747:7:@:>@:>@>7542<7<7<<77<77>>>77>7>>77>>"
">77<<<777<7<<7:77755<<<55789:;<=>?@ABCCC>>>7",c[]="1822822822222222<<6666666"
"62442642222426624422224222222266426622242642422222222222222222228";float f(i)
{return i?f(i-1)*1.0595:55;}main(i,t){for(i=t=0;c[i]&&(t--||(t=c[++i]-*c));Be\
ep(f(b[i]-*b),40))Beep(f(a[i]-*a),40);}
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5325日前に更新/140 KB
担当:undef