AI Challenge: Ants!

Pagina: 1 ... 4 ... 6 Laatste
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Corniel
  • Registratie: April 2002
  • Laatst online: 31-03 14:56

Corniel

De wereld is gek!

Waster schreef op zaterdag 12 november 2011 @ 20:12:
Zou iemand mij kunnen helpen hoe ik zo'n programma als dit nou het beste kan debuggen. Ik heb nogal wat veranderingen toegepast en er blijkt ergens een runtime error op te treden. Ik zal wel iets vergeten zijn te initialiseren, maar ik kan er maar niet achter komen wat.

Ik heb namelijk geen flauw idee wat mijn programma en de playgame.py nou eigenlijk met elkaar communiceren.
Sjaakie heeft het al gezegd volgens mij maar er zijn twee handige tips:
- Zorg voor images als output
- Pas je code aan zodat je met een TextReader je code inleest

Vervolgens moet je ook nog ergens je echte input loggen. Dan kan je vervolgens met je debugger e.a. naspelen.

while (me.Alive) {
me.KickAss();
}


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 13-09 09:39

Janoz

Moderator Devschuur®

!litemod

Je eigen input hoef je niet te loggen. Wanneer het spel in de browser afspeelt kun je met de "BOT IN" knop de input opvragen

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 10-09 20:32
Mijn nieuwe versie gaat als een speer. Wel nog veel te behalen zie ik. Vorig potje was tegen 7 bots die allemaal in de top 500 zaten. Toen werd het toch wel pijnlijk duidelijk dat mijn pathfinding prioriteiten wat bijgesteld moeten worden :P

Acties:
  • 0 Henk 'm!

  • Waster
  • Registratie: September 2006
  • Laatst online: 14-04 17:49
Thanks. Ik ben nou mijn bot aan het uploaden. Ik heb die influence maps gebruikt, kijken hoe dat werkt :)

Een strategie bedenken om te battlen vind ik nog vrij lastig. Vooral omdat er zoveel variabelen zijn.

Acties:
  • 0 Henk 'm!

Verwijderd

Er worden al de hele middag/avond geen wedstrijden meer gespeelt?
Iemand enig idee wat er aan de hand is, kon op het forum zo snel niks vinden.

Ik ben bij versie 19 aangekomen. Op een kleine bug dat ie niet helemaal lekker van de onderkant naar de bovenkant warped na is hij ver af :*)

Acties:
  • 0 Henk 'm!

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 18-08 21:31
Ze gebruiken spot servers van Amazon, die krijg je als je degene bent die het meest biedt, blijkbaar worden ze vandaag overboden.

Op het forum zijn tcp servers te vinden waar je bot op je eigen computer draait tegen anderen, fluxid lijkt het meest populair te zijn.

[ Voor 35% gewijzigd door _js_ op 13-11-2011 21:59 ]


Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
Heeft iemand al ervaring met die Visualiser?

@Deathraven, zie Cloud hieronder

[ Voor 29% gewijzigd door Bolukan op 14-11-2011 10:03 ]


Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 10-09 20:32
Wat bedoel je precies met ervaring?

Acties:
  • 0 Henk 'm!

  • Cloud
  • Registratie: November 2001
  • Laatst online: 14-09 00:02

Cloud

FP ProMod

Ex-moderatie mobster

Ik heb deze challenge ook gevonden, jammer eigenlijk dat ik er zo laat achter kwam! Maar ik ben dit weekend in C# begonnen met een botje en heb de gehele tutorial doorlopen. Basic zaakjes werken nu, nu eens gaan kijken naar meer intelligentie :+

@Deathraven
Ik denk dat hij die 'debug' visualisatie opties bedoelt, waarmee je zelf nog dingen in de visualizer kunt tonen (handig voor debuggen). Ik ben er zelf nog niet mee bezig geweest, al heb ik al wel de benodigde aanpassingen gemaakt.

Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana


Acties:
  • 0 Henk 'm!

  • SaphuA
  • Registratie: September 2005
  • Laatst online: 10-09 22:00
.

[ Voor 106% gewijzigd door SaphuA op 31-01-2022 15:56 ]


Acties:
  • 0 Henk 'm!

  • Azaruc
  • Registratie: Mei 2010
  • Laatst online: 29-07-2024
SaphuA schreef op maandag 14 november 2011 @ 10:19:
He Cloud! Leuk dat je meedoet :) Ben benieuwd waar je mee komt!

Ik heb mezelf ook maar weer overtuigd om een stapje verder te gaan met mijn bot. Het is toch te leuk om het links te laten liggen ;)

Het idee dat ik wil gaan uitwerken is om mijn ants rollen te gaan geven. In het begin een hoop ants scouts en farmers maken en daarna overstappen op defenders en razers.

Ik ben echter nog steeds op zoek naar een goede diffuse method. Kan hier ook weinig artikelen over vinden. Ik moet straks ook verschillende diffuse maps gaan combineren per rol. Een scout mag bijvoorbeeld best 5 stappen omlopen voor een stukje food. Dus ook dat gaat een bijzondere uitdaging worden. Als iemand hierover mee wilt denken mag dat natuurlijk ;)
Is dat niet ook afhankelijk van enemy ants? Het lijkt mij zonde dat, doordat je scout de omgeving wil verkennen en er dus langer over doet om het food te bereiken, de tegenstander het food pakt.

Ik ben zelf nog steeds niet echt aan een begin toegekomen, omdat ik problemen had met het installeren van Python, waardoor ik geen games kon runnen op mijn pc. Deze week even proberen op mijn laptop, misschien dat het daarop wel lukt :)

D3 Profile


Acties:
  • 0 Henk 'm!

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 12-09 10:25
De PATH environment variabele bevat het pad waar python.exe staat?

Acties:
  • 0 Henk 'm!

  • SaphuA
  • Registratie: September 2005
  • Laatst online: 10-09 22:00
.

[ Voor 99% gewijzigd door SaphuA op 31-01-2022 15:55 ]


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 13-09 09:39

Janoz

Moderator Devschuur®

!litemod

Op Azaruc's python installeer probleem.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Azaruc
  • Registratie: Mei 2010
  • Laatst online: 29-07-2024
Sjaaky schreef op maandag 14 november 2011 @ 11:30:
De PATH environment variabele bevat het pad waar python.exe staat?
Ja, dat had ik al gedaan. Ik kon ook het commando uitvoeren vanuit de prompt, maar ik kreeg een andere foutmelding. Ik kan pas in het weekend weer nagaan wat het probleem is, want die pc staat bij mijn ouders thuis. Dus eerst vanavond maar even proberen op de laptop :)

D3 Profile


Acties:
  • 0 Henk 'm!

  • Robinski
  • Registratie: September 2000
  • Laatst online: 12-07 19:39

Robinski

A.K.A. RHarmsen

* Robinski heeft ook dit weekend zijn eerste basis botje in elkaar gezet met C#

Eens zien of ik tijd en kunde heb de bot (lees: mieren) slimmer te maken
Ook ik zat te denken aan verschillende rollen/tijpes te laten zijn om zo effectiever bezig te zijn.
Daarnaast moeten mijn mieren nog een stuk slimmer worden m.b.t. path finding, nu lopen ze zich zelf vaak vast tegen muren.


Ben ook wel benieuwd of de starter pakkage nog verbeterd kan worden in de zin van efficiëntie en mogelijkheden.

10xAXItec AC-265P = 2,650kWp @ SolarEdge SE2200 - PVOutput


Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
SaphuA schreef op maandag 14 november 2011 @ 11:33:
Hmm. De C# starter package zegt dat er ook een bot-input 'r' is, voor remove food. Maar op deze (http://aichallenge.org/specification.php) pagina zie ik er niets over terug. Iemand enig idee?
Die is obsolate. Het starterspacket doet niet veel verkeerd, maar niet alles is nuttig.

[ Voor 5% gewijzigd door Bolukan op 14-11-2011 11:40 ]


Acties:
  • 0 Henk 'm!

  • Corniel
  • Registratie: April 2002
  • Laatst online: 31-03 14:56

Corniel

De wereld is gek!

Dit weekend bezig geweest met het opschonen van mijn code. Ik had al verschillende evaluaties voor verschillende 'rollen', maar nu heb ik dat ook in code goed gescheiden.

Heb de verschillende strategieën geimplementeerd:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
this.Strategies = new List<Strategy>()
{
    // Always raze if you can.
    new StrategyRazeHill(this),
    // Harvest if you cann.
    new StrategyHarvest(this),
    // Attack (move)
    new StrategyAttackEnemyAnts(this),
    // Else stay
    new StrategyDefendEnemyAnts(this),
    // Run to attacking enemy.
    new StrategyDefendOwnHill(this),
    // Run to enemy hill.
    new StrategyAttackEnemyHill(this),
    // Explore!
    new StrategyExplore(this),
    // Random.
    new StrategyNone(),
};


Wat dus concreet betekent dat ik altijd een hill oploop als ie leeg is.
Als dat niet kan kijk ik of een ant wellicht voedsel kan vinden (ik reken het pad naar voedsel alleen uit voor de dichtsbijzijnde ant), Daarna of ik een ant winnend kan slopen (overmacht vereist), enzovoorts. Werkt best aardig.

Op dit moment win ik op open kaarten soepel van de verbeterde versie van Sjaakie (Mighty_Servants). Voordeel van deze aanpak vind ik ook dat je veel makkelijker kleine bugs kan vinden.

Zo bleek dat ik voedsel probeerde te pakken dat gegarandeerd voor de tegenstander was. Resultaat: beide een ant kwijt, hij wel het voedsel. Zonde van je ant, niet meer doen. :)

while (me.Alive) {
me.KickAss();
}


Acties:
  • 0 Henk 'm!

  • SaphuA
  • Registratie: September 2005
  • Laatst online: 10-09 22:00
.

[ Voor 99% gewijzigd door SaphuA op 31-01-2022 15:55 ]


Acties:
  • 0 Henk 'm!

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 12-09 10:25
Misschien heeft er iemand een server beschikbaar waar we een got competitie op kunnen starten?
https://github.com/berak/ants-tcp
http://forums.aichallenge.org/viewtopic.php?f=25&t=1505

Acties:
  • 0 Henk 'm!

  • Corniel
  • Registratie: April 2002
  • Laatst online: 31-03 14:56

Corniel

De wereld is gek!

SaphuA schreef op maandag 14 november 2011 @ 12:41:
Is er iemand die zijn (gecompileerde) bot wil delen?
Tuurlijk: www.corniel.nl/download/Ants/Truusje

Ja, mijn AI heet Truusje. :)

while (me.Alive) {
me.KickAss();
}


Acties:
  • 0 Henk 'm!

  • SaphuA
  • Registratie: September 2005
  • Laatst online: 10-09 22:00
.

[ Voor 99% gewijzigd door SaphuA op 31-01-2022 15:55 ]


Acties:
  • 0 Henk 'm!

  • Cloud
  • Registratie: November 2001
  • Laatst online: 14-09 00:02

Cloud

FP ProMod

Ex-moderatie mobster

Volgens mij is de botnaam letterlijk de executable naam die je opgeeft. Ik zie bij een lokale run 'current.exe' staan. :)

Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana


Acties:
  • 0 Henk 'm!

  • IWriteCode
  • Registratie: Juli 2000
  • Laatst online: 08-09 13:10

IWriteCode

Less = more

Topicstarter
Ik heb ook een paar bots online gezet. Dit zijn de bots die ik zelf gebruik om m'n nieuwe bots te testen... haalden rond de 60 skill:

http://www.freeduino.eu/tweakers/Diffusion111105.exe
http://www.freeduino.eu/tweakers/Diffusion111105_2.exe
http://www.freeduino.eu/tweakers/Diffusion111108.exe

Less = more


Acties:
  • 0 Henk 'm!

  • SaphuA
  • Registratie: September 2005
  • Laatst online: 10-09 22:00
.

[ Voor 97% gewijzigd door SaphuA op 31-01-2022 15:55 ]


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 13-09 09:39

Janoz

Moderator Devschuur®

!litemod

Geen idee eigenlijk. Ik zie het voornamelijk wanneer ik meerdere met dezelfde naam mee laat doen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • SumBeam
  • Registratie: Maart 2006
  • Laatst online: 05-09 15:39
Ik krijg fijne virusmeldingen over je bestanden van F-Secure...? Of nouja, virus... Hij zegt dat het een harmfull program is. Ken F-Secure verder niet, gezien ik @ stage zit.

[ Voor 10% gewijzigd door SumBeam op 14-11-2011 14:49 ]


Acties:
  • 0 Henk 'm!

  • Cloud
  • Registratie: November 2001
  • Laatst online: 14-09 00:02

Cloud

FP ProMod

Ex-moderatie mobster

Zijn er mensen die ook last hebben van timeouts in C#? Had mijn eerste testversie geüpload maar op het moment dat ik drie ants heb, is er blijkbaar al een timeout.. En dan heb ik alleen nog maar de tutorial doorlopen en ingebouwd, nothing fancy.

@SaphuA
Geen idee eigenlijk! Ik heb net nog getest maar ik krijg lokaal altijd 'current.exe' te zien.

Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana


Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 10-09 20:32
Cloud schreef op maandag 14 november 2011 @ 14:48:
Zijn er mensen die ook last hebben van timeouts in C#? Had mijn eerste testversie geüpload maar op het moment dat ik drie ants heb, is er blijkbaar al een timeout.. En dan heb ik alleen nog maar de tutorial doorlopen en ingebouwd, nothing fancy.
Nope, Maar de tutorial is dan ook maar om je een begin te geven. Het is verre van optimaal, de oplossing die ze je daarin laten bouwen.

Acties:
  • 0 Henk 'm!

  • Cloud
  • Registratie: November 2001
  • Laatst online: 14-09 00:02

Cloud

FP ProMod

Ex-moderatie mobster

Dat ongetwijfeld :+ Maar ik had niet verwacht dat de code zo niet-optimaal zou zijn dat hij niet overweg zou kunnen met 3 ants. Goed ik ga de timings eerst lokaal eens testen, misschien zie ik inderdaad iets over het hoofd en neem ik echt veel meer dan de turn tijd. :)

Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana


Acties:
  • 0 Henk 'm!

  • IWriteCode
  • Registratie: Juli 2000
  • Laatst online: 08-09 13:10

IWriteCode

Less = more

Topicstarter
SumBeam schreef op maandag 14 november 2011 @ 14:47:
Ik krijg fijne virusmeldingen over je bestanden van F-Secure...? Of nouja, virus... Hij zegt dat het een harmfull program is. Ken F-Secure verder niet, gezien ik @ stage zit.
Mja, tis een exe... zal wel het probleem zijn :-)

All your base are belong to us!

Less = more


Acties:
  • 0 Henk 'm!

  • SaphuA
  • Registratie: September 2005
  • Laatst online: 10-09 22:00
.

[ Voor 99% gewijzigd door SaphuA op 31-01-2022 15:55 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Ik ben nu bij V21 aangekomen... Man man man wat gaat er veel tijd zitten in het oplossen van buggs en het finetunen van de strategie...

Maar hij schaalt nu efficient tot 500 mieren en zonder timeouts tot 1000.

Over een uurtje een nieuwe wedstrijd... Eens kijken wat de resultaten gaan zijn...

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:39
Bolukan schreef op vrijdag 11 november 2011 @ 23:25:
@Soultaker, ik vind je mooie patronen maken. Is het de aantrekkingskracht van de hill gecombineerd met afstoting ten opzichte van een ideale afstand tussen de ants?
Het is nog veel simpeler. Voedsel trekt mieren aan; niet-aangetrokken mieren stoten elkaar af (waarbij mieren die al ver van elkaar af zitten genegeerd worden). Mierenhopen negeer ik compleet; mieren lijken zich te centeren rondom de mierenhoop maar dat komt alleen omdat vanaf daar nieuwe mieren gespawned worden.

Het is een hele simpele implementatie omdat ik eigenlijk geen tijd heb voor de challenge (vandaar dat ik me ook niet aangemeld heb voor het GoT-team) en je ziet vaak dat een beetje doelgerichte speler me zo kan verslaan omdat ik ten eerste mijn mieren niet bescherm tegen vijanden, en ten tweede geen moeite doe om m'n eigen mierenhoop te verdedigen.

Maar tegen andere spelers die ook maar wat random rondlopen werkt het nog heel aardig, omdat ik wel vrij veel voedsel weet te verzamelen.

Acties:
  • 0 Henk 'm!

  • Waster
  • Registratie: September 2006
  • Laatst online: 14-04 17:49
Soultaker schreef op maandag 14 november 2011 @ 17:50:
[...]

Het is nog veel simpeler. Voedsel trekt mieren aan; niet-aangetrokken mieren stoten elkaar af (waarbij mieren die al ver van elkaar af zitten genegeerd worden). Mierenhopen negeer ik compleet; mieren lijken zich te centeren rondom de mierenhoop maar dat komt alleen omdat vanaf daar nieuwe mieren gespawned worden.

Het is een hele simpele implementatie omdat ik eigenlijk geen tijd heb voor de challenge (vandaar dat ik me ook niet aangemeld heb voor het GoT-team) en je ziet vaak dat een beetje doelgerichte speler me zo kan verslaan omdat ik ten eerste mijn mieren niet bescherm tegen vijanden, en ten tweede geen moeite doe om m'n eigen mierenhoop te verdedigen.

Maar tegen andere spelers die ook maar wat random rondlopen werkt het nog heel aardig, omdat ik wel vrij veel voedsel weet te verzamelen.
Maar zit je dan niet met het probleem dat je mieren in hoekjes vastlopen. Ik heb een soortgelijke implementatie, maar mijn mieren doen het erg slecht in van die grillige mazen met overal hoekjes.

Acties:
  • 0 Henk 'm!

  • Toryu
  • Registratie: December 2010
  • Laatst online: 19-05 09:57
Misschien een stomme vraag, maar is het c++ package ook onder Windows aan de gang te krijgen? Ik ben niet zo heel goed in programmeren, maar dit lijkt me wel een mooie manier om er wat beter in te worden ;) Alleen het lijkt erop dat het hoofdprogramma altijd main.cpp moet zijn. Ofzo.

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:39
Waster schreef op maandag 14 november 2011 @ 19:51:
Maar zit je dan niet met het probleem dat je mieren in hoekjes vastlopen.
Ja, dat is inderdaad één van de vele problemen met zo'n simpele aanpak. :p (Maar doordat mieren elkaar afstoten zitten ze niet allemaal in hoekjes vast, meestal.)
Toryu schreef op maandag 14 november 2011 @ 21:59:
Misschien een stomme vraag, maar is het c++ package ook onder Windows aan de gang te krijgen? [..] Alleen het lijkt erop dat het hoofdprogramma altijd main.cpp moet zijn. Ofzo.
MyBot.cpp officieel (hoewel ik niet weet of 't uitmaakt, aangezien ze gewoon alle bestanden compileren en bij elkaar linken). Maar waarom zou dat onder Windows niet kunnen?

Acties:
  • 0 Henk 'm!

  • Toryu
  • Registratie: December 2010
  • Laatst online: 19-05 09:57
Compilen is nu gelukt. Stom toeval eigenlijk. Ik had eerst Eclipse geprobeerd, toen wxDevcpp, toen commandline en daarna Code::Blocks. En die deed het. Het zal vast iets heel eenvoudigs zijn om het in die andere IDE's aan de gang te krijgen, maar ik heb eigenlijk gewoon geen flauw idee wat ik aan het doen ben...

Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
Dank voor de uitleg, in het team zitten we te kijken hoe we de afstand tussen mieren (en efficiency van eten) kunnen verhogen.

Met een beetje normale ant die verspreid, eet en eventueel een hill raid, zit je in de top 10% (top 600). Voor de top 1% (Top 60) moet je nog extra zaken goed op orde hebben.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 13-09 09:39

Janoz

Moderator Devschuur®

!litemod

Even een nieuwe versie geupload. Lokaal werkt hij goed, maar online blijkt hij er nu een potje van te maken. Vanmiddag maar eens even kijken wat nu precies het probleem is.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Cloud
  • Registratie: November 2001
  • Laatst online: 14-09 00:02

Cloud

FP ProMod

Ex-moderatie mobster

Janoz schreef op dinsdag 15 november 2011 @ 09:20:
Even een nieuwe versie geupload. Lokaal werkt hij goed, maar online blijkt hij er nu een potje van te maken. Vanmiddag maar eens even kijken wat nu precies het probleem is.
Ik lijk in elk geval van mijn timeouts af te zijn; maar de echte intelligentie moet nog komen. Gisteravond een aantal influence maps ingebouwd (simpele variant), hopelijk vanavond nog iets beter maken en dan de mieren aanpassen om gebruik te maken van de influence map.

edit:
Overigens moet de huidige variant die online staat van mij het nog geheel zonder influence maps of pathfinding of wat dan ook doen. Hij werkt dus eigenlijk alleen op open maps correct :+ Vandaar de erg lage ranking.

[ Voor 17% gewijzigd door Cloud op 15-11-2011 15:00 ]

Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana


Acties:
  • 0 Henk 'm!

  • Corniel
  • Registratie: April 2002
  • Laatst online: 31-03 14:56

Corniel

De wereld is gek!

Zojuist een sterk verbeterde versie geüpload. Mijn explore-strategie was mijn zwakke schakel (en die is toch uiteindelijk heel belangrijk). Ik zou nu duidelijk sterker moeten zijn dan Mighty_Servants (Sjaakie) en Diffusion (IWriteCode). Nu kijken of ie het in het echt ook waarmaak. (Dat lijkt me wel wat: nummer een van Tweakers.net). :)

while (me.Alive) {
me.KickAss();
}


Acties:
  • 0 Henk 'm!

  • IWriteCode
  • Registratie: Juli 2000
  • Laatst online: 08-09 13:10

IWriteCode

Less = more

Topicstarter
Hier de laatste dagen met name bezig geweest met debuggen en het inzichtelijk maken van de verschillende influence maps die ik heb... het grafisch weergeven van de data die beschikbaar is helpt mij heel erg met het debuggen.
Heb nu een GUI waarin de kaarten per beurt getoont worden... ik laat mijn bot een spel spelen met de -I en -O optie en lees die vervolgens in... werkt erg goed!

Less = more


Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
Kun je meer vertellen over de werking van -I en -O. Heeft dat te maken met de ingebouwde Visualiser

Acties:
  • 0 Henk 'm!

  • IWriteCode
  • Registratie: Juli 2000
  • Laatst online: 08-09 13:10

IWriteCode

Less = more

Topicstarter
Nee, die zet, als je lokaal een game draait, de input en de output bestanden van je bots in de logs directory. Deze kan je dan vervolgens inlezen in je bot om te debuggen.
code:
1
2
3
4
5
6
15-11-2011  10:28           191.008 0.bot0.input
15-11-2011  10:28           101.811 0.bot0.output
15-11-2011  10:28            69.046 0.bot1.input
.. etc
15-11-2011  10:28           199.778 0.replay
15-11-2011  10:28           180.849 replay.0.html

Less = more


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 13-09 09:39

Janoz

Moderator Devschuur®

!litemod

Volgende potje van de nieuwste versie gaat gewoon wel goed. Dat loopt al een stuk beter dan mijn dramatische faal. Ik dacht eerst aan een brakke upload oid. Maar nu ik zie dat hij wel gewoon werkt heb ik de bug kunnen achterhalen. Naast de hill ligt voedsel. Het berekende pad om dat voedsel te pakken houd geen rekening met de hill terwijl de ants niet op de hill mogen komen. De mier probeert telkens naar het voedsel te gaan, maar mag vervolgens niet verder.


Wel een beetje jammer dat het ongeveer 5u tussen elk potje zit. Misschien moet ik binnenkort toch maar eens ff een ip bot ergens aan knopen. Is er al iemand die een got servertje omhoog getrapt heeft zodat we even onderling kunnen matten?

[ Voor 16% gewijzigd door Janoz op 15-11-2011 16:24 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

De bot van het GotAnts team (for lack of a real name) laat ik regalmatig potjes draaien op http://ants.fluxid.pl. Maar als iemand een got-server kan draaien zou dat helemaal mooi zijn.

Dit is de bot: http://ants.fluxid.pl/player/GotAnts

Grootste zwakte is de verdediging.

Acties:
  • 0 Henk 'm!

  • MoleM
  • Registratie: Oktober 2007
  • Laatst online: 10-01 17:56
Verwijderd schreef op dinsdag 15 november 2011 @ 16:44:
De bot van het GotAnts team (for lack of a real name) laat ik regalmatig potjes draaien op http://ants.fluxid.pl. Maar als iemand een got-server kan draaien zou dat helemaal mooi zijn.

Dit is de bot: http://ants.fluxid.pl/player/GotAnts

Grootste zwakte is de verdediging.
In potje #36372 zie ik rond beurt 395 dat er bij row 73/col 51 ook nog onderlinge botsingen plaatsvinden

Acties:
  • 0 Henk 'm!

Verwijderd

Na lang nadenken toch een exploration code geimplementeerd die tenminste nog een beetje presteert...

De hybride oplossing met zowel diffusion maps als A* zou nu toch wel ver af moeten zijn...

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 13-09 09:39

Janoz

Moderator Devschuur®

!litemod

Zo, bugje gefixed. Minor tweaks bij het voedsel verzamelen en vervolgens een slachtveld aanrichten :)

Ja, de spelfout is bedoeld

[ Voor 14% gewijzigd door Janoz op 15-11-2011 20:39 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Janoz schreef op dinsdag 15 november 2011 @ 20:37:
Zo, bugje gefixed. Minor tweaks bij het voedsel verzamelen en vervolgens een slachtveld aanrichten :)

Ja, de spelfout is bedoeld
Mooie wedstrijd, bijzonder effectief!

Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
MoleM schreef op dinsdag 15 november 2011 @ 18:59:
[...]

In potje #36372 zie ik rond beurt 395 dat er bij row 73/col 51 ook nog onderlinge botsingen plaatsvinden
Ja, oeps.
Debug-debug-debug :P

Edit: Een optie is een time-out (intern afgebroken doorrekening), waardoor een ant nog geen move had, terwijl de ander erheen bewoog.

[ Voor 20% gewijzigd door Bolukan op 15-11-2011 23:17 ]


Acties:
  • 0 Henk 'm!

Verwijderd

MoleM schreef op dinsdag 15 november 2011 @ 18:59:
[...]

In potje #36372 zie ik rond beurt 395 dat er bij row 73/col 51 ook nog onderlinge botsingen plaatsvinden
Helaas is fluxid.pl gereset voordat ik de tijd had naar dat potje te kijken :(

Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 10-09 20:32
Naast opmerkingen die al gemaakt zijn, de timeout in dit potje http://ants.fluxid.pl/replay.448 is een veel groter probleem. Timeout bij 84 ants isniegoe ;)

Acties:
  • 0 Henk 'm!

  • Cloud
  • Registratie: November 2001
  • Laatst online: 14-09 00:02

Cloud

FP ProMod

Ex-moderatie mobster

Gisteravond (of nou ja vannacht....) nieuwe versie ingestuurd. Tot mijn grote schrik weer een timeout. Bekijk ik de replay, zie ik echter dat 6 van de 8 bots op datzelfde moment een timeout krijgen en even later de andere twee. Ligt dus denk ik niet aan mijn eigen bot, maar wel een beetje jammer. Hij begon zo leuk!

Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana


Acties:
  • 0 Henk 'm!

  • IWriteCode
  • Registratie: Juli 2000
  • Laatst online: 08-09 13:10

IWriteCode

Less = more

Topicstarter
Ja, servers lijken niet helemaal 100% stabiel...

Less = more


Acties:
  • 0 Henk 'm!

  • SaphuA
  • Registratie: September 2005
  • Laatst online: 10-09 22:00
.

[ Voor 98% gewijzigd door SaphuA op 31-01-2022 15:53 ]


Acties:
  • 0 Henk 'm!

  • Cloud
  • Registratie: November 2001
  • Laatst online: 14-09 00:02

Cloud

FP ProMod

Ex-moderatie mobster

Net weer een game gehad, ook weer een timeout op een volstrekt willekeurig moment. Beetje jammer. Wel zie ik dat er vooral op het gebied van verkenning nog veel werk nodig is. Ze geven nu behoorlijk de voorkeur (*kuch*) aan het noorden terwijl dat in een maze niet echt praktisch is :+

Nette map SaphuA! Moet inderdaad ook eens een combinatieplaatje maken van omgeving en influence, dat kijkt wel zo prettig :)

Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 13-09 09:39

Janoz

Moderator Devschuur®

!litemod

Vanacht een leuke pot gespeeld waarin ik voor het eerst ook online mijn strategy wijziging zie terugkomen.

http://aichallenge.org/vi....php?game=97877&user=9218

Omschakelpunten zijn bij 750 en bij 875 :)

Bij beurt 575 heb ik de volledige kaart al ontdekt dus dan krijgen alle mieren die niks in de directe omgeving hebben geen orders meer. Vandaar dat dan ineens mijn hele veld stilvalt. Daar moet ik nog maar even iets mee doen denk ik.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Koopmans
  • Registratie: December 2004
  • Laatst online: 22:45
Zag het... mooie pot trouwens

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 13-09 09:39

Janoz

Moderator Devschuur®

!litemod

Ah, Koopmans, je leeft nog :D. Die replays nog gekeken die ik je gestuurd had?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Koopmans
  • Registratie: December 2004
  • Laatst online: 22:45
Nog niet... heb vandaag een zieke thuis zitten. Ben dus niet aan het werk.
Was wat bezig met diffusion, maar krijg nog niet de gewenste resultaten.

Acties:
  • 0 Henk 'm!

  • Jegorex
  • Registratie: April 2004
  • Laatst online: 03-09 23:24
Janoz schreef op woensdag 16 november 2011 @ 10:26:
Vanacht een leuke pot gespeeld waarin ik voor het eerst ook online mijn strategy wijziging zie terugkomen.

http://aichallenge.org/vi....php?game=97877&user=9218

Omschakelpunten zijn bij 750 en bij 875 :)

Bij beurt 575 heb ik de volledige kaart al ontdekt dus dan krijgen alle mieren die niks in de directe omgeving hebben geen orders meer. Vandaar dat dan ineens mijn hele veld stilvalt. Daar moet ik nog maar even iets mee doen denk ik.
Als alles verkent is de bots (in groepjes) laten uitspreiden zodat je zo veel mogelijk van de map ziet en meteen nieuwe food kunt oppakken?

Acties:
  • 0 Henk 'm!

  • SaphuA
  • Registratie: September 2005
  • Laatst online: 10-09 22:00
.

[ Voor 100% gewijzigd door SaphuA op 31-01-2022 15:53 ]


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 13-09 09:39

Janoz

Moderator Devschuur®

!litemod

Tot nu toe had ik dit gedrag nog niet gezien (potje al gewonnen of druk aan het aanvallen op het moment dat ik de hele kaart al had). Explore is een taak die een mier pas krijgt als er niks anders is. Tot nu toe altijd aangenomen dat er altijd wel wat te exploren viel. Toch nog maar even een extra order toevoegen om te verspreiden wanneer een mier nog steeds geen orders gekregen heeft.
SaphuA schreef op woensdag 16 november 2011 @ 15:17:
Kan iemand mij vertellen wat er gebeurt als een Hill gerazed is? Krijg je hem dan de volgende beurt gewoon niet meer binnen?
Nee, die krijg je niet meer binnen.
En het is mogelijk dat je een eigen hill terug kunt razen zolang je nog ants hebt, toch?
Nee, die hill is voor altijd verloren

[ Voor 35% gewijzigd door Janoz op 16-11-2011 15:19 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

D-Raven schreef op woensdag 16 november 2011 @ 08:30:
Naast opmerkingen die al gemaakt zijn, de timeout in dit potje http://ants.fluxid.pl/replay.448 is een veel groter probleem. Timeout bij 84 ants isniegoe ;)
Hoewel de tcp server het meldt als een timeout is het in werkelijkheid een assert die triggert. Er opent een crash window op mijn computer en dan krijgt de server niet snel genoeg een reactie (eigenlijk helemaal niet, maar dan is er al een timeout). Zo af en toe lijken orders niet goed te worden uitgevoerd (of niet goed bijgehouden in de bot natuurlijk).

Let op als je je eigen hills niet meer doorkrijgt. Als al je ants uit range van je eigen hill zijn krijg je hem ook niet meer door, maar dat betekent nog niet dat hij al gerazed is.

Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 10-09 20:32
Verwijderd schreef op woensdag 16 november 2011 @ 15:54:
[...]

Let op als je je eigen hills niet meer doorkrijgt. Als al je ants uit range van je eigen hill zijn krijg je hem ook niet meer door, maar dat betekent nog niet dat hij al gerazed is.
Dat vermoeden had ik al.. Toen straks bevestigd in een test potje.
Ach ja, ik wil toch ten alle tijden een paar ants in de buurt van mn hill hebben voor verdediging dus zo'n probleem is het nou ook weer niet.

Verwijderd

Versie 27 is af...

Nu zit ik inclusief optimalisaties rond de 350 a 450 msec per turn... Meer functies ga ik er dus niet in krijgen... Ik laat deze lekker draaien tot er een bug gevonden wordt of een timeout gebeurd...

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:39
SaphuA schreef op woensdag 16 november 2011 @ 15:17:
Kan iemand mij vertellen wat er gebeurt als een Hill gerazed is? Krijg je hem dan de volgende beurt gewoon niet meer binnen? En het is mogelijk dat je een eigen hill terug kunt razen zolang je nog ants hebt, toch?
Als een hill gerazed wordt, wordt 'ie vernietigd. Het zou wel leuk zijn als 'ie in plaats daarvan overgenomen werd door de overwinnaar.

Dat voorkomt ook van die stomme potjes met twee zwakke spelers en één sterke waarbij de sterke speler verliest omdat de zwakke spelers stomtoevallig elkaars hill razen, en de sterke speler (die wél z'n hill verdedigde en misschien ook wel ruimschoots de meeste mieren in het spel heeft) verliest op punten. Dan speel je gewoon een vast aantal beurten en wie dan het meeste aantal hills in bezit heeft, heeft gewonnen.

Of je geeft elke speler een eindscore als 25×hills + ants of iets dergelijks, dat voorkomt een heleboel ties.

[ Voor 6% gewijzigd door Soultaker op 17-11-2011 17:43 ]


  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
Haha, wat is sterke en wat is zwak. Uiteindelijk is raiden wat telt. Niet verdediging of aantal mieren.

Dit is nou typisch survival of the fittest. Niet de grootste dinosaurus (met verdediging en veel mieren) wint, maar het slimme zoogdier (dat sneaky zijn punten scoort).

  • EdwinG
  • Registratie: Oktober 2002
  • Laatst online: 12-09 20:53
Goed, de grootste uitdaging met PHP als taal is blijkbaar het geheugengebruik (voor mij tenminste). Een named array brengt enorm veel overhead met zich mee. Uiteindelijk door o.a. bitwise werken toch weer binnen de grensen kunnen komen.
Wat ik nu doe: Van elke bezochte locatie een map bijhouden welke richting(en) opgegaan kan/moet worden om een ander punt (20 of minder keer lopen) te bereiken. Verder, als één van mijn mieren geen duidelijk doelwit heeft, loopt deze gewoon continu in dezelfde richting, voor zover dat kan. Geeft een veel ruimer beeld, en meer kans om voedsel te vinden. Nadeel op dit moment is dat mijn mieren nogal enkelingen zijn, waardoor ze snel uitgeschakeld worden. Dat is dan ook de volgende uitdaging die ik heb.

Bezoek eens een willekeurige pagina


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:39
Bolukan schreef op donderdag 17 november 2011 @ 19:34:
Haha, wat is sterke en wat is zwak. Uiteindelijk is raiden wat telt. Niet verdediging of aantal mieren.
Ik heb het zien gebeuren met de huidige nummer 1 versus mensen met aanzienlijk lagere rank. Ik denk dat het wenselijk is dat de score zo veel mogelijk de inherente sterkte van de speler reflecteert. Door goed te spelen kun je jouw nest wel beschermen tegen zwakke tegenstanders, maar het is praktisch onmogelijk om af te dwingen dat je tegenstanders niet vroeg in het spel elkaars nesten vernietigen waardoor jij verliest. Dat vind ik een zwakte in het puntensysteem.

Je kunt het vergelijken met de Nederlandse damkampioenschappen, waarbij tegenwoordig bonuspunten worden gegeven bij remise (wanneer één van de spelers minstens drie schijven voor staat). Dat veranderd het spel niet fundamenteel, maar het zorgt ervoor dat de puntentelling in competities met topdammers (die tegen elkaar vaak remise spelen) nauwkeuriger hun relatieve prestaties reflecteert.

Acties:
  • 0 Henk 'm!

  • Koopmans
  • Registratie: December 2004
  • Laatst online: 22:45
Volgens mij krijg je als lone survivor weer bonuspunten, dus kun je alsnog winnen.

Acties:
  • 0 Henk 'm!

Verwijderd

Je krijgt alleen bonuspunten als de enige overgebleven tegenstander(s) disconnecten voor zoverik het heb begrepen. Dat voorkomt dat je, als als die eerste staat, de bot laat crashen zodat de tegenstander jouw punten niet meer kan krijgen.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 13-09 09:39

Janoz

Moderator Devschuur®

!litemod

Aan de andere kant vind ik dat ik hier terecht gewonnen heb, ondanks dat kazemyari veel meer mieren heeft.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
Eerste vorm van symmetrie-ontdekking gebouwd. Idee van het weekend verder uitwerken en dan ook koppelen aan de ants. Iemand al ervaring mee? Gaat dit ook echt helpen in de prestatie?

Acties:
  • 0 Henk 'm!

  • Corniel
  • Registratie: April 2002
  • Laatst online: 31-03 14:56

Corniel

De wereld is gek!

Bolukan schreef op zaterdag 19 november 2011 @ 00:44:
Eerste vorm van symmetrie-ontdekking gebouwd. (..)

Gaat dit ook echt helpen in de prestatie?
Wellicht. Het maakt het eventueel mogelijk om te voorspellen waar vijandelijke heuvels zij, en daar kan je dan heenlopen. Aan de andere kant is de belangrijkste reden doorgaans dat je niet bij een vijandelijke heuvel aankomt niet dat je geen idee hebt, maar dat er mieren van de tegenstander hinderlijk in de weg lopen. :D

while (me.Alive) {
me.KickAss();
}


Acties:
  • 0 Henk 'm!

  • Vaan Banaan
  • Registratie: Februari 2001
  • Niet online

Vaan Banaan

Heeft ook Apache ontdekt

Symmetrie ontdekking was het eerste waar ik mee begonnen ben, maar heb ik snel laten varen.
De velden zijn over het algemeen spiegelingen, rotaties en verschuivingen van gelijke stukken map
Maze
code:
1
2
3
4
5
1111/
111/2
11/22
1/222
/2222

Random walk
code:
1
2
3
4
5
6
111111222222 schui- 222211111122                  223333441122
111111222222  ven   222211111122                  222233444422
111111222222  ->    222211111122  Per 2 kolommen  222211444444
333333444444        333333444444  alles een rij   332211114444
333333444444        333333444444  naar beneden    333311111144
333333444444        333333444444                  333333111122

Ik dacht dat misschien te kunnen gebruiken bij het spawnen van food, of inderdaad het bepalen van enemy hills. Maar vooral bij meerdere spelers zie ik, met de games visualizer op de site, dat een hill in no time wordt gerazed
Ik heb mijn idee, om van hele map alle squares A* te berekenen,ook laten varen. De laatste hersenkronkel is nu een hybride vorm van kleinere A* grids met een grid van waypoints. Het idee is, dat een mier op een waypoint minimaal één andere waypoint moet kunnen zien, om dan een grove route naar een willekeurig ander waypoint te kunnen bewandelen. Om op die manier een goede diffusion over de gehele map voor elkaar te kunnen krijgen.
Maar nog steeds niets geprogrammeerd, ik moet er dit weekend echt een begin mee maken, anders wordt het te kort dag. Sowieso heb ik nog helemaal niet over een battle strategy nagedacht. Alleen dus over hoe een mier zo snel mogelijk op een bepaalde plek kan komen. Of later kan gebruiken om mieren snel naar een battlezone te sturen. Of terug te roepen, als mijn hill(s) bedreigd wordt/worden

500 "The server made a boo boo"


Acties:
  • 0 Henk 'm!

  • Corniel
  • Registratie: April 2002
  • Laatst online: 31-03 14:56

Corniel

De wereld is gek!

Yeah, tweede op de Tweakers.NET lijst. :)

while (me.Alive) {
me.KickAss();
}


Acties:
  • 0 Henk 'm!

  • KopjeThee
  • Registratie: Maart 2005
  • Niet online
Vaan Banaan schreef op zaterdag 19 november 2011 @ 15:47:
Ik heb mijn idee, om van hele map alle squares A* te berekenen,ook laten varen. De laatste hersenkronkel is nu een hybride vorm van kleinere A* grids met een grid van waypoints. Het idee is, dat een mier op een waypoint minimaal één andere waypoint moet kunnen zien, om dan een grove route naar een willekeurig ander waypoint te kunnen bewandelen.
Als ik hier kijk:
http://aichallenge.org/maps.php

Dan zie ik dat er maar iets van 30 maps zijn. Je kunt ze ook downloaden. Misschien is het handiger om alle intensieve berekeningen vooraf te doen, en de resultaten hard op te nemen in je code. Bijvoorbeeld locaties van waypoints en hun verbindingen, locaties van de hills, etc. Dan hoef je alleen nog maar zo snel mogelijk te ontdekken welke map je aan het spelen bent. Ik zie dat je in ieder geval bij aanvang de afmetingen doorkrijgt van de map, dat zou een boel moeten uitsluiten. Ook zou je eventueel offline wat herkenningspunten kunnen bepalen, en die in de code opnemen.

[ Voor 4% gewijzigd door KopjeThee op 19-11-2011 18:05 ]


Acties:
  • 0 Henk 'm!

  • Corniel
  • Registratie: April 2002
  • Laatst online: 31-03 14:56

Corniel

De wereld is gek!

KopjeThee schreef op zaterdag 19 november 2011 @ 18:02:
[...]

Als ik hier kijk: (..)

Ook zou je eventueel offline wat herkenningspunten kunnen bepalen, en die in de code opnemen.
Los van dat het net gezegd is (eerder het tegendeel) dat deze kaarten ook tijdens de echte finale gebruikt worden, is naar mijn bescheiden mening het ontdekken van hoe de kaart eruit ziet helemaal niet zo belangrijk. Veel belangrijker is dat je mieren zich mooi verspreiden, een zo groot mogelijk gebied controleren, en zich goed staande houden in ant2ant battles.

Al dit soort strategieën kosten veel tijd, en leveren imho veel minder op.

while (me.Alive) {
me.KickAss();
}


Acties:
  • 0 Henk 'm!

Verwijderd

Voor de final contest worden toch allemaal nieuwe maps gebruikt. Hardcoden van maps is toch niet mogelijk?

Acties:
  • 0 Henk 'm!

  • DizzyVacation
  • Registratie: November 2006
  • Niet online
Hebben meer mensen dat in firefox alleen maar de zoom-out en center map buttons worden getoond?
Wanneer ik er met mijn muis overheen ga krijg ik wel de omlijning en de tekst te zien. Ze werken ook correct wanneer ik erop klik, maar het is niet echt handig.

In internet explorer werkt het wel.

Acties:
  • 0 Henk 'm!

  • Corniel
  • Registratie: April 2002
  • Laatst online: 31-03 14:56

Corniel

De wereld is gek!

IngmarBlonk schreef op zaterdag 19 november 2011 @ 21:17:
Hebben meer mensen dat in firefox alleen maar de zoom-out en center map buttons worden getoond? (..)

In internet explorer werkt het wel.
Bij mij worden in FF de knoppel wel getoond (in grijswaarden), maar ze doen het wel. In IE en Opera ziet allers er prima uit.

while (me.Alive) {
me.KickAss();
}


Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
Ook last van, vooral als het scherm breed staat.

Acties:
  • 0 Henk 'm!

  • Marce
  • Registratie: Oktober 2007
  • Laatst online: 31-07 11:30

Marce

Het is Marc met een C!

Ik ga hier ook eens naar kijken, klinkt allemaal erg interresant, ik heb alleen vrij weinig ervaring met programmeren voor de pc, en zit meer op microprocessor niveau enzo. We gaan het eens zien iig. Ik ga met c++ aan de slag, dat wel ;)

Acties:
  • 0 Henk 'm!

  • Toryu
  • Registratie: December 2010
  • Laatst online: 19-05 09:57
Hoe kan in c++ data opslaan voor meerdere turns? Zodat ik bijvoorbeeld maar 1 x een pad hoef te plannen voor een mier.

Ik zit al een paar dagen te klooien, maar kom maar niet op gang... :S

edit:
Ik heb al wel een eigen class gemaakt, maar ik wil gebruik kunnen maken van getLocation in State.h. Dat krijg ik niet voor elkaar...

[ Voor 27% gewijzigd door Toryu op 21-11-2011 22:11 ]


Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
Toryu schreef op maandag 21 november 2011 @ 22:00:
Hoe kan in c++ data opslaan voor meerdere turns? Zodat ik bijvoorbeeld maar 1 x een pad hoef te plannen voor een mier.

Ik zit al een paar dagen te klooien, maar kom maar niet op gang... :S

edit:
Ik heb al wel een eigen class gemaakt, maar ik wil gebruik kunnen maken van getLocation in State.h. Dat krijg ik niet voor elkaar...
Zal je een zetje geven: Belangrijk is de ant met beoogde route stateful te maken:
  • In Ant class beoogde route EN eerstvolgende locatie opslaan.
  • Bij nieuwe turn alle ants in de input koppelen aan een Ant op basis van eerstvolgende locatie
  • Als niet in input, dan in lijst DeadAnts? Anders is je programma (of server) fout
  • Als nieuw, dan in lijst OurHills? Anders is je programma (of server) fout.

Acties:
  • 0 Henk 'm!

  • Toryu
  • Registratie: December 2010
  • Laatst online: 19-05 09:57
Dank je. De Ant class is dus een nieuwe class? Ik zie hier alleen een State class en een Bot class namelijk.

Ik was nu denk ik ongeveer hetzelfde van plan. Ik heb een class genaamd busyAnts gemaakt, waar ik de actuale locatie, path en target bij wil houden. Die laad ik dan als 'vector<busyAnt> ListBusyAnts' in state.h.
Die wilde ik dan elke turn vergelijken met myAnts, zodat ik weet welke mieren een taak hebben en welke mieren wat anders moeten gaan doen.

Acties:
  • 0 Henk 'm!

  • Corniel
  • Registratie: April 2002
  • Laatst online: 31-03 14:56

Corniel

De wereld is gek!

Toryu schreef op maandag 21 november 2011 @ 23:37:
Ik was nu denk ik ongeveer hetzelfde van plan. Ik heb een class genaamd busyAnts gemaakt, waar ik de actuale locatie, path en target bij wil houden (..)
Ik vraag me oprecht af hoe nuttig het is om voor elke ant een eigen target bij te houden. Er komt elke ronde nieuwe informatie beschikbaar op basis waarvan je nieuwe beslissingen kan/moet nemen.

Let wel, je moet/kan wel zaken opslaan, maar het imho het meest verstandig om elke ronde op basis van je beslissingscriteria je ants opdrachten te geven.

while (me.Alive) {
me.KickAss();
}


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 13-09 09:39

Janoz

Moderator Devschuur®

!litemod

Precies. De enige state die ik over de verschillende beurten bijhoudt is waar water is, waar ik nog nooit geweest ben en waar ik ooit een enemy hill gezien heb.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Toryu
  • Registratie: December 2010
  • Laatst online: 19-05 09:57
hmm ok. Maar dat betekent dus dat je iedere ronden voor alle ants een nieuw path plant? Ik wil A* gaan gebruiken, geeft dat dan geen problemen met rekentijd oid?

Het maakt het qua code wel een heel stuk makkelijker :)

[ Voor 15% gewijzigd door Toryu op 22-11-2011 10:33 ]


Acties:
  • 0 Henk 'm!

  • Corniel
  • Registratie: April 2002
  • Laatst online: 31-03 14:56

Corniel

De wereld is gek!

Toryu schreef op dinsdag 22 november 2011 @ 10:33:
hmm ok. Maar dat betekent dus dat je iedere ronden voor alle ants een nieuw path plant? Ik wil A* gaan gebruiken, geeft dat dan geen problemen met rekentijd oid?
Als je elke ronde hele verre paden wilt gaan berekenen wel.

Zelf sla ik de paden naar hills op. Elke mier update elke ronde dat stukje van de de paden waar hij iets over kan zeggen. Dat levert een redelijke weg naar het pad op, en zorgt voor een mooie spreiding in rekentijd.

Voor de kortste paden naar voedsel is dit een onzinnige methode, en om je mieren te verspreiden over de map is A* ook niet de aangewezen methode.

while (me.Alive) {
me.KickAss();
}


Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 10-09 20:32
Toryu schreef op dinsdag 22 november 2011 @ 10:33:
hmm ok. Maar dat betekent dus dat je iedere ronden voor alle ants een nieuw path plant? Ik wil A* gaan gebruiken, geeft dat dan geen problemen met rekentijd oid?
Jawel. Daarom zul je daarmee "trukjes" uit moeten halen. Ik gebruik zelf ook A*. Tevens omdat ik een eigenwijze bal ben en mezelf heb voorgenomen om pathfinding e.d. niet via diffusion maps te doen. :+

Dit voegt wel een extra mate van complexiteit toe. Je kunt immers niet elke beurt opnieuw een pad berekenen omdat er ineens iets in de buurt is wat hogere prio heeft dan waar je Ant eerst naar op weg was. Dit performed namelijk niet. Maar dit is wel wat je wilt. 8)7

Dus zul je aan de slag moeten met het cachen van paden en een interval instellen dat hij om x stappen zijn doel opnieuw berekend. (ipv elke beurt).
Maargoed, dan zijn er nog meer problemen. Hoe ga je om met collisions die je onderweg tegenkomt? (andere mieren, of nog niet ontdekte stukken water waar je niet doorheen kan, etc)

Klinkt onnodig complex? Yup. :P Zou je willen dat je toch diffusion maps gebruikte? stiekem wel :D

Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 10-09 20:32
Corniel schreef op dinsdag 22 november 2011 @ 10:40:
[...]

Voor de kortste paden naar voedsel is dit een onzinnige methode, en om je mieren te verspreiden over de map is A* ook niet de aangewezen methode.
Eens is. Vooral voor exploratie gedrag is A* gewoonweg niet handig.

Acties:
  • 0 Henk 'm!

  • Marce
  • Registratie: Oktober 2007
  • Laatst online: 31-07 11:30

Marce

Het is Marc met een C!

Ik zit nu echt heel slecht op mn stage dit topic te volgen, al wat dingen in te lezen, en af en toe tussendoor ook nog wat proggen waar ik met mn stage mee bezig ben. Ik moet aan het werk, vanavond kan je dit doen marc :P

Al heb ik ondertussen wel al een tactiek bedacht, maar ik heb nog geen code aangeraakt verder, dus wat er van komt gaan we wel weer zien ;)

Acties:
  • 0 Henk 'm!

  • Toryu
  • Registratie: December 2010
  • Laatst online: 19-05 09:57
Wat is dan wel handige manier om naar voedsel te lopen? Ik ben niet zo thuis in de pathfinding methodes. Ik zal vanavond ook eens uitzoeken wat diffusion maps zijn :P

Acties:
  • 0 Henk 'm!

  • Corniel
  • Registratie: April 2002
  • Laatst online: 31-03 14:56

Corniel

De wereld is gek!

Toryu schreef op dinsdag 22 november 2011 @ 11:03:
Wat is dan wel handige manier om naar voedsel te lopen?
Via de kortste route? ;)

code:
1
2
3
4
5
6 ~ 2 3 4
5 ~ 1 2 3
4 ~ F 1 2
3 2 1 2 ?
4 3 2 ? ?

Stel je heb ergens voedsel, dan kan je de afstand tot dat voedsel bepalen door van aangrenzenden tiles te bepalen wat de afstand tot een aangrenzende tile is. Aangezien het doorgaans geen zin heeft om lange paden uit te rekenen (dan is het voedsel al lang weg, als je uberhaubt al voedsel ziet dat zo ver weg ligt).

while (me.Alive) {
me.KickAss();
}


Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
Corniel schreef op dinsdag 22 november 2011 @ 12:28:
[...]
Aangezien het doorgaans geen zin heeft om lange paden uit te rekenen (dan is het voedsel al lang weg, als je uberhaubt al voedsel ziet dat zo ver weg ligt).
Het langste pad via door de ant zichtbare land-tiles dat ik heb gevonden had 49 steps. Gemiddeld ben je er in 20 steps.
PS: Gezien we de state van ants bijhouden, zou het aardig zijn om eens statistiek te draaien over in hoeveel beurten (lees steps) food is opgegeten.

Edit: 49 is de minimale maximale afstand, waarbij de ant niet het gebied verlaat dat ie initieel (op beurt 0) ziet. De langste afstand op een map die ik kon vinden was 260.

[ Voor 29% gewijzigd door Bolukan op 22-11-2011 20:05 ]


Acties:
  • 0 Henk 'm!

  • Corniel
  • Registratie: April 2002
  • Laatst online: 31-03 14:56

Corniel

De wereld is gek!

Bolukan schreef op dinsdag 22 november 2011 @ 18:15:
[...]

Het langste pad via door de ant zichtbare land-tiles dat ik heb gevonden had 49 steps. Gemiddeld ben je er in 20 steps.
Ik heb ongetwijfeld langere paden gevonden naar enemy hills. Niet dat deze uiteindelijk volledig zijn bewandeld. ;)

En daar zit hem ook de crux. Als vanaf elk voedsel paden gaat zoeken tot je zeg 2 ants hebt gevonden die er naartoe lopen dan ben je er wel. Theoretisch kan het zo zijn dat je dan heel ver moet (om)lopen om je voedsel te pakken, maar in de praktijk komt dat nauwelijks voor. Daarnaast is het maar de vraag of je ant aankomt als ie zover moet omlopen, of dat hij in zijn weg daar naar toe wordt gedood door vijanden.
Gezien we de state van ants bijhouden, zou het aardig zijn om eens statistiek te draaien over in hoeveel beurten (lees steps) food is opgegeten.
Het zou me verbazen als je ver boven de 8 uit komt.

while (me.Alive) {
me.KickAss();
}

Pagina: 1 ... 4 ... 6 Laatste