- 1 名前:まだ初心者なの [02/06/27 02:02 ID:HvMYma0g]
- 比較的規模の小さい
ゲームやアルゴリズムをUPしたり 語り合ったりするスレッドです。 勉強用ですので、言語の選択についてや ゲームが面白いかどうかの議論は禁止の方向で。 UPする方は使用言語を明記してください。 どうか盛り上がってください。おながいします。おながいします。
- 129 名前:>>128 mailto:sage [02/07/18 16:25 ID:???]
- いろいろと入力してみたけどコンピューターで
計算できる形になってるみたいだしいいんじゃない? ソースについてのコメントは控える。(w
- 130 名前:名前は開発中のものです。 [02/07/18 21:01 ID:eG1jD3wM]
- merosuke.tripod.co.jp/project1.zip
- 131 名前:名前は開発中のものです。 mailto:まだ初心者なの [02/07/18 21:29 ID:???]
- >>129
コメントありがとうございます。少しだけ自信がつきました… 今のところはバグが見当たらないので 逆ポーランド記法の式を計算する関数も作ってみました。 入力された式を逆ポーランド記法に変換して表示し、計算結果も表示されます。 C言語です。 ソース www.geocities.co.jp/SiliconValley-Cupertino/8770/calculation.txt 実行ファイル www.geocities.co.jp/SiliconValley-Cupertino/8770/calculation.zip 動作などに関する意見や質問があったらよろしくお願いします。
- 132 名前:名前は開発中のものです。 mailto:まだ初心者なのsage [02/07/18 21:32 ID:???]
- >>130
落としてみたのですが、エラーが出て実行できませんでした。 あと、何かを貼り付ける時は簡単なコメント・説明を添えるように してください…おねがいします。
- 133 名前:名前は開発中のものです。 [02/07/18 23:33 ID:KrSipdXM]
- ちょっとソースが汚いかも。
GetPriorityOperator関数でcase文使っているけど、この使い方だったら、 if文使った方がまとまると思うよ。あと、再起してる関数じゃないなら、 部分部分にreturn入れないで、retとかいう変数つくって、 そこに戻り値入れて最後に返してやるようにする。 int GetPriorityOperator(char op) { int ret = 0; if(op == '*') ret = 10; else if(op == '/') ret = 10; else if(op == '+') ret = 8; else if(op == '-') ret = 8; else if(op == '\0') ret = 0; else if(op == ')') {printf(")"); ret = 0;} else printf("GetPriorityOperator(char op); 不正な引数\n"); return ret; }
- 134 名前:名前は開発中のものです。 mailto:sage [02/07/18 23:37 ID:???]
- 生成されるコードを考えると、そこのソースは元のままでいい。
出来れば、defaultは除去してその前の段階でキャラクタ検査をした方が良い。
- 135 名前:名前は開発中のものです。 mailto:まだ初心者なのsage [02/07/19 08:47 ID:???]
- >>133-134
レスありがとうございます。 まずは、見やすいプログラムを書くように心がけます。 僕は、まだ生成されるコードの効率とかを 考えるレベルには至っていないのかもしれません… 効率について検索してみたのですが、 >switchは if - elseif …のチェイン(cmp xx jz xx ...)に展開されることもしばしばで、 >こんなものになってしまったらジャンプテーブルに比べて圧倒的に速度が低がするのは想像に硬くありません。 >例えば、switch文の最後に > default: > __assume(0); // (VCの拡張機能、ここに来ることは有り得ないと言う事) >等としてやるとVCに於いてはほぼ確実にジャンプテーブルに展開されるようになります(なるそうです…)。 というのがありました。
- 136 名前:名前は開発中のものです。 mailto:sage [02/07/19 09:45 ID:???]
- というか、生成されるコードならテーブルに展開するのが一番速いけどな
- 137 名前:名前は開発中のものです。 mailto:sage [02/07/20 14:19 ID:???]
- C言語。オセロ。某所より。見て氏ね。
#include <stdio.h> int*i,p,t,a,d,v,m[91]={-10,-9,-8,-1,1,8,9,10},s;void k(){if(m[p]==0)for(i=m;*i ;i++){for(v=p+*i;m[v]==9-t;v+=*i);if(v-p-*i&&m[v]==t&&(s=a=v=p,d))do m[v]=t,v +=*i;while(m[v]-t);}}main(){for(m[40]=m[50]=s=t=3,m[41]=m[49]=6;s-1;a=d=0){for (p=8;++p<82;printf("・\0○\0●\0\n"+m[p]))p%9?k():m[p]=9;for(a?d=a=p=9:s?s=0, puts("pass"):s++;a==9;k())t-6?scanf("%d%d",&p,&v),p+=v*9:++p;t=9-t;}return 0;}
- 138 名前:名前は開発中のものです。 mailto:sage [02/07/20 20:43 ID:???]
- >>137
すごいですね。 俺が授業で書いたオセロは200行ちょい。 このプログラムを改行とかしたら40行弱。 ・・・あと4年間で何とかしないとな。
- 139 名前:名前は開発中のものです。 mailto:sage [02/07/20 23:29 ID:???]
- つーか、このオセロはかなり上級者の書いた物だろ
7行スレでも有名な人が書いた物。
- 140 名前:名前は開発中のものです。 [02/07/21 00:04 ID:VfOHqT.A]
- 言語の仕様を熟知していれば
ある程度は可能だと思うが。 別にレベルがどうこうじゃないような。 >>137みたいなのはオジさん同士で見せ合うのは たのしいんだけど、若い人は興味無いんじゃないか? 基本的に「実用テクニック」にはなり得ないから。
- 141 名前:名前は開発中のものです。 mailto:sage [02/07/21 00:12 ID:???]
- >>140
勝手に言ってくれるなー 俺もいいかげんおじさんなのか。
- 142 名前:名前は開発中のものです。 mailto:sage [02/07/21 00:26 ID:???]
- sou desu YO!
- 143 名前:名前は開発中のものです。 mailto:sage [02/07/21 00:34 ID:???]
- あのオセロは割り切り方が凄いんだよ。
実装範囲を選んで、機能を限定してそれ専用にチューニングしてる。 こういうことは結構重要で、出来ない奴は結局ここの技術にこだわりすぎて 全体的に効率悪い物しか作れない。 小手先のテクニックも使ってるけど、それだけだと思ったら大間違いだよ。
- 144 名前:名前は開発中のものです。 mailto:sage [02/07/21 00:37 ID:???]
- >>142
10代でおじさんと言われるとは思わなかったYO!
- 145 名前:140 mailto:sage [02/07/21 00:42 ID:???]
- >141=138か?
>137のは実行してないからよく分からんが オセロを満たすのに必要最低限のことしかやってないだろ。多分。 そんなのに興味を持つくらいなら思考ルーチンのひとつやふたつ を作ってみた方がいいですよ。何年かやってれば自然に出来るようになるし。 駆け出しのうちは手に届くものを優先。 >>143 まあ、これが出来なければあれが出来ない、みたいな話は止めましょうや。
- 146 名前:名前は開発中のものです。 mailto:sage [02/07/21 00:50 ID:???]
- >>145 >141=138か?
違う >のは実行してないからよく分からんが 実行しろよタコ 何もしないで人のプログラムを語るな。 PC対戦付きだボケ
- 147 名前:名前は開発中のものです。 mailto:sage [02/07/21 00:58 ID:???]
- 140は、「あんなの凄くねぇ。俺のほうが凄いYO!」って自慢したいだけなんだから、そっとしとこうや。
- 148 名前:140 mailto:sage [02/07/21 09:20 ID:???]
- >PC対戦付きだボケ
その位は見ただけで分かるよ。 でも、どの程度のチェック漏れがあるのかは分からない。 相変わらず実行はしていないから分からないが おそらく比較的、遭遇頻度の低いバグは無視しているのだろう。 七行スレって言うくらいだからそんなことを言うのは野暮なんだろうが。 トイプログラムとして見れば面白いし、レベルも高いと思う。 煽る人が居るし、これで最後にする。
- 149 名前:名前は開発中のものです。 mailto:sage [02/07/21 09:58 ID:???]
- まぁ、なんつーか、思考ルーチンなんて何年やっても自然に出来るもんじゃないよな
簡単な(要するにテキトーな)思考ルーチンや単なる総当たりなら出来るかも知れないが、 有名なαβ法なんかは自然に思いつくたぐいの物でもないしな。 理論的な思考ルーチンなんかはひとつやふたつなんて言うほど簡単に作れるもんでもない。
- 150 名前:名前は開発中のものです。 mailto:sage [02/07/21 12:28 ID:???]
- 口を動かすくらいなら手を…ってことじゃないか?
若い人って”出来ないからやらない”じゃん。それはイクナイ。
- 151 名前:138 mailto:age [02/07/26 03:09 ID:???]
- >>145
オセロの思考は趣味のほうで作りましたね。 自分よりは強いけど、どの程度かは分かりませんです。 まだ137のプログラムが読める程度なので4年後が心配だったけど、 上級者と知って少し安心です。 でもプロのレベルがいまいち分からないからやっぱりかなり不安・・・。 学生に>>137を見てほしいからage
- 152 名前:名前は開発中のものです。 mailto:sage [02/07/26 08:43 ID:???]
- >>140
むしろ若い人ほど7行でどんなことができるかとか燃えそうな気がするなぁ 64kメガデモみたいなもんですかな
- 153 名前:おもしろいものが mailto:とても [02/08/12 16:52 ID:???]
- 見たいのでage。
- 154 名前:名前は開発中のものです。 mailto:sage [02/08/12 17:27 ID:???]
- 見たい見たいと騒ぐだけで何も作らないクレクレ厨が発生したので sage。
- 155 名前:名前は開発中のものです。 mailto:sage [02/09/02 20:54 ID:???]
- >>149
普通のオセロは通常読みと必勝読みと完全読みの3ルーチン持ってると思う
- 156 名前:名前は開発中のものです。 mailto:質問age [02/10/13 14:20 ID:???]
- >>131のアルゴリズムって
あれで正しいのですか? 実行してみたんですけどちゃんと動いるみたいでした。 今までノベルゲームくらいしか作ったことが無く こういうプログラムやったこと無いので興味を持ちました。
- 157 名前:名前は開発中のものです。 mailto:sage [02/10/13 15:59 ID:???]
- RPG風ダンジョン。DOS/Win用。2468で移動、数字なのが敵、
たおしてくと階段 '/' がでてきて、接触で次フロアへ。終わりはq。 int m[9801],X,Y,a,b,i,j,k,l=99,U[99],V[99],W[99],g,h;E(x,y){for(k=1;k<99;++k)if (U[k]==x&&V[k]==y&&W[k])return k;return 0;}D(){printf("\n%dHP M=%d %dF\n",l,g,h );for(j=-3,i=0;i<49;++i){a=X+j;b=Y+i/7-3;putchar(i==24?64:E(a,b)?W[E(a,b)]+48:G (a,b));j=i%7<6?j+1:(putchar(10),-3);}}G(x,y){if(E(x,y))return (l-=W[E(x,y)])<=0 ?exit(puts("YOU LOST\n")):0,--W[E(x,y)]?0:++g,(m[R(49)*2+R(49)*198+g%2*198]=47) ,35;return x<0||x>98||y<0||y>98?35:m[x+y*99];}R(n){return rand()%n;}N(){++h;g=0 ;for(i=0;i<99;++i){U[i]=R(99)*2,V[i]=R(99)*2,W[i]=R(8)+1,m[R(49)*2+R(49)*198+i% 2*198]=35;for(j=0;j<99;++j)m[i+j*99]=(i%2+j%2)>1?R(4)<3?35:46:46;}}M(x,y){i=x+X ;j=y+Y;G(i,j)==47?N():G(i,j)==35?0:(X=i,Y=j);}main(){N();for(;;){D();k=getch(); k==56?M(0,-1):k==54?M(1,0):k==52?M(-1,0):k==50?M(0,1):k==113?exit(0):0;}}
- 158 名前:名前は開発中のものです。 mailto:sage [02/10/13 23:40 ID:???]
- >>157
マップ広すぎ。 あと、視野(見える範囲)はもっと広くていいと思うぞ。
- 159 名前:( ○ ´ ー ` ○ ) [02/10/14 13:41 ID:oQUDul00]
- ちょっと太っちゃった…
- 160 名前:名前は開発中のものです。 mailto:sage [02/10/14 14:11 ID:???]
- ( ○ ´ ー ` ○ )
- 161 名前:名前は開発中のものです。 [02/12/20 00:56 ID:TnNLuwnN]
- ざっと読んでみたんですが少し勉強になりました。
期待ageさせて下さい!
- 162 名前:名前は開発中のものです。 mailto:sage [02/12/20 01:27 ID:hsTe63tg]
- <
< 終 了ーーーーーーーーーーーーーーーー!!!! < ∨∨∨∨∨∨∨∨∨∨∨\ /∨∨∨∨∨∨∨∨∨∨ /:|. | | /:| / .:::| ∨ / :::| | ...:::::| / ::::| i  ̄ ̄⌒゙゙^――/ ::::::::| /_,,___ . _,,,,__,_ :::::::::::\ / ゙^\ヽ.. , /゙ ¨\,.-z ::::::::::\ 「 ● | 》 l| ● ゙》 ミ.. .::::::\ /i,. .,ノ .l| 《 ..|´_ilト ::::::::::\ / \___,,,,,_/ .'″ ^=u,,,,_ v/.. :::::::::::::l! |  ̄ ,,、 i し./::::::::.} | / ,,____ _,/ ̄ \ \ ノ ( ::::::::::| | |.. | /└└└└\../\ \ '~ヽ ::::::::::::::} | .∨.|llllllllllllllllllllllllllllllllllllllll| ::::::::::{ | |.|llllllllllll;/⌒/⌒ 〕 :::::::::::} | |.|lllllllll; ./ . . | ::::::::::[ .| |.|llllll|′ / . | .| :::::::::::| .| |.|llll| | .∧〔 / :::::::::::::/ / }.∧lll | ../ / / :::::::::::::::::\ / /| \┌┌┌┌┌/./ /::: :::::::::::::::::\ ( ゙゙^^¨^¨゙゙¨  ̄ ̄ ̄ /::::::::::: ::::::::::\ ヽー─¬ー〜ー――― :::::::::::::
- 163 名前:名前は開発中のものです。 mailto:age [03/09/15 23:31 ID:cjbTqAlp]
- age
- 164 名前:名前は開発中のものです。 [03/09/16 17:36 ID:rZAhYual]
- 探知キボーヌ
ネタ
- 165 名前:名前は開発中のものです。 mailto:sage [03/09/16 17:45 ID:EQhFXA4K]
- 空AGE やめーい!
- 166 名前:名前は開発中のものです。 mailto:sage [03/09/17 00:42 ID:/Dz3qKwA]
- このスレで聞くもんでもないと思うんだが、
sageててもIDが出る人と出ない人がいるのは何故?
- 167 名前:名前は開発中のものです。 [03/10/25 16:28 ID:w+myaAmJ]
- >>166
頭がいい人と悪い人の違い
- 168 名前:名前は開発中のものです。 [03/11/14 15:17 ID:4meSYN3s]
- >>131のソース
if(GetPriorityOperator(stack[stack_pos]) >= GetPriorityOperator(str[i])){ newstr.str[newstr_pos++] = stack[stack_pos--]; newstr.str[newstr_pos++] = ' '; }else if(GetPriorityOperator(stack[stack_pos]) < GetPriorityOperator(str[i])){ stack[++stack_pos] = str[i]; break; } プライオリティが等しいときも演算子スタックにつまなきゃだめじゃない? 上記だと計算結果はあうけど逆ポーランド法表記的にまずくない?
- 169 名前:名前は開発中のものです。 mailto:sage [04/08/01 21:49 ID:V3JnTtE5]
- >>157
うおお、初心者の俺からしてみればすごい・・・。 少し前に長方形領域の移動プログラム(ただ単に移動するだけ)つくってみたけど、 それなんか200行以上もあるよ・・・(>>157は見やすいように整えて60行ほど)。 まだまだだなぁ・・・。ってまだCの教科書を1冊も終わらせてないんだけどね。 ポインタの恐ろしさもまだぜんぜんわかんないし。
- 170 名前:169 mailto:sage [04/08/01 21:51 ID:V3JnTtE5]
- 解読しようと思っても今の俺の知識じゃ無理だな
- 171 名前:名前は開発中のものです。 [04/08/01 22:00 ID:V3JnTtE5]
- うわっ。過疎スレということに今気づいた。
age
- 172 名前:名前は開発中のものです。 [04/08/03 14:15 ID:pwgXpzV7]
- >>157のソースを
わかりやすく整形してみました。 do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=295 基本的にオリジナルアルゴリズムに忠実な形での整形ですが 以下の2点で手を加えています。 ・ワーニングを完全に排除するために メインループからのエスケープにgoto文を追加。 ・画面クリアのためのsystem("CLS")を追加。
- 173 名前:名前は開発中のものです。 [04/08/04 18:06 ID:2FqsG8xs]
- >>172
おつ!見やすい!役立たせていただきます!
- 174 名前:172 mailto:sage [04/08/04 19:12 ID:k/+0Z3FN]
- お。見てくれた人がいてヨカタ
ささ、愉快な短いプログラムきぼんぬ。 おいらが解読します。 >>137のオセロは遊び方がわからないので断念しました。
- 175 名前:名前は開発中のものです。 mailto:sage [04/08/04 19:40 ID:2FqsG8xs]
- 俺そんな人に見せるほどのものは作ってないなぁ。ごめん。
って別に俺に言ってるのかは知らんけど。
- 176 名前:172 mailto:sage [04/08/04 20:05 ID:k/+0Z3FN]
- いやぁもう誰でもおk
- 177 名前:名前は開発中のものです。 mailto:sage [04/08/05 01:04 ID:Ww4148ra]
- >>174
>>137のオセロソース、斜め読みしかしてないのでアレだけど 横1桁縦1桁の数字(46とか)で打つ場所を入れるんジャネーノ?
- 178 名前:172 mailto:sage [04/08/05 01:21 ID:yhEwSVU3]
- >>177
4[enter] 6[enter] で一手やね。 一応解析してみますかな。 Now Analyzing...
- 179 名前:172 [04/08/05 21:43 ID:muG+oZLA]
- >>137のオセロのソースを整形しました。
do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=299 解析は非常に難航してマヂで丸二日かかりました。 それだけにとても勉強になりました。 簡単なポインタの利用例や巧妙な配列の使い方など 参考になると思うので C言語勉強中の人は一読オススメしておきます。 ちょっと難しいソースだと思うのでコメント大量につけました。 うざい人は消して読んでね。 評価・探索アルゴリズムは読んでみた人だけのひみつ。
- 180 名前:172 mailto:sage [04/08/05 21:53 ID:muG+oZLA]
- ささ、次の7行プログラムをどなたかもってきてください。
当方CかJavaかJavaScriptしか読めまてん。 よろちくおながいします。
- 181 名前:名前は開発中のものです。 mailto:sage [04/08/06 14:59 ID:1oB+oDD2]
- 誰も貼り付けてくれないので
自分で探してたらこんなのみつけました。 7行スレその1 pc.2ch.net/test/read.cgi/tech/984182993/ 7行スレその2 pc.2ch.net/test/read.cgi/tech/1018840143/ 盛り上がっているのは俺だけなのか。。 過疎ってさみしい。
- 182 名前:名前は開発中のものです。 mailto:sage [2005/06/12(日) 11:06:16 ID:WhyZAEvM]
- ほ
- 183 名前:名前は開発中のものです。 mailto:sage [2005/11/18(金) 21:28:32 ID:aihTlFd4]
- キャベツage
- 184 名前:名前は開発中のものです。 mailto:age [2006/01/19(木) 22:48:13 ID:ggSypXg/]
- hosu
- 185 名前:名前は開発中のものです。 [2006/09/22(金) 08:30:34 ID:seYHxo/2]
- ハ,,ハ
( ゚∀゚) おいらをどこかのスレに送って! 〜(ouub お別れの時にはお土産を持たせてね! 現在の所持品:たばこ他48品圧縮.zip・どようび・ドエット 糞スレ・rigel・ギコペ・Jane・ニンバス2000
- 186 名前:アナルに宣戦布告 ◆3vv40OycRw mailto:sage [2007/11/24(土) 20:01:19 ID:w/0MHia8]
- 以下,このスレは私がもらいます.
- 187 名前:アナルに宣戦布告 ◆3vv40OycRw mailto:sage [2007/12/01(土) 01:35:19 ID:3UvlWnEW]
- 作成開始
- 188 名前:アナルに宣戦布告 ◆3vv40OycRw mailto:sage [2007/12/09(日) 23:24:48 ID:c4JBq/jx]
- 保守
- 189 名前:アナルに宣戦布告 ◆3vv40OycRw mailto:sage [2007/12/18(火) 22:40:24 ID:8S4bPrMv]
- 保守
- 190 名前:アナルに宣戦布告 ◆3vv40OycRw mailto:sage [2007/12/26(水) 19:57:32 ID:LLHH0wdN]
- 保守するよ
- 191 名前:名前は開発中のものです。 mailto:sage [2007/12/30(日) 15:21:17 ID:C1d66INg]
- ミ,,゚Д゚彡 < スレ落ちそうやで
- 192 名前:名前は開発中のものです。 [2007/12/30(日) 15:53:16 ID:zzg7G+NL]
- さらしあげ
- 193 名前:アナルに宣戦布告 ◆3vv40OycRw mailto:sage [2008/01/04(金) 23:34:15 ID:0nXTXUOb]
- 新年あけましておめでとうご保守
- 194 名前:アナルに宣戦布告 ◆3vv40OycRw mailto:sage [2008/01/11(金) 22:44:14 ID:dkwNUUFL]
- 保守,それはロマン
- 195 名前:アナルに宣戦布告 ◆3vv40OycRw mailto:sage [2008/01/19(土) 22:27:33 ID:9y0chWmO]
- 保守から始まる恋
- 196 名前:アナルに宣戦布告 ◆3vv40OycRw mailto:sage [2008/01/30(水) 00:18:13 ID:ZFo8EP1h]
- 保守の波動に目覚めたリュウ
- 197 名前:アナルに宣戦布告 ◆3vv40OycRw mailto:sage [2008/02/18(月) 05:45:17 ID:CBB5bNWD]
- もう保守以外愛せない
- 198 名前:アナルに宣戦布告 ◆3vv40OycRw mailto:sage [2008/03/05(水) 11:11:53 ID:bOacHgHM]
- きれいな保守してるだろ?
死んでるんだぜ
|

|