/* 簡単なプログラムをウプしよう */
■ このスレッドは過去ログ倉庫に格納されています
0001まだ初心者なの
02/06/27 02:02ID:HvMYma0gゲームやアルゴリズムをUPしたり
語り合ったりするスレッドです。
勉強用ですので、言語の選択についてや
ゲームが面白いかどうかの議論は禁止の方向で。
UPする方は使用言語を明記してください。
どうか盛り上がってください。おながいします。おながいします。
01013D太郎
02/07/12 23:11ID:0q0E/8gYcnt = checkEraseBlockの下に状態変化関数を入れ忘れておりました。
上記は妄想関数です。アルゴリズムだけでも伝わればと思ったのですが、
本末転倒しております。
いくつか落ちゲーに必要なアルゴリズムがそろったらきちんと
コーディングしたいと思っております。
0102名前は開発中のものです。
02/07/12 23:47ID:???だから、
> int cnt = checkEraseBlock( x, y, block[ x][ y].getColor());
> if( cnt > 4) EraseBlock( x, y, block[ x][ y].getColor());
をそれぞれ別のループの中で行えということ。
こんな風に。
for(...) { for (...) { block[x][y].setCnt(checkEraceBlock(x, y, ...)); } }
for(...) { for (...) { if (block[x][y].getCnt() >= 4) { block[x][y].setErace(); } } }
これだと前半のループが効率悪いから、>>97みたいなことをすると良い。
0103名前は開発中のものです。
02/07/13 01:01ID:.X0DkgxQ自分のものっけてみようかと。
分けわかんない型や関数があると思いますが、
そのへんは想像か、見なかったことにしてもらう方向で。
こんなもんのっけるんじゃねーって人は無視してください。
0104大学1年生
02/07/13 01:02ID:.X0DkgxQ自分のものっけてみようかと。
分けわかんない型や関数があると思いますが、
そのへんは想像か、見なかったことにしてもらう方向で。
こんなもんのっけるんじゃねーって人は無視してください。
0105大学1年生
02/07/13 01:03ID:.X0DkgxQ{
Sint32 point = 0;
Sint32 i, erasenum, eraseline = CGameInfo::GetInstance()->GetEraseLine();
Sint32 idxbox[SELLNUM];
for(i=0; i<SELLNUM; i++)
{
if(Table[i] != NULL)
{
Table[i]->SetSearchFlag(False);
Table[i]->SetEraseFlag(False);
}
}
0106大学1年生
02/07/13 01:04ID:.X0DkgxQ{
if(!Table[i]) continue;
erasenum = EraseSearch(i % RETU, i / RETU, Table[i]->GetElement(), 0, idxbox);
if(erasenum >= eraseline)
{
//#得点処理
point += erasenum * 10;
for(Sint32 j=0; j<erasenum; j++)
{
Table[idxbox[j]]->SetEraseFlag(True);
Table[idxbox[j]] = NULL;
//#消去処理
}
}
}
return point;
}
0107大学1年生
02/07/13 01:05ID:.X0DkgxQ{
Sint32 idx = y * RETU + x;
if(!Table[idx] || Table[idx]->GetSearchFlag() || Table[idx]->GetElement() != element)
return num;
Table[idx]->SetSearchFlag(True);
if(x < RETU - 1)
num = EraseSearch(x + 1, y, element, num, idxbox);
if(x > 0)
num = EraseSearch(x - 1, y, element, num, idxbox);
if(y < GYOU - 1)
num = EraseSearch(x, y + 1, element, num, idxbox);
if(y > 0)
num = EraseSearch(x, y - 1, element, num, idxbox);
idxbox[num] = idx;
return num + 1;
}
2重カキコすいませんでした。
0108名前は開発中のものです。
02/07/13 12:20ID:???書いてホスィね。作ろうとしているものがイマイチ分からんです。
もしくは、一部だけじゃなくて全部を上げるとか。もちろん動く形でね。
0109名前は開発中のものです。
02/07/13 20:17ID:???0110名前は開発中のものです。
02/07/13 20:40ID:???スタックとwhileでどうよ?
0111>>109
02/07/13 22:57ID:???struct group {
int _num, *num, color;
group(int c) { num = &_num; color = c; }
void link(group *g) { if (g != this) { int n = *num; num = g->num; *num += n; } }
} *block_g[6][6];
int block[6][6] = { {1, 1, 1, 4, 4, 0}, {1, 0, 1, 0, 4, 4}, {1, 1, 1, 2, 2, 4}, {0, 3, 3, 0, 2, 2}, {3, 3, 1, 2, 2, 4}, {3, 1, 1, 1, 0, 4} };
void erace() {
std::list<group*> glist;
for (int i = 0; i < 6; i++)
for (int j = 0; j < 6; j++) {
if (j > 0 && block_g[i][j-1]->color == block[i][j])
(*(block_g[i][j] = block_g[i][j-1])->num)++;
if (i > 0 && block_g[i-1][j]->color == block[i][j]) {
if (block_g[i][j]) block_g[i][j]->link(block_g[i-1][j]); else (*(block_g[i][j] = block_g[i-1][j])->num)++;
}
if (!block_g[i][j]) {
(*(block_g[i][j] = new group(block[i][j]))->num)++;
glist.push_back(block_g[i][j]);
}
}
for (std::list<group*>::iterator i = glist.begin(); i != glist.end(); ++i) delete *i;
}
int main() {
memset(block_g, 0, sizeof(block_g)); erace();
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 6; j++)
printf("%02d,", *block_g[i][j]->num);
printf("\n");
}
}
0112111
02/07/13 23:00ID:???gccで動作確認しますた。
0113大学1年生
02/07/14 01:47ID:6shM2PBsBool == bool, True == true, False == false, Sint32 == int
Table[] == 消える対象(CElementのポインタ)がはいってるテーブル
RETU == 列, GYOU == 行, SELLNUM = Table[]のサイズ == RETU * GYOU
ぷよぷよみたいな感じで。
処理の流れ
EraseBall()
idxbox[] == 削除予定のTable[]のIndexを保存するための配列
SetSearchFlagとSetEraseFlagで検索したか、削除対象かのフラグをFalseで初期化
Table[]をすべてEraseSearchで何個つながってるか数を検索
つながってた個数が一定数(eraseline)以上なら削除決定
idxbox[]を使い削除対象のインデックスを習得
SetEraseFlagを使いTrueに設定
Table[] = NULLでテーブルから削除
EraseSearch(列の座標,行の座標,ぷよの色みたいな感じ,何個つながってるか,検索したIndexを入れる配列)
テーブルに存在するか、検索済みか、同じ属性かの判定
SetSearchFlag(True)で検索済みに設定
上下左右で再帰して検索
idxbox[]に検索したアイテムのTableのIndexを設定
自分がつながってたことを表すようにnumに1つ足してreturn
つまり3D太郎さんと同じアルゴリズムです。
動く形で全部(一部でも)アップするのはいっぱいファイルがいるので無理です。
かなりわかりにくい説明だと思いますけど、これが限界なんで。
分からなかったらすいません。
0114名前は開発中のものです。
02/07/14 02:08ID:???実行可能な状態でUPすると著作権侵害に触れるんだっけ?
確か、ブロック崩しはOKだったよね。
0115名前は開発中のものです。
02/07/14 02:23ID:???ほんと?著作権なの?
意匠権とか、特許じゃなくて??
0116名前は開発中のものです。
02/07/14 09:55ID:fsyX9X4cでも著作権って、アイデアは保護されないはず。
ソースコードには著作権があるので、
1から作れば問題ないとかあるとか…。
結局のところどうなんだ?
>>114の話もよく聞くし・・・
0117114
02/07/14 10:36ID:???「アルゴリズム」自体には著作権は
認められていないと思うけど、ゲームの
ルール自体には認められているから…
普通に考えて、商用のゲームのコピーを勝手にUPするのはNGかな、と。
2chでは、「ぷよぷよ作ろう」みたいなスレッドが普通に立って
普通にUPされているからちょっと気になった。
でも、このスレには関係の無いことだったかな。汚してスマソ。
0118名前はデバッグ中のものです。
02/07/14 11:06ID:???なるほど。
|2chでは、「ぷよぷよ作ろう」みたいなスレッドが普通に立って
|普通にUPされているからちょっと気になった。
同意。なんか、違和感を覚えた。
誰もスレで指摘していなかったような感じで。
0119名前は開発中のものです。
02/07/14 11:51ID:???判例とかあるのかな?
0120114
02/07/14 12:11ID:???>>119
ゲーム関係の裁判は様々な主張が入り乱れていて
絶対的な判例ってのは、まだ無いと思います。
ルールって表現はマズかった。
だが、ぷよぷよのルール(ゲーム)はプログラムと
何らかの視覚表現があって成立するものだから
プログラムに視覚表現を含めてUPするのは危険だと思う。
0121名前は開発中のものです。
02/07/14 12:45ID:???0122名前は開発中のものです。
02/07/18 01:13ID:???山に登ろうとした日に台風が来て、もうアホかと。
では、気持ちを新たにUPさせていただきます。
以前話題に出た、逆ポーランド記法への変換アルゴリズムです。
>>61のプログラムが少し進化しました。
()に対応しました。
また、 (-(47 + 12) / 8) のように括弧の前のマイナス記号にも対応してます。
それ以外は>>61と同じです。 + - * / の四則演算ができます。
C言語です。
ソース
http://www.geocities.co.jp/SiliconValley-Cupertino/8770/newMtoB.txt
実行ファイル
http://www.geocities.co.jp/SiliconValley-Cupertino/8770/newMtoB.zip
ソースは見るに値しない状態(きたない)ですが一応あげさせていただきます。
<<続きます>>
0123名前は開発中のものです。
02/07/18 01:15ID:???アルゴリズムは () 内の式を再帰で渡していく
というものです。括弧の前のマイナスは
-(8 + 7) → -1 * (8 + 7) という風に変換して渡してます。
自力で無理やり作ったものなので、無駄が多いと思います。
誰か、より完璧なアルゴリズムをご存知でしたら教えていただきたいです。
どちらかと言えば、マ板向きの話題なのかもしれませんが…
また、>>122のプログラムの動作について指摘がありましたらお願いします。
ぷよぷよの話題に関しては、僕の効率の悪い、初心者気合アルゴリズムで
場を荒らしてしまうような気がするので、ROMさせていただきます。口惜しや…
0124名前は開発中のものです。
02/07/18 01:27ID:???ム板に訂正…
しかも>>78で自爆レスしてる…
>>76に訂正です。
0125名前は開発中のものです。
02/07/18 02:25ID:VUqV/Vc.同人誌と同じようなものだし、別に責められるほどのものではないんでは?
ただ、ぷよぷよアルゴリズムの権利者(って今どこが持ってるんだ?)から
クレームがあるかもしれないことを認識しておく必要があるとは思うが。
0126名前は開発中のものです。
02/07/18 09:24ID:???0127名前は開発中のものです。
02/07/18 09:39ID:???しかも、プログラムをただ公開しただけじゃ、特許権侵害にはならないんじゃなかったっけ?
0128名前は開発中のものです。
02/07/18 14:04ID:???()に付いているマイナス記号の判定、スペースやタブで
区切って式を入力した際の不具合を修正しました。
修正した実行ファイル
http://www.geocities.co.jp/SiliconValley-Cupertino/8770/newMtoB2.zip
例えば (9+8*7)/6-(-((5-4)*(3+2))) という式を与えた場合の出力は…
(修正前)9 8 7 * + 6 /-1 -1 5 4 - 3 2 + * * * -
(修正後)9 8 7 * + 6 / -1 5 4 - 3 2 + * * -
と、なっています。
まだバグがありそうですし、汚いのでソースのUPは今回は見送ります…
0129>>128
02/07/18 16:25ID:???計算できる形になってるみたいだしいいんじゃない?
ソースについてのコメントは控える。(w
0130名前は開発中のものです。
02/07/18 21:01ID:eG1jD3wM0131名前は開発中のものです。
02/07/18 21:29ID:???コメントありがとうございます。少しだけ自信がつきました…
今のところはバグが見当たらないので
逆ポーランド記法の式を計算する関数も作ってみました。
入力された式を逆ポーランド記法に変換して表示し、計算結果も表示されます。
C言語です。
ソース
http://www.geocities.co.jp/SiliconValley-Cupertino/8770/calculation.txt
実行ファイル
http://www.geocities.co.jp/SiliconValley-Cupertino/8770/calculation.zip
動作などに関する意見や質問があったらよろしくお願いします。
0132名前は開発中のものです。
02/07/18 21:32ID:???落としてみたのですが、エラーが出て実行できませんでした。
あと、何かを貼り付ける時は簡単なコメント・説明を添えるように
してください…おねがいします。
0133名前は開発中のものです。
02/07/18 23:33ID:KrSipdXMGetPriorityOperator関数で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;
}
0134名前は開発中のものです。
02/07/18 23:37ID:???出来れば、defaultは除去してその前の段階でキャラクタ検査をした方が良い。
0135名前は開発中のものです。
02/07/19 08:47ID:???レスありがとうございます。
まずは、見やすいプログラムを書くように心がけます。
僕は、まだ生成されるコードの効率とかを
考えるレベルには至っていないのかもしれません…
効率について検索してみたのですが、
>switchは if - elseif …のチェイン(cmp xx jz xx ...)に展開されることもしばしばで、
>こんなものになってしまったらジャンプテーブルに比べて圧倒的に速度が低がするのは想像に硬くありません。
>例えば、switch文の最後に
> default:
> __assume(0); // (VCの拡張機能、ここに来ることは有り得ないと言う事)
>等としてやるとVCに於いてはほぼ確実にジャンプテーブルに展開されるようになります(なるそうです…)。
というのがありました。
0136名前は開発中のものです。
02/07/19 09:45ID:???0137名前は開発中のものです。
02/07/20 14:19ID:???#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;}
0138名前は開発中のものです。
02/07/20 20:43ID:???すごいですね。
俺が授業で書いたオセロは200行ちょい。
このプログラムを改行とかしたら40行弱。
・・・あと4年間で何とかしないとな。
0139名前は開発中のものです。
02/07/20 23:29ID:???7行スレでも有名な人が書いた物。
0140名前は開発中のものです。
02/07/21 00:04ID:VfOHqT.Aある程度は可能だと思うが。
別にレベルがどうこうじゃないような。
>>137みたいなのはオジさん同士で見せ合うのは
たのしいんだけど、若い人は興味無いんじゃないか?
基本的に「実用テクニック」にはなり得ないから。
0141名前は開発中のものです。
02/07/21 00:12ID:???勝手に言ってくれるなー
俺もいいかげんおじさんなのか。
0142名前は開発中のものです。
02/07/21 00:26ID:???0143名前は開発中のものです。
02/07/21 00:34ID:???実装範囲を選んで、機能を限定してそれ専用にチューニングしてる。
こういうことは結構重要で、出来ない奴は結局ここの技術にこだわりすぎて
全体的に効率悪い物しか作れない。
小手先のテクニックも使ってるけど、それだけだと思ったら大間違いだよ。
0144名前は開発中のものです。
02/07/21 00:37ID:???10代でおじさんと言われるとは思わなかったYO!
0145140
02/07/21 00:42ID:???>137のは実行してないからよく分からんが
オセロを満たすのに必要最低限のことしかやってないだろ。多分。
そんなのに興味を持つくらいなら思考ルーチンのひとつやふたつ
を作ってみた方がいいですよ。何年かやってれば自然に出来るようになるし。
駆け出しのうちは手に届くものを優先。
>>143
まあ、これが出来なければあれが出来ない、みたいな話は止めましょうや。
0146名前は開発中のものです。
02/07/21 00:50ID:???違う
>のは実行してないからよく分からんが
実行しろよタコ
何もしないで人のプログラムを語るな。
PC対戦付きだボケ
0147名前は開発中のものです。
02/07/21 00:58ID:???0148140
02/07/21 09:20ID:???その位は見ただけで分かるよ。
でも、どの程度のチェック漏れがあるのかは分からない。
相変わらず実行はしていないから分からないが
おそらく比較的、遭遇頻度の低いバグは無視しているのだろう。
七行スレって言うくらいだからそんなことを言うのは野暮なんだろうが。
トイプログラムとして見れば面白いし、レベルも高いと思う。
煽る人が居るし、これで最後にする。
0149名前は開発中のものです。
02/07/21 09:58ID:???簡単な(要するにテキトーな)思考ルーチンや単なる総当たりなら出来るかも知れないが、
有名なαβ法なんかは自然に思いつくたぐいの物でもないしな。
理論的な思考ルーチンなんかはひとつやふたつなんて言うほど簡単に作れるもんでもない。
0150名前は開発中のものです。
02/07/21 12:28ID:???若い人って”出来ないからやらない”じゃん。それはイクナイ。
0151138
02/07/26 03:09ID:???オセロの思考は趣味のほうで作りましたね。
自分よりは強いけど、どの程度かは分かりませんです。
まだ137のプログラムが読める程度なので4年後が心配だったけど、
上級者と知って少し安心です。
でもプロのレベルがいまいち分からないからやっぱりかなり不安・・・。
学生に>>137を見てほしいからage
0152名前は開発中のものです。
02/07/26 08:43ID:???むしろ若い人ほど7行でどんなことができるかとか燃えそうな気がするなぁ
64kメガデモみたいなもんですかな
0153おもしろいものが
02/08/12 16:52ID:???0154名前は開発中のものです。
02/08/12 17:27ID:???0155名前は開発中のものです。
02/09/02 20:54ID:???普通のオセロは通常読みと必勝読みと完全読みの3ルーチン持ってると思う
0156名前は開発中のものです。
02/10/13 14:20ID:???あれで正しいのですか?
実行してみたんですけどちゃんと動いるみたいでした。
今までノベルゲームくらいしか作ったことが無く
こういうプログラムやったこと無いので興味を持ちました。
0157名前は開発中のものです。
02/10/13 15:59ID:???たおしてくと階段 '/' がでてきて、接触で次フロアへ。終わりは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;}}
0158名前は開発中のものです。
02/10/13 23:40ID:???マップ広すぎ。
あと、視野(見える範囲)はもっと広くていいと思うぞ。
0159( ○ ´ ー ` ○ )
02/10/14 13:41ID:oQUDul000160名前は開発中のものです。
02/10/14 14:11ID:???0161名前は開発中のものです。
02/12/20 00:56ID:TnNLuwnN期待ageさせて下さい!
0162名前は開発中のものです。
02/12/20 01:27ID:hsTe63tg< 終 了ーーーーーーーーーーーーーーーー!!!!
<
∨∨∨∨∨∨∨∨∨∨∨\ /∨∨∨∨∨∨∨∨∨∨
/:|. | | /:|
/ .:::| ∨ / :::|
| ...:::::| / ::::|
i  ̄ ̄⌒゙゙^――/ ::::::::|
/_,,___ . _,,,,__,_ :::::::::::\
/ ゙^\ヽ.. , /゙ ¨\,.-z ::::::::::\
「 ● | 》 l| ● ゙》 ミ.. .::::::\
/i,. .,ノ .l| 《 ..|´_ilト ::::::::::\
/ \___,,,,,_/ .'″ ^=u,,,,_ v/.. :::::::::::::l!
|  ̄ ,,、 i し./::::::::.}
| / ,,____ _,/ ̄ \ \ ノ ( ::::::::::|
| |.. | /└└└└\../\ \ '~ヽ ::::::::::::::}
| .∨.|llllllllllllllllllllllllllllllllllllllll| ::::::::::{
| |.|llllllllllll;/⌒/⌒ 〕 :::::::::::}
| |.|lllllllll; ./ . . | ::::::::::[
.| |.|llllll|′ / . | .| :::::::::::|
.| |.|llll| | .∧〔 / :::::::::::::/
/ }.∧lll | ../ / / :::::::::::::::::\
/ /| \┌┌┌┌┌/./ /::: :::::::::::::::::\
( ゙゙^^¨^¨゙゙¨  ̄ ̄ ̄ /::::::::::: ::::::::::\
ヽー─¬ー〜ー――― :::::::::::::
0163名前は開発中のものです。
03/09/15 23:31ID:cjbTqAlp0164名前は開発中のものです。
03/09/16 17:36ID:rZAhYualネタ
0165名前は開発中のものです。
03/09/16 17:45ID:EQhFXA4K0166名前は開発中のものです。
03/09/17 00:42ID:/Dz3qKwAsageててもIDが出る人と出ない人がいるのは何故?
0167名前は開発中のものです。
03/10/25 16:28ID:w+myaAmJ頭がいい人と悪い人の違い
0168名前は開発中のものです。
03/11/14 15:17ID:4meSYN3sif(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;
}
プライオリティが等しいときも演算子スタックにつまなきゃだめじゃない?
上記だと計算結果はあうけど逆ポーランド法表記的にまずくない?
0169名前は開発中のものです。
04/08/01 21:49ID:V3JnTtE5うおお、初心者の俺からしてみればすごい・・・。
少し前に長方形領域の移動プログラム(ただ単に移動するだけ)つくってみたけど、
それなんか200行以上もあるよ・・・(>>157は見やすいように整えて60行ほど)。
まだまだだなぁ・・・。ってまだCの教科書を1冊も終わらせてないんだけどね。
ポインタの恐ろしさもまだぜんぜんわかんないし。
0170169
04/08/01 21:51ID:V3JnTtE50171名前は開発中のものです。
04/08/01 22:00ID:V3JnTtE5age
0172名前は開発中のものです。
04/08/03 14:15ID:pwgXpzV7わかりやすく整形してみました。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=295
基本的にオリジナルアルゴリズムに忠実な形での整形ですが
以下の2点で手を加えています。
・ワーニングを完全に排除するために
メインループからのエスケープにgoto文を追加。
・画面クリアのためのsystem("CLS")を追加。
0173名前は開発中のものです。
04/08/04 18:06ID:2FqsG8xsおつ!見やすい!役立たせていただきます!
0174172
04/08/04 19:12ID:k/+0Z3FNささ、愉快な短いプログラムきぼんぬ。
おいらが解読します。
>>137のオセロは遊び方がわからないので断念しました。
0175名前は開発中のものです。
04/08/04 19:40ID:2FqsG8xsって別に俺に言ってるのかは知らんけど。
0176172
04/08/04 20:05ID:k/+0Z3FN0177名前は開発中のものです。
04/08/05 01:04ID:Ww4148ra>>137のオセロソース、斜め読みしかしてないのでアレだけど
横1桁縦1桁の数字(46とか)で打つ場所を入れるんジャネーノ?
0179172
04/08/05 21:43ID:muG+oZLAhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=299
解析は非常に難航してマヂで丸二日かかりました。
それだけにとても勉強になりました。
簡単なポインタの利用例や巧妙な配列の使い方など
参考になると思うので
C言語勉強中の人は一読オススメしておきます。
ちょっと難しいソースだと思うのでコメント大量につけました。
うざい人は消して読んでね。
評価・探索アルゴリズムは読んでみた人だけのひみつ。
0180172
04/08/05 21:53ID:muG+oZLA当方CかJavaかJavaScriptしか読めまてん。
よろちくおながいします。
0181名前は開発中のものです。
04/08/06 14:59ID:1oB+oDD2自分で探してたらこんなのみつけました。
7行スレその1
http://pc.2ch.net/test/read.cgi/tech/984182993/
7行スレその2
http://pc.2ch.net/test/read.cgi/tech/1018840143/
盛り上がっているのは俺だけなのか。。
過疎ってさみしい。
0182名前は開発中のものです。
2005/06/12(日) 11:06:16ID:WhyZAEvM0183名前は開発中のものです。
2005/11/18(金) 21:28:32ID:aihTlFd40184名前は開発中のものです。
2006/01/19(木) 22:48:13ID:ggSypXg/0185名前は開発中のものです。
2006/09/22(金) 08:30:34ID:seYHxo/2( ゚∀゚) おいらをどこかのスレに送って!
〜(ouub お別れの時にはお土産を持たせてね!
現在の所持品:たばこ他48品圧縮.zip・どようび・ドエット
糞スレ・rigel・ギコペ・Jane・ニンバス2000
0186アナルに宣戦布告 ◆3vv40OycRw
2007/11/24(土) 20:01:19ID:w/0MHia80187アナルに宣戦布告 ◆3vv40OycRw
2007/12/01(土) 01:35:19ID:3UvlWnEW0188アナルに宣戦布告 ◆3vv40OycRw
2007/12/09(日) 23:24:48ID:c4JBq/jx0189アナルに宣戦布告 ◆3vv40OycRw
2007/12/18(火) 22:40:24ID:8S4bPrMv0190アナルに宣戦布告 ◆3vv40OycRw
2007/12/26(水) 19:57:32ID:LLHH0wdN0191名前は開発中のものです。
2007/12/30(日) 15:21:17ID:C1d66INg0192名前は開発中のものです。
2007/12/30(日) 15:53:16ID:zzg7G+NL0193アナルに宣戦布告 ◆3vv40OycRw
2008/01/04(金) 23:34:15ID:0nXTXUOb0194アナルに宣戦布告 ◆3vv40OycRw
2008/01/11(金) 22:44:14ID:dkwNUUFL0195アナルに宣戦布告 ◆3vv40OycRw
2008/01/19(土) 22:27:33ID:9y0chWmO0196アナルに宣戦布告 ◆3vv40OycRw
2008/01/30(水) 00:18:13ID:ZFo8EP1h0197アナルに宣戦布告 ◆3vv40OycRw
2008/02/18(月) 05:45:17ID:CBB5bNWD0198アナルに宣戦布告 ◆3vv40OycRw
2008/03/05(水) 11:11:53ID:bOacHgHM死んでるんだぜ
0199名前は開発中のものです。
2010/05/09(日) 08:44:05ID:Leqbkihs0200名前は開発中のものです。
2011/12/26(月) 19:44:56.10ID:SWW2uGtW500行弱+画像数枚のベーマガプログラムだったが、なかなかおもしろかった記憶。
■ このスレッドは過去ログ倉庫に格納されています