【Terrarium】 .NET で虫をつくろう!

このエントリーをはてなブックマークに追加
ArrayList.Contains() と foreach() などで回すのとでは、どっちが早いですか?
42の気持もわからないでもない。
コード丸ごとパクって、数値を少しいじってオリジナルでござい、って奴が多すぎる。

オリジナルコードで上位に食い込めるレベルの奴はは本当に4〜5人しかいないと思う。
正直レベル低すぎ。5月の時点から俺もそう思ってた。
>>935
42さんは900で、自分のいままでの行動(marやletyに対する偽装)に対して
「他人を排除する行為が許せないから」という言い訳で自分の行動を
正当化しようとしています。その後もその姿勢を貫いて、
ゲームの保護者のような態度を全面に出しています。

この状況で他人が使うと「許せない」手口(独占コンボ)を自分が使う
のだとしたら、嘘つきまたは御都合主義と呼ばれてもしかたないでしょう。

素直に「私が困るから偽装しました」と言っておけばこれだけみんな
騒がなかったと思います。
騒いでる奴が本人(42でない方)じゃないかと思う
っていうか、marに対して偽装はしてないと思うが?>938
>>937
それは早計。本当の実力者が現れるのは最後の数日だろ。
俺はその時に向けて今からドキドキしてるよ。
もちろん勝負組の一員のつもり。

それにコンテストが終了した後には、みんな手のうちを明かせる
ようになるから、USみたいに戦略論や戦術論をワイワイ語る日が
来るんだ。楽しみだよ。
>>939
そうでしたか、marは違ったのですか。間違いを書いてすみません。

それから、本人さんってどなたかなのですか?
騒いでいる人たちは結構な人数いるみたいですから。
(と言っても、ここには何人書いているのでしょう?)
sweeperが自爆してlufasが増えてARA-ACが優勝っていう出来レースじゃないの?
>>937
俺も気持ちはよく分かるが、盛り上げるどころか森下げかねない言動が
あるようでは結局意味ない。

また、パクリが多いから、オリジナル君はぎりぎりまで
投入を控えているはず。自分もその方針。

>>940投入時点を来週のいつにするかが現在の最大の悩みだな。
gwolfはmarの偽装だよ。
そっから、いろいろおきたよ。
ぎりぎりまで投入しないなんてえらそうなこといえるね〜。

あなたの夢は跡形もなく崩れます。
せめて最終兵器はとっておいて、2番手くらいを投入して様子みたほうがいい。
>>945
そう、もう駆け引きは始まってるんだよね。

俺もEcosystemで試してみたいけど(前回投入したのはけっこう前)、
控え投手でもけっこうノウハウ詰まっているし、
そこから機能を取り除いてちゃんと動かせるように
するまでは結構時間がかかるから、このまま我慢しようと思う。

もし今誰かが本命をintroduceしてくれれば、たちどころに長所を
取り込んで、弱点を攻めるようにするよ。当然、俺が出したら
他の奴もやるよね。だからぎりぎり粘るけど、いつ出すかは企業秘密。

今までのデータから、繁殖速度は見切ってるので、あとはその日まで
ヲッチとエンハンスだな。
>>946
病気対策は大丈夫?
>>947
なんだよ病気対策って。
病気になる条件と対象を理解してるのかと小一時間・・・
一週間前まで元気だったしぶといgamma5が滅びかけてるよ。
大方盛り下げないと自分のが圏外に出てしまうんでしょ
よかった、ちゃんと駆け込み組もいるんだね。このスレだけで3人くらいは
いるのかな?

それと、いつの間にかコンボ反対派にされてるけど、反対してるのは最初から
大量投入なのでお間違いなく。934から誤解が始まったみたいだけど。

肉食は肉食専門の人に開放したいけど、今のままSweeperが自爆したら自分を
含めた草食の駆け込み組にも影響あるのがなぁ…
時限装置はずした新種放っておくから、肉食派の人は自力で駆除してもらうっ
て事でいいかな。

それと、このスレにはもうあまり(全く?)書かないようにします。
盛り上げようとして盛り下げてる結果になってるし、何度もSweeperの秘密を
自分から書きそうになったので。(Sweeperより強いはずの種がEcoSystemで
は全く駄目な理由とか)
952デフォルトの名無しさん:02/06/17 22:16
え、と、次のスレ作ってみました.

【Terrarium】4世代目 最終局面 決戦は金曜日♪
http://pc.2ch.net/test/read.cgi/tech/1024319607/

このスレは最後の方でささくれ立っちゃったけど、
ラストスパートは気持ちよく行きましょう!
953952:02/06/17 22:22
あと、誰かこれまでの列伝みたいな経緯を書いてくれるとうれしいです。
私はnasb_tamaがず〜っと1位だったころまでしか覚えてないので。
>>948
今の最大の敵は病気。
新しい種が入っても1分もしないうちに死んじゃう。

この対策をしないと今から逆転は難しい。
955913:02/06/18 12:06
public bool blocked=false;
public int blockCount=0;
public OrganismState blockingTarget=null;
public void move(Vector vec,int speed){
double scale = speed > this.State.Radius ? speed : this.State.Radius;
scale=scale*2;
this.WriteTrace("move" , vec , "speed",speed);
if(vec.Magnitude<10 || speed<2){
//if(this.State.EnergyState==EnergyState.Full){
// BeginMoving(new MovementVector(this.getRandomPoint(),2));
// return;
//}
return;
}
if(speed>this.Species.MaximumSpeed){
speed=this.Species.MaximumSpeed;
}

if(blocked && blockingTarget!=null){
if(!IsMoving)blockCount++;

if(blockCount>2 || Util.distance(this.State.Position,blockingTarget.Position)>(this.State.CellRadius+blockingTarget.CellRadius)*11+16){
this.WriteTrace(Util.distance(this.State.Position,blockingTarget.Position),">",(this.State.CellRadius+blockingTarget.CellRadius)*11+16);
blocked=false;
blockCount=0;
}else{
if(OrganismRandom.NextDouble()<param.val(param.f_m_r))vec=vec.Scale(-1);
int dx=Math.Abs(blockingTarget.Position.X-this.Position.X);
int dy=Math.Abs(blockingTarget.Position.Y-this.Position.Y);
scale=blockingTarget.CellRadius*2*11+this.State.CellRadius*2*11;
if(dx<dy){
vec=new Vector(vec.X,0);
}else{
vec=new Vector(0,vec.Y);
}
if(IsMoving || !blockingTarget.IsAlive || this.Species.IsSameSpecies(blockingTarget.Species))return;
}
}else{
blockCount=0;
}

while(true){
try{
BeginMoving(new MovementVector(Vector.Add(this.Position,vec.GetUnitVector().Scale(scale)),speed));
break;
}catch(OutOfBoundsException){
scale*=0.9;
}
}
}
956913:02/06/18 12:08
もうリタイアしてるけど、
俺のも42と同じコンセプトのアルゴリズムだけど、
これだと、あまり上手く行かなかった。

どうも、ファジーなプログラムはテラリウムでは通用しないみたい
(あるいは、自分が下手なのか)

ちゃんとグリッドで計算するべきなのかと思った。
957913:02/06/18 12:10
ついでに
public void approch(){
int difSpeed=animal.State.Speed-target.Speed;
if(difSpeed<1)difSpeed=1;
double dist=Vector.Subtract(animal.Position,target.Position).Magnitude-animal.State.Radius-target.Radius;
int x=(int)(target.Position.X+(dist*target.Speed/difSpeed)*Math.Cos(Vector.ToRadians(target.ActualDirection+180)));
int y=(int)(target.Position.Y+(dist*target.Speed/difSpeed)*Math.Sin(Vector.ToRadians(target.ActualDirection+180)));
Point estimate=new Point(x,y);
//animal.move(Vector.Subtract(animal.Position,target.Position),animal.Species.MaximumSpeed);
//animal.move(Vector.Subtract(animal.Position,estimate),animal.Species.MaximumSpeed);
try{
animal.move(Vector.Subtract(animal.Position,target.CurrentMoveToAction.MovementVector.Destination),animal.Species.MaximumSpeed);
}catch{
animal.move(Vector.Subtract(animal.Position,estimate),animal.Species.MaximumSpeed);
}
//animal.BeginMoving(new MovementVector(estimate,animal.Species.MaximumSpeed));
}
これを使うか使わないかでは、
全然違う。
@itでも説明してたかな・・・・
 やっぱレベルが低いのは否めないなぁ
 日本負けたんで明後日から頑張ります
sasorin0a って 逃げるときって軸系しかいってない?
それとも、草に裏に回って逃げているの?
目立たないけど、gammaもsasorinみたいな草の裏に回りこむ動きするよ。
もうあまり書かないと言ったばかりだけど、lufas009見てたらTerrariumの
バグ(?)を利用してるのに気付いたんで…
そういえばcmhareなんかもそうだったし、これって向こうの掲示板とかに
書いてあったりするのかな?

ちょうどSweeperを時限式でないやつと入れ替えようと思ってたところだから
組み込んでみます。

#本命とか言ってる草食はまだ作ってないし…
まあ仕様だろうな。
963デフォルトの名無しさん:02/06/19 12:20
時限式ってDateTimeを使うの?
964デフォルトの名無しさん:02/06/19 12:22
Terrariumの
バグ(?)を利用してるのに気付いたんで…

Terrariumのバグって何?
965not 961:02/06/19 12:49
>>964
cmhare っていったら、アレのことでしょ・・・
readonry でメモリを取った場合。
シリアライズ、デシリアライズに影響しますか?


967966:02/06/19 13:03
恥ずかしい・・・スペルミス。readonly.
968964:02/06/19 13:08
うーん、わからん
いじわるしないで教えてくれー

>readonry でメモリを取った場合。
言葉の意味がよくわからん
muneo26かなり増えたけど、DeserializeAnimalあたりでエラー出して死ぬのが
もったいないね。Terrarium起動するといきなり3〜4匹死ぬ。
970:02/06/19 18:50
readonlyな奴はシリアライズでもってく。
constな奴はシリアライズでもってかない。
シリアライズできるのは8000バイトまで。
>>964
新しい肉食のEraserを放っておいたから、Sweeperと見比べてみて。
どこか変な部分があるはずだから。

何のことだか分かっても、コンテスト終わるまでは書かないで欲しいなぁ。
大したことじゃないんだけど。

ところで、さっきTerrariumモードでSweeperを2種同時に放ってみたら
面白いことになったんで、後で時限式でもう1種放ってみます。
972デフォルトの名無しさん:02/06/19 23:50
>>971
そんなに重大(?)なバグみたいなのがあるの?
973デフォルトの名無しさん:02/06/20 00:06
リタイアしてからは、全然見てなかったな。
久しぶりに見てみるか。
>>972
たいしたことない。@ITにもかなり昔から書いてあった。
単に42が気づかなかっただけ。たぶんみんな知ってる。
>>974
…と、ありがたみの無い知識だという印象をみんなに与えて、
もったいぶる42にみずからしゃべらそうという作戦と見た。
いやだから既出情報なんだって。
977デフォルトの名無しさん:02/06/20 00:54
>>976
だったら、何か書いてくれ。
といっても、リタイアした人間には関係ないけど。
大会終わったら教えてください。
42にお願いされたし、一応黙っておくよ。
知っていたからどうだ、というほどのことでもないしね。
>>977
Terrariumに投入直後に左下に移動してBeginEatingし続けると
Creditsが表示される。
>>979
あ〜あ、書いちゃった。
981デフォルトの名無しさん:02/06/20 01:17
creditsって何?
あちゃ、やっぱりどこかに書いてありましたか。
途中から情報収集やめて自分で調べてたんで知りませんでした。

そろそろsweeperとeraserのグラフが横ばいになってきたんで、実験用の
2種目を投入しますね。これは月曜の0時(日曜の24時)を過ぎるとエラー
自殺して消滅します。
上手く繁殖できれば、草食動物の勢力図が変化すると思います。多分。
すいません、eraserの後に放ったremoverですけど、問題がありました。
removerのプログラムは何も悪くないんだけど、removerがいる状態でTerrarium
を起動すると描画処理が止まってしまいます。
しばらくすると動き出すみたいだけど、ウィンドウ内で右クリックしてメニュー
から何か選ぶとすぐに動き出します。

たぶんTerrariumのどこかでデッドロックが発生しているんだと思う。
eraserと同じプログラムだから動作テストもしないで投入したのが失敗でした。
>>983
ウイルスかと思ったぞゴルァ
つーかやりかたおせーて(w
悪用されるとみんな起動しなくなりそうだしなぁ。
とりあえずSkin名にアルファベット以外は使わない方がいいらしい。

一応描画はされないけどAnimalsは変化してるから動いてはいるみたい。