Programming Contest Nieuwe Stijl: Contest 4 *Score-update* Vorige deel Overzicht Laatste deel

Dit topic is onderdeel van een reeks. Ga naar het meest recente topic in deze reeks.

Pagina: 1 ... 7 ... 16 Laatste
Acties:
  • 100.719 views

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
pedorus schreef op maandag 10 november 2008 @ 12:13:
[...]
Ik bedenk me nu dat jagged arrays 2 voordelen hebben. Naast dat je muren niet hoeft op te slaan, is er nog een belangrijk voordeel: Je hoeft natuurlijk alleen maar kolommen te kopieren als er iets in veranderd. Meestal gaat dat maar om 1 of 3 kolommen van de zeg 25... :)
Als ik dit eens snel test dan is kopieren met jagged met kolomhoogte 50 behoorlijk sneller (factor 2), maar met hoogte 12 bepaald niet (ook factor 2 trager).
Het lijkt me dat als je een clone maakt voor een andere branch dat je nog steeds alles moet kopieren! Of heb jij het zo geimplementeerd dat je pas bij wijzigingen een kopie maakt?

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
.oisyn schreef op maandag 10 november 2008 @ 12:34:
Als je de rest van mijn post ook had gelezen dan had je gezien dat ik dat met een single array ook niet deed ;)
Dat zag ik, ik reageer in zijn algemeenheid ;)
Wat heb je nou precies getest? Heb je sourcecode?
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Stopwatch stopwatch = new Stopwatch();
int hoogte = 50;
int breedte = 50;
int testcount = 5000000;

byte[] single = new byte[hoogte * breedte];
GC.Collect();
stopwatch.Start();
for (int i = 0; i < testcount; i++)
{
    byte[] copy = (byte[]) single.Clone();
}
stopwatch.Stop();
Console.WriteLine("Elapsed for single = {0}", stopwatch.Elapsed);

byte[][] jagged= new byte[hoogte][];
for(int i = 0; i < jagged.Length; i++) {
    jagged[i]=new byte[breedte];
}
stopwatch.Reset();
GC.Collect();
stopwatch.Start();
for (int i = 0; i < testcount; i++)
{
    byte[][] copy = (byte[][]) jagged.Clone();
    for (int j = 0; j < 3; j++)
    {
        copy[j] = (byte[]) jagged[j].Clone();
    }                
}
stopwatch.Stop();
Console.WriteLine("Elapsed for jagged = {0}", stopwatch.Elapsed);

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Das ook niet echt een eerlijke test, he :). Je doet bij de single een full copy, terwijl je bij de jagged maar een partial copy doet. Bovendien is de single array bij mij gewoon sneller.

Bij mij (core 2 quad @ 3GHz, 4GB mem, Win XP x64):
Elapsed for single = 00:00:02.8948754
Elapsed for jagged = 00:00:03.1900932


.edit: bliep, dat over partial even verwijderd. Dat gaat in dit geval natuurlijk niet op, omdat de rest van je contents dan niet in de array staan. Wat wel zo is is dat een dergelijke methode wat onhandig is om te gebruiken. Je huidige usecase zal nooit voorkomen - je wilt namelijk eerst veranderingen maken voor je de kopie maakt. Maar als je veranderingen wilt maken, kun je niet gaan werken in een array die geshared wordt, dus moet je bij gaan houden welke kolommen geisoleerd zijn.

[ Voor 95% gewijzigd door .oisyn op 10-11-2008 13:39 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

writser schreef op zondag 09 november 2008 @ 23:21:
[.oisyn over plane-sweep algo]
Leuk, ik ben erg benieuwd naar de performance.
Om hier even op terug te komen, het ziet er zeer gunstig uit. Die functie is 2.5x tot 3x sneller (gemeten met m'n best-move AI op de standaard testset die in totaal net iets minder dan 1 miljoen alternatieve moves per seconde door kan rekenen), en dat is tov m'n zwaar uitgeoptimaliseerde (iteratieve) floodfill. Helaas zitten er nog wat corner-cases in, ik ben gisteravond nog bezig geweest om die er uit te krijgen maar inmiddels is m'n code zo harig geworden dat ik het waarschijnlijk ga herschrijven nu ik precies weet waar ik allemaal rekening mee moet houden. Het detecteren van alle te verwijderen blokjes loopt overigens prima, het is de scoreberekening die soms de mist in gaat. Maar het is wel duidelijk dat dit de weg is die ik moet bewandelen :)

[ Voor 3% gewijzigd door .oisyn op 10-11-2008 14:22 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • writser
  • Registratie: Mei 2000
  • Laatst online: 21:37
Oke, koel. Grappig dat bij jouw algoritme de score ineens een probleem vormt: je zou op het eerste gezicht zeggen dat dat niet zo moeilijk kan zijn. Ik wil eigenlijk ook wel wat gaan programmeren voor de wedstrijd, maar zou hard aan het werk moeten zijn nu. Kennelijk vormt dat voor jou geen probleem. ;)

offtopic:
Ben hier bezig met software voor een multi-touch tabletop, ik denk dat ik daar eens een Bejeweled interface voor in elkaar ga hakken.

[ Voor 23% gewijzigd door writser op 10-11-2008 14:34 ]

Onvoorstelbaar!


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ik ben ook hard aan het werk, maar even een postje tikken of een testje runnen op m'n PC thuis kan prima ;). Daarnaast is Tomb Raider ook net de deur uit dus ik heb wat slack :P

[ Voor 24% gewijzigd door .oisyn op 10-11-2008 14:36 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

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

Janoz

Moderator Devschuur®

!litemod

Combinaties vinden met floodfill achtige oplossingen? Ik heb voor mijn spek en bonen (want <- rood devschuur kleurtje) gewoon een O(N) algo om de combinaties boven water te krijgen gevolgd door een op Tarjan Union Find geïnspireerde combineer stap. Hij kan nog wel sneller door wat meer native set algoritmiek toe te passen ipv java's Collection framework.

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

Klein vraagje omdat ik het wel zeker wil weten :P kan nooit kwaad

Bij het speelveld dat standaard meegegeven is van 24*13. kom ik bij het volgende

Ik heb mijn "AI" op heel simpel .. pak elk veld is er een mogelijkheid . doe die dan (Ja weet moet dat zeker nog uitbereiden.) maar is het prille begin zegmaar. Nu kom ik bij mij op een gegeven moment op dit uit :

(Deel van het veld waar het om gaat)

66653
25666
X6614


Bij mij haalt hij dit weg

---53
25-66
X6-14


De validator die er is.. doet het volgende

---53
25---
X6614


Mijn vraag is dus . Welke is goed .. (zal die andere validator wel zijn) Maar zou dan niet weten .. waarom die goed is.

De X is trouwens een muur

Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 10-08 02:59

Gerco

Professional Newbie

Ik zoek ook alle combinaties in 1 sweep van het veld, combineren is daarna niet meer nodig. Dat maakt dit algoritme wel O(N), maar de constante vind ik nogal groot. Nog eens kijken hoe ik die naar beneden kan krijgen...

@Hierboven: Ik zou eigenlijk dit verwachten:
code:
1
2
3
66653
25666
 6614

code:
1
2
3
---53
25---
 6-14

[ Voor 22% gewijzigd door Gerco op 10-11-2008 15:24 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op maandag 10 november 2008 @ 15:15:
Mijn vraag is dus . Welke is goed .. (zal die andere validator wel zijn) Maar zou dan niet weten .. waarom die goed is.
RobIII in "Programming Contest Nieuwe Stijl: Contest 4"
RobIII in "Programming Contest Nieuwe Stijl: Contest 4"

Overigens is die discussie al ettelijke keren gevoerd; gewoon even dit topic doorbladeren.

[ Voor 19% gewijzigd door RobIII op 10-11-2008 15:17 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Janoz schreef op maandag 10 november 2008 @ 14:50:
Combinaties vinden met floodfill achtige oplossingen?
Wat is daar vreemd aan? Als je het goed aanpakt is een floodfill helemaal slecht algoritme. Zeker niet in deze context waar je over het algemeen weinig overlap hebt.
Ik heb voor mijn spek en bonen (want <- rood devschuur kleurtje) gewoon een O(N) algo om de combinaties boven water te krijgen gevolgd door een op Tarjan Union Find geïnspireerde combineer stap. Hij kan nog wel sneller door wat meer native set algoritmiek toe te passen ipv java's Collection framework.
Mijn algo heeft geen extra stappen nodig. Hij loopt 1x over de relevante posities heen en daarna heeft ie alle benodigde informatie. Ik hoef geen figuurtjes meer te combineren oid.

.edit:
Gerco schreef op maandag 10 november 2008 @ 15:15:
Ik zoek ook alle combinaties in 1 sweep van het veld, combineren is daarna niet meer nodig. Dat maakt dit algoritme wel O(N), maar de constante vind ik nogal groot. Nog eens kijken hoe ik die naar beneden kan krijgen...
Dan hebben we denk ik een vergelijkbaar algo. Mijn constante is niet groot. Strooi je veel met objecten?

[ Voor 21% gewijzigd door .oisyn op 10-11-2008 15:23 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Verwijderd schreef op maandag 10 november 2008 @ 15:15:
Klein vraagje omdat ik het wel zeker wil weten :P kan nooit kwaad

Bij het speelveld dat standaard meegegeven is van 24*13. kom ik bij het volgende

Ik heb mijn "AI" op heel simpel .. pak elk veld is er een mogelijkheid . doe die dan (Ja weet moet dat zeker nog uitbereiden.) maar is het prille begin zegmaar. Nu kom ik bij mij op een gegeven moment op dit uit :

(Deel van het veld waar het om gaat)

66653
25666
X6614


Bij mij haalt hij dit weg

---53
25-66
X6-14


De validator die er is.. doet het volgende

---53
25---
X6614


Mijn vraag is dus . Welke is goed .. (zal die andere validator wel zijn) Maar zou dan niet weten .. waarom die goed is.

De X is trouwens een muur
Welke validator? Eigenlijk zou dit het resultaat moeten zijn:
---53
25---
X6-14
De rij moet minimaal 3 lang zijn om als match te tellen. Wanneer de rijen elkaar kruisen, gelden ze als 1 match.

Acties:
  • 0 Henk 'm!

Verwijderd

BalusC schreef op maandag 10 november 2008 @ 15:18:

Welke validator? Eigenlijk zou dit het resultaat moeten zijn:
---53
25---
X6-14
De rij moet minimaal 3 lang zijn om als match te tellen. Wanneer de rijen elkaar kruisen, gelden ze als 1 match.
Mmm dat is een resultaat wat ik niet verwacht had .. Trouwens is die validator die gemaakt is om te testen of die van jou goed is ..
Maar had blijkbaar fout gedacht in hoe die validator het dan gedaan had ..

Maar nu zie ik wat er fout is .

[ Voor 10% gewijzigd door Verwijderd op 10-11-2008 15:29 ]


Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 10-08 02:59

Gerco

Professional Newbie

.oisyn schreef op maandag 10 november 2008 @ 15:17:
Dan hebben we denk ik een vergelijkbaar algo. Mijn constante is niet groot. Strooi je veel met objecten?
Wat is veel? Elke GemGroup is een object met daarin Point objecten die naar de verschillende posities wijzen, die Points worden echter pas aangemaakt als ze ook echt in een groep gaan dus het zijn er hooguit enkele tientallen per iteratie van het veld.

De meeste tijd gaat nog zitten in het kijken wat er op een bepaalde positie in het veld staat, ik wil die method eigenlijk inlinen (scheelt miljoenen calls en de bijhorende overhead), maar de Java compiler wil niet niet meewerken.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

Verwijderd

Probleem opgelost en gaat weer verder door de validator .. dank voor het tonen hoe de combinatie wel gezien moest worden..

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Gerco schreef op maandag 10 november 2008 @ 15:28:
[...]

Wat is veel? Elke GemGroup is een object met daarin Point objecten die naar de verschillende posities wijzen, die Points worden echter pas aangemaakt als ze ook echt in een groep gaan dus het zijn er hooguit enkele tientallen per iteratie van het veld.
:X
Mijn lijst figuren is in werkelijkheid een array van ints, waarbij elke int enkel aangeeft hoeveel blokjes in die figuur staan (voor de uiteindelijke puntentelling). Verder heb ik natuurlijk een lijstje van actieve figuren die ontstaan, aangepast worden en afgesloten worden terwijl ik door het veld wandel, wat ook niet meer is dan een array van structures van constante grootte.

Blokjes markeren voor verwijderen doe ik met de welbekende dirty bit.
De meeste tijd gaat nog zitten in het kijken wat er op een bepaalde positie in het veld staat, ik wil die method eigenlijk inlinen (scheelt miljoenen calls en de bijhorende overhead), maar de Java compiler wil niet niet meewerken.
Kun je niet gewoon de field array de methode binnen halen?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Pinobigbird
  • Registratie: Januari 2002
  • Laatst online: 21:40

Pinobigbird

doesn't share food!

Wel grappig om te zien hoe iedereen probeert zijn code te optimaliseren. Zelf ook nog even het XOR-swap-algoritme opgezocht.
Java:
1
2
3
int a = 2, b = 3;
a^=b^(b^=a^b);
System.out.println("a = " + a + ", b = " + b); // print "a = 3, b = 2"

Maar voor waarden uit een 2D array lijkt me dit niet echt zinvol:
Java:
1
field[x1][y1]^=field[x2][y2]^(field[x2][y2]^=field[x1][y1]^field[x2][y2]);

Joey: Nice try. See the Netherlands is this make believe place where Peter Pan and Tinkerbell come from.
https://kattenoppasleiderdorp.nl
PV: 3080Wp ZO + 3465Wp NW = 6545Wp totaal 13°tilt


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Pinobigbird schreef op maandag 10 november 2008 @ 16:01:
Wel grappig om te zien hoe iedereen probeert zijn code te optimaliseren. Zelf ook nog even het XOR-swap-algoritme opgezocht.
Ik zo sowieso niet te vroeg juichen ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Marcj
  • Registratie: November 2000
  • Laatst online: 12-09 19:26
Pinobigbird schreef op maandag 10 november 2008 @ 16:01:
Wel grappig om te zien hoe iedereen probeert zijn code te optimaliseren. Zelf ook nog even het XOR-swap-algoritme opgezocht.
Java:
1
2
3
int a = 2, b = 3;
a^=b^(b^=a^b);
System.out.println("a = " + a + ", b = " + b); // print "a = 3, b = 2"

Maar voor waarden uit een 2D array lijkt me dit niet echt zinvol:
Java:
1
field[x1][y1]^=field[x2][y2]^(field[x2][y2]^=field[x1][y1]^field[x2][y2]);
Volgens mij is het opzoeken van de juiste positie in een twee-dimensionale array hier de vertraging. Die ene extra 'temp' variabele zal hier niet veel aan toevoegen. Ik ben zelf niet zo van deze micro-optimalisaties.

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Pinobigbird schreef op maandag 10 november 2008 @ 16:01:
Wel grappig om te zien hoe iedereen probeert zijn code te optimaliseren. Zelf ook nog even het XOR-swap-algoritme opgezocht.
Java:
1
2
3
int a = 2, b = 3;
a^=b^(b^=a^b);
System.out.println("a = " + a + ", b = " + b); // print "a = 3, b = 2"

Maar voor waarden uit een 2D array lijkt me dit niet echt zinvol:
Java:
1
field[x1][y1]^=field[x2][y2]^(field[x2][y2]^=field[x1][y1]^field[x2][y2]);
Tja ik vraag me ook af hoeveel winst je daar mee haalt. Het enige voordeel is dat je een temp var minder nodig hebt, maar 1 byte extra geheugen voor een swap lijkt me niet zo'n groot probleem.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Pinobigbird schreef op maandag 10 november 2008 @ 16:01:

[...]

[/code]
Maar voor waarden uit een 2D array lijkt me dit niet echt zinvol:
Java:
1
field[x1][y1]^=field[x2][y2]^(field[x2][y2]^=field[x1][y1]^field[x2][y2]);
waarom niet?

een moderne compiler laadt dit gewoon in twee registers en doet z'n bewerkingen.
Ik denk niet dat ze bij Java zo retarded zijn dat ze elke keer opniew de waarde uit het geheugen gaan ophalen ;)
rwb schreef op maandag 10 november 2008 @ 16:10:
[...]

Tja ik vraag me ook af hoeveel winst je daar mee haalt. Het enige voordeel is dat je een temp var minder nodig hebt, maar 1 byte extra geheugen voor een swap lijkt me niet zo'n groot probleem.
Die byte is het probleem niet natuurlijk, maar ook daarvoor geldt dat een normale compiler dit gewoon in een register afhandelt. Als die al vol zitten op dat moment kan het natuurlijk dat de code less than optimal wordt. Zolang je maar geen fratsen uithaalt als
code:
1
2
3
4
5
6
7
8
9
int *temp = new int;

int a = 0, b = 2;
...
while( iets ) {
    *temp = a;
    a = b;
    b = *temp;
}

denk ik niet dat het echt een probleem gaat worden.

[ Voor 42% gewijzigd door Arjan op 10-11-2008 16:17 ]

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

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

Janoz

Moderator Devschuur®

!litemod

.oisyn schreef op maandag 10 november 2008 @ 15:17:
Wat is daar vreemd aan? Als je het goed aanpakt is een floodfill helemaal slecht algoritme. Zeker niet in deze context waar je over het algemeen weinig overlap hebt.
Lastigheid lijkt mij dat het wel of niet horen bij een combinatie niet simpel van enkel de buren afhangt. Daarnaast krijg ik bij een floodfill altijd een beetje een (ongefundeerd) recursief gevoel, vandaar dat ik eigenlijk gelijk in een andere richting ben gaan zoeken.

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
Janoz schreef op maandag 10 november 2008 @ 14:50:
Combinaties vinden met floodfill achtige oplossingen? Ik heb voor mijn spek en bonen (want <- rood devschuur kleurtje) gewoon een O(N) algo om de combinaties boven water te krijgen gevolgd door een op Tarjan Union Find geïnspireerde combineer stap. Hij kan nog wel sneller door wat meer native set algoritmiek toe te passen ipv java's Collection framework.
Ik heb wat zitten lezen op wikipedia over "Tarjan Union Find", maar kon niet de link leggen met het combineren van lijntjes tot figuren. Kun je me dat plastisch uitleggen? Welke initiele boom moet je definieren (velden, lijntjes) en wat hou je aan het eind over? (Zo´n contest is toch om plezier te hebben en te leren)

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Pinobigbird schreef op maandag 10 november 2008 @ 16:01:
Wel grappig om te zien hoe iedereen probeert zijn code te optimaliseren. Zelf ook nog even het XOR-swap-algoritme opgezocht.
Java:
1
2
3
int a = 2, b = 3;
a^=b^(b^=a^b);
System.out.println("a = " + a + ", b = " + b); // print "a = 3, b = 2"
Ook een manier om java om de tuin te leiden inderdaad. :)
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Timing {
    public static void main(String[] args) {
        int testcount = 1000000001;
        long time;
        int a = 2, b = 3;

        time = System.currentTimeMillis();
        for (int i = 0; i < testcount; i++) {
                a ^= b ^ (b ^= a ^ b);
        }
        time = System.currentTimeMillis() - time;
        System.out.println("XOR-swap = " + time + "-" + a + "-" + b);

        time = System.currentTimeMillis();
        for (int i = 0; i < testcount; i++) {
            int c;
            c = a;
            a = b;
            b = c;
        }
        time = System.currentTimeMillis() - time;
        System.out.println("Normal swap = " + time + "-" + a + "-" + b);
    }
}

XOR-swap = 2180-3-2
Normal swap = 7-2-3

Dit is geen faire vergelijking, aangezien java er bij het optimizen van de 2e loop achter komt dat er niks gebeurd...

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • writser
  • Registratie: Mei 2000
  • Laatst online: 21:37
Janoz schreef op maandag 10 november 2008 @ 16:13:
[...]

Lastigheid lijkt mij dat het wel of niet horen bij een combinatie niet simpel van enkel de buren afhangt. Daarnaast krijg ik bij een floodfill altijd een beetje een (ongefundeerd) recursief gevoel, vandaar dat ik eigenlijk gelijk in een andere richting ben gaan zoeken.
Je kan een soort floodfill-algoritme gebruiken dat om-en-om rijen en kolommen controleert. Heb je een rijtje gevonden? Kijk dan voor elk steentje in de rij of het tot een kolom behoort. Heb je een kolom? Kijk dan voor alle andere steentjes in de kolom of ze tot een rij behoren. En zo steeds verder. Heb je nog wel een dirty bit nodig o.i.d. om te voorkomen dat je steentjes meerdere keren gaat bekijken.

Het is in elk geval simpel. Ik weet niet of het ook snel is want ik heb geen andere methode geimplementeerd en breek ik me al de hele dag het hoofd over de vraag: wat is de complexiteit van dit algoritme? Worst-case is het hele scherm gevuld met 1 type diamant, dan kan de stack nog wel eens aardig oververhit raken :P.


offtopic:
Dit is een TNO oplossing van de overkant :)

[ Voor 5% gewijzigd door writser op 10-11-2008 16:53 ]

Onvoorstelbaar!


Acties:
  • 0 Henk 'm!

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

Janoz

Moderator Devschuur®

!litemod

Bolukan schreef op maandag 10 november 2008 @ 16:39:
[...]


Ik heb wat zitten lezen op wikipedia over "Tarjan Union Find", maar kon niet de link leggen met het combineren van lijntjes tot figuren. Kun je me dat plastisch uitleggen? Welke initiele boom moet je definieren (velden, lijntjes) en wat hou je aan het eind over? (Zo´n contest is toch om plezier te hebben en te leren)
Van TUF gebruik ik vooral het bewijs dat bij het vinden van een overlap de complete sets verbonden zijn.

De uiteindelijke werking van het gehele algoritme zal ik na de deadline wel uit de doeken doen (net zoals vele anderen dat zullen doen vermoed ik).
writser schreef op maandag 10 november 2008 @ 16:46:
offtopic:
Dit is een TNO oplossing van de overkant :)
offtopic:
Ah, extra motivatie voor een goede oplossing. De eer van mijn kant staat op het spel en van Landal hoef ik niet veel te verwachten, mits ik het juist interpreteer..

Heeft mijn stagiair me verraden? ;)

[ Voor 22% gewijzigd door Janoz op 10-11-2008 16:55 ]

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!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ik vond 't juist extreem simpel, vandaar dat dat m'n eerste implementatie was. De huidige plane-sweep had ik van begin af aan al in m'n hoofd, maar ik wilde eerst snel een werkende implementatie.

In pseudo-c++:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
int check(int posx, int posy, Field & field)
{
    enum direction { horizontal, vertical };
    struct Task { int x, y; direction dir; };

    queue<Task> tasks;
    int numMatches = 0;

    tasks.push(Task(posx, posy, horizontal));
    tasks.push(Task(posx, posy, vertical));

    while(!tasks.empty())
    {
        Task t = tasks.pop();
        if (t.dir == horizontal)
        {
            int x1 = field.findLeft(t.x,t.y);
            int x2 = field.findRight(t.x,t.y);
            if (x2 - x1 + 1 >= 3)
            {
                for (int x = x1; x <= x2; x++)
                {
                    if (!field.marked(x,t.y))
                    {
                        numMatches++;
                        field.mark(x,t.y);
                        queue.push(Task(x, t.y, vertical));
                    }
                }
            }
        }

        else if (t.dir == vertical)
        {
            // zie horizontale case (maar dan verticaal, duh!)
        }
    }

    return numMatches;
}

En na afloop zijn de te verwijderen blokjes gemarkeerd, en het resultaat is het aantal blokjes in de figuur. Check() moet je dus aanroepen voor ieder blokje in het veld dat je wilt controleren (maar niet voor de al gemarkeerde blokjes). Nadeel van bovenstaande naïeve implementatie is dat ie nogal eens ergens meerdere keren komt.

[ Voor 3% gewijzigd door .oisyn op 10-11-2008 16:57 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

pedorus schreef op maandag 10 november 2008 @ 16:39:
Dit is geen faire vergelijking, aangezien java er bij het optimizen van de 2e loop achter komt dat er niks gebeurd...
Idd, maar een variabele-assignment op lokale variabelen is voor een redelijke compiler ook niet meer dan een simpele interne verwijzing. a = b? Oh, dan gebruiken we voortaan gewoon lekker b als de waarde van a nodig is. Ik vermoed dat als je de swap doet met (static) nonprivate members van de class dat de loop dan in de orde van grootte van de xor-swap valt (maar waarschijnlijk wel sneller is)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • writser
  • Registratie: Mei 2000
  • Laatst online: 21:37
Precies mijn algoritme :). Dit werkt waarschijnlijk erg slecht als er maar weinig verschillende types stenen zijn. Ik moet ook maar eens op zoek naar een slimmere oplossing.

offtopic:
@Janoz: zie PM

Onvoorstelbaar!


Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 10-08 02:59

Gerco

Professional Newbie

.oisyn schreef op maandag 10 november 2008 @ 15:50:
Mijn lijst figuren is in werkelijkheid een array van ints, waarbij elke int enkel aangeeft hoeveel blokjes in die figuur staan (voor de uiteindelijke puntentelling). Verder heb ik natuurlijk een lijstje van actieve figuren die ontstaan, aangepast worden en afgesloten worden terwijl ik door het veld wandel, wat ook niet meer is dan een array van structures van constante grootte.
Een GemGroup is ook niet meer dan een array en een Point is een 2-dimensionale array index. Die ga ik nog wegwerken. Aangezien ik helemaal geen 2 dimensionaal array gebruik is een enkele scalaire index meer dan voldoende en scheelt het bovendien een object per keer.
Blokjes markeren voor verwijderen doe ik met de welbekende dirty bit.
Dat doe ik met een speciale waarde voor empty spot, komt op hetzelfde neer natuurlijk.
Kun je niet gewoon de field array de methode binnen halen?
Dat kan natuurlijk wel, maar ik vind een inlined method call persoonlijk wat mooier staan. Als de compiler blijft bokken zal ik echter weinig keuze hebben natuurlijk.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Wheehehe
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main()
{
00415620  push        ebp  
00415621  mov         ebp,esp 
00415623  and         esp,0FFFFFFF8h 
00415626  push        esi  
00415627  push        edi  
    const int count = 1000000;
    int a = 2, b = 3;
    for (int i = 0; i < count; i++)
    {
        a ^= b ^ (b ^= a ^ b); 
    }
    std::cout << a << ", " << b << std::endl;
00415628  push        2    
0041562A  push        ecx  
0041562B  push        2    
0041562D  push        offset std::cout (41F7F0h) 
00415632  call        std::basic_ostream<char,std::char_traits<char> >::operator<< (4017A0h)

Mooi trouwens om te zien hoe a ^= b ^ (b ^= a ^ b) niet goed werkt in een taal als C++, omdat de orde van evaluatie niet strak gedefinieerd is.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
.oisyn schreef op maandag 10 november 2008 @ 17:05:
Ik vermoed dat als je de swap doet met (static) nonprivate members van de class dat de loop dan in de orde van grootte van de xor-swap valt (maar waarschijnlijk wel sneller is)
Nope, normal wordt dan iets trager en wordt dan waarschijnlijk wel daadwerkelijk uitgevoerd (2x zoveel iteraties = 2x zoveel tijd), maar XORswap is veeel trager:
XOR-swap = 2155-3-2
Normal swap = 97-2-3

Ik neem trouwens aan dat die floodfill in je laatste 'floodfill'-versie alleen maar getriggert werd als je al een kruisend figuur tegenkwam bij 'na het vallen'? Aanroepen per cel lijkt me erg traag, en voor na een swap check je veel te veel. :)

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

pedorus schreef op maandag 10 november 2008 @ 17:25:
Ik neem trouwens aan dat die floodfill in je laatste 'floodfill'-versie alleen maar getriggert werd als je al een kruisend figuur tegenkwam bij 'na het vallen'? Aanroepen per cel lijkt me erg traag, en voor na een swap check je veel te veel. :)
Dit was een basale implementatie, in de mijne doe ik natuurlijk een stuk minder werk als dat niet nodig is :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • wackmaniac
  • Registratie: Februari 2004
  • Laatst online: 11-09 10:21
writser schreef op maandag 10 november 2008 @ 17:05:
Precies mijn algoritme :). Dit werkt waarschijnlijk erg slecht als er maar weinig verschillende types stenen zijn. Ik moet ook maar eens op zoek naar een slimmere oplossing.

offtopic:
@Janoz: zie PM
Ben iig blij dat ik mijn oplossing in goed gezelschap ben :) Ik zou ook zo de complexiteit van het algoritme niet weten. Weet wel dat je het slim moet toepassen; je hoeft doorgaans niet hele veld door natuurlijk :)

[ Voor 16% gewijzigd door wackmaniac op 10-11-2008 19:53 ]

Read the code, write the code, be the code!


Acties:
  • 0 Henk 'm!

  • Caballeros
  • Registratie: November 2008
  • Niet online
Na een tijd gelurkt te hebben ga ik ook maar eens meedoen.
Ik heb al wat werkende code in C.
Ik ga maar eens kijken of mjin output door de validatie komt en dan optimaliseren.

Acties:
  • 0 Henk 'm!

  • MLM
  • Registratie: Juli 2004
  • Laatst online: 12-03-2023

MLM

aka Zolo

Ik heb ook maar eens iets geschreven, en mijn validatie (en dus figuur-matching en score telling) werkt (heeft dezelfde uitvoer als die van .oisyn tenminste), en draait in ongeveer 5s.

Een simpele "probeer-alle-zetten-en-kies-beste" oplossing draait in 5 minuten :( Als ik nog eens tijd heb maar eens gaan uitzoeken waarom dat zo langzaam gaat :)

Intressante contest weer in elk geval!

-niks-


Acties:
  • 0 Henk 'm!

Verwijderd

haha eindelijk heb ik hem.. na hoop kleine bugs eruit gehaald te hebben is hij eindelijk door de Validator heen . nu nog testen of hij het op het grote veld ook sterk houd maar daar ga ik wel van uit ..

Score is niet best .. dit komt omdat hij elke combinatie die hij eerst vond gewoon direct deed .. maarja is het begin. Als hij de 50*50 goed doet is het tijd om de AI iets slimmer te maken en ook meer te kiezen wat hij zal gaan doen

[table border=1 cellpadding=1 bordercolor=#000 fontsize=8][tr][td bgcolor=#fff height=10 width=10].[/][td bgcolor=#fff height=10 width=10]0[/][td bgcolor=#fff height=10 width=10]1[/][td bgcolor=#fff height=10 width=10]2[/][td bgcolor=#fff height=10 width=10]3[/][td bgcolor=#fff height=10 width=10]4[/][td bgcolor=#fff height=10 width=10]5[/][td bgcolor=#fff height=10 width=10]6[/][td bgcolor=#fff height=10 width=10]7[/][td bgcolor=#fff height=10 width=10]8[/][td bgcolor=#fff height=10 width=10]9[/][td bgcolor=#fff height=10 width=10]10[/][td bgcolor=#fff height=10 width=10]11[/][td bgcolor=#fff height=10 width=10]12[/][td bgcolor=#fff height=10 width=10]13[/][td bgcolor=#fff height=10 width=10]14[/][td bgcolor=#fff height=10 width=10]15[/][td bgcolor=#fff height=10 width=10]16[/][td bgcolor=#fff height=10 width=10]17[/][td bgcolor=#fff height=10 width=10]18[/][td bgcolor=#fff height=10 width=10]19[/][td bgcolor=#fff height=10 width=10]20[/][td bgcolor=#fff height=10 width=10]21[/][td bgcolor=#fff height=10 width=10]22[/][td bgcolor=#fff height=10 width=10]23[/][td bgcolor=#fff height=10 width=10]24[/][/tr][tr][td bgcolor=#fff height=10]0[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][/tr][tr][td bgcolor=#fff height=10]1[/][td bgcolor=#0ff]2[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][/tr][tr][td bgcolor=#fff height=10]2[/][td bgcolor=#000]x[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]3[/][td bgcolor=#000]x[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]4[/][td bgcolor=#000]x[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]5[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]6[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#000]x[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]7[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]8[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]9[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#f0f]4[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]10[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]11[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]12[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]13[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][/table]
Score....................: 8426100 points
Total moves..............: 100000
Succesful moves..........: 100000
Bad moves................: 0
Average score per move...: 84 points
Move with highest score..: #63183 (1100 points)

Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
Verwijderd schreef op maandag 10 november 2008 @ 23:45:
<knip/>
Score....................: 8426100 points
<knip/>
Yeah, ik heb nog steeds de laagste score !!

Acties:
  • 0 Henk 'm!

  • DaCoTa
  • Registratie: April 2002
  • Laatst online: 15:10
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2156616544634636564114322
2663655362443541322665334
 64256315442214543553452 
 461611314624513245125   
 215466143134625161366   
  31342462136634312256   
  621361416265154 253    
  11213126525311         
  2154166441264          
  434134225  1           
   2643526               
       64                

Score: 40.324.850
Step:  100001
Time:  14:59.750

Onder voorbehoud, ik heb mijn uitvoer nog niet door een validator gehaald O-) En er zit nog een Obi-Wan error in, vandaar de 100001.

Acties:
  • 0 Henk 'm!

Verwijderd

Die Validator heb hoop kleine bugs bij mij aan het licht gebracht :D en ik dacht ook dat ik em vrij goed had gemaakt ...

dus succes :D

[ Voor 6% gewijzigd door Verwijderd op 11-11-2008 01:42 ]


Acties:
  • 0 Henk 'm!

  • NetForce1
  • Registratie: November 2001
  • Laatst online: 13:16

NetForce1

(inspiratie == 0) -> true

hoihoi, ik heb ook een simpele versie werkend. Nog wel een beetje traag, 33.6s op mn Athlon X2 4400+
[table border=1 cellpadding=1 bordercolor=#000 fontsize=8][tr][td bgcolor=#fff height=10 width=10].[/][td bgcolor=#fff height=10 width=10]0[/][td bgcolor=#fff height=10 width=10]1[/][td bgcolor=#fff height=10 width=10]2[/][td bgcolor=#fff height=10 width=10]3[/][td bgcolor=#fff height=10 width=10]4[/][td bgcolor=#fff height=10 width=10]5[/][td bgcolor=#fff height=10 width=10]6[/][td bgcolor=#fff height=10 width=10]7[/][td bgcolor=#fff height=10 width=10]8[/][td bgcolor=#fff height=10 width=10]9[/][td bgcolor=#fff height=10 width=10]10[/][td bgcolor=#fff height=10 width=10]11[/][td bgcolor=#fff height=10 width=10]12[/][td bgcolor=#fff height=10 width=10]13[/][td bgcolor=#fff height=10 width=10]14[/][td bgcolor=#fff height=10 width=10]15[/][td bgcolor=#fff height=10 width=10]16[/][td bgcolor=#fff height=10 width=10]17[/][td bgcolor=#fff height=10 width=10]18[/][td bgcolor=#fff height=10 width=10]19[/][td bgcolor=#fff height=10 width=10]20[/][td bgcolor=#fff height=10 width=10]21[/][td bgcolor=#fff height=10 width=10]22[/][td bgcolor=#fff height=10 width=10]23[/][td bgcolor=#fff height=10 width=10]24[/][/tr][tr][td bgcolor=#fff height=10]0[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][/tr][tr][td bgcolor=#fff height=10]1[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][/tr][tr][td bgcolor=#fff height=10]2[/][td bgcolor=#000]x[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]3[/][td bgcolor=#000]x[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]4[/][td bgcolor=#000]x[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]5[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]6[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#0f0]1[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#000]x[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]7[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]8[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]9[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#0f0]1[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]10[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]11[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]12[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]13[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][/table]
Score....................: 13803650 points
Total moves..............: 100000
Succesful moves..........: 100000
Bad moves................: 0
Average score per move...: 138 points
Move with highest score..: #5422 (1750 points)

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


Acties:
  • 0 Henk 'm!

  • Marcj
  • Registratie: November 2000
  • Laatst online: 12-09 19:26
Janoz schreef op maandag 10 november 2008 @ 16:51:
[...]

offtopic:
Ah, extra motivatie voor een goede oplossing. De eer van mijn kant staat op het spel en van Landal hoef ik niet veel te verwachten, mits ik het juist interpreteer..

Heeft mijn stagiair me verraden? ;)
offtopic:
Nog een deelnemer uit hetzelfde gebouw! ;)


Die van mij lijkt al goed te valideren, maar hij klopt niet met de validator van .oisyn na 12000 stappen. Dat wordt nog ff debuggen :|

Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Mwa, het is in ieder geval wat. Ik ben er nu ook even aan begonnen en de mijne haalt de 1950 punten, waarna de validator van .oisyn al invalid move aangeeft... Dus ik heb het diepterecord zeker?

Oja, en de mijne kan ook zn eigen score nog niet bijhouden

[ Voor 13% gewijzigd door dcm360 op 11-11-2008 08:37 ]


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
dcm360 schreef op dinsdag 11 november 2008 @ 08:37:
Mwa, het is in ieder geval wat. Ik ben er nu ook even aan begonnen en de mijne haalt de 1950 punten, waarna de validator van .oisyn al invalid move aangeeft... Dus ik heb het diepterecord zeker?

Oja, en de mijne kan ook zn eigen score nog niet bijhouden
Ik had het eerst ook dat er geen enkele move geldig was. Maar dat kwam omdat ik in plaats van o(ost) en z(uid) e(ast) en s(outh) gebruikte ;)

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

Verwijderd

rwb schreef op dinsdag 11 november 2008 @ 08:49:
[...]

Ik had het eerst ook dat er geen enkele move geldig was. Maar dat kwam omdat ik in plaats van o(ost) en z(uid) e(ast) en s(outh) gebruikte ;)
haha had precies hetzelfde

na wat aanpassen toch weer fout gevonden .. iets met de score. dus aantal stenen wat ie niet goed meeneemt .. rond move 70000 :( lekker debuggen

En de fout is natuurlijk weer een figuur :P Dacht dat ik ze allemaal wel goed had maar er is toch 1 die me ontglipt is

0010
1110
0111
0100


Kijken hoe ik die weer ga oplossen.

[ Voor 38% gewijzigd door Verwijderd op 11-11-2008 10:14 ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

wackmaniac schreef op maandag 10 november 2008 @ 19:52:
[...]


Ben iig blij dat ik mijn oplossing in goed gezelschap ben :) Ik zou ook zo de complexiteit van het algoritme niet weten. Weet wel dat je het slim moet toepassen; je hoeft doorgaans niet hele veld door natuurlijk :)
Dat voorbeeld dat ik gaf is O(n2)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • wackmaniac
  • Registratie: Februari 2004
  • Laatst online: 11-09 10:21
.oisyn schreef op dinsdag 11 november 2008 @ 12:39:
[...]

Dat voorbeeld dat ik gaf is O(n2)
Dan moet ik maar zorgen dat ik een verdomd goede AI in elkaar knutsel.

Read the code, write the code, be the code!


Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

En de fout is natuurlijk weer een figuur Dacht dat ik ze allemaal wel goed had maar er is toch 1 die me ontglipt is
Hm, klinkt bekend. Ik heb net mn algoritme zodanig verbouwd dat die vormen herkent en punten geeft, alleen ik mis en 750 punten en 1 kolom is niet ver genoeg ingezakt. Het is al beter dan wat ik van een eerste poging verwachtte, alleen nu die figuur (en mn fout) zien te vinden...

Acties:
  • 0 Henk 'm!

  • DaCoTa
  • Registratie: April 2002
  • Laatst online: 15:10
Verwijderd schreef op dinsdag 11 november 2008 @ 01:37:
Die Validator heb hoop kleine bugs bij mij aan het licht gebracht :D en ik dacht ook dat ik em vrij goed had gemaakt ...

dus succes :D
Inmiddels gevalideerd, wat ik tot nu toe zie kloppen mijn moves, alleen bij mijn score zit een afwijking ( < 1% te hoog). Dus het valt me erg mee. Enige andere fout is dat ik de coordinaten van de uitvoer 1 based had, in plaats van 0 based, dat terwijl intern het al 0 based was :+

Acties:
  • 0 Henk 'm!

Verwijderd

dcm360 schreef op dinsdag 11 november 2008 @ 21:50:
[...]
Hm, klinkt bekend. Ik heb net mn algoritme zodanig verbouwd dat die vormen herkent en punten geeft, alleen ik mis en 750 punten en 1 kolom is niet ver genoeg ingezakt. Het is al beter dan wat ik van een eerste poging verwachtte, alleen nu die figuur (en mn fout) zien te vinden...
Ja is bij mij heel stom want ik heb een algoritme wat het figuur zelf uitzoekt .. hij zou alles moeten pakken . waar het niet dat hij iets wat marked was niet meenam.. dus zodra ik dat erbij heb zal hij ook gewoon alles moeten pakken .. maarja :D je weet het nooit . Qua punten gaf hij wel het goed aantal punten . want immers 5 of meer blokjes is nog altijd 250 .. hij pakte alle blokjes behalve 1 .. en dat waren 8 blokjes ofzo :D

@Dacota : netjes .. is iig een stuk beter gegaan dan bij mij :P maarja. uiteindelijk komt het wel goed .. kost alleen zo veel tijd met debuggen . vooral als het in 1 van de latere moves is .. zoals move 70020 vandaag :P Maar moet nog even kijken hoeveel tijd hij neemt om bepaalde methodes uit te voeren .. misschien kan ik ze op punten nog wat sneller maken

[ Voor 17% gewijzigd door Verwijderd op 12-11-2008 00:12 ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Overigens ben ik wel blij met de huidige puntentelling. Omdat de scores voor figuren van meer dan 5 blokjes allemaal gelijk zijn kan ik een aantal optimalisaties maken door niet precies te tellen :P

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • DaCoTa
  • Registratie: April 2002
  • Laatst online: 15:10
.oisyn schreef op woensdag 12 november 2008 @ 01:00:
Overigens ben ik wel blij met de huidige puntentelling. Omdat de scores voor figuren van meer dan 5 blokjes allemaal gelijk zijn kan ik een aantal optimalisaties maken door niet precies te tellen :P
I smell the prematureness of your optimizations, my dear colleague. O-)

Zijn er verder geen mensen met scores te showen?

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Niets mis met premature optimizations. Het is dan ook een veelgemaakte misquote van Knuth die geheel uit context gerukt is. Overigens ben ik al 2 weken met mijn solver bezig, dus er is niets prematures aan.

Daarnaast post ik geen andere scores totdat iemand anders die van mij gebeat heeft :Y)

[ Voor 15% gewijzigd door .oisyn op 12-11-2008 02:22 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
.oisyn schreef op woensdag 12 november 2008 @ 02:21:
Niets mis met premature optimizations. Het is dan ook een veelgemaakte misquote van Knuth die geheel uit context gerukt is. Overigens ben ik al 2 weken met mijn solver bezig, dus er is niets prematures aan.

Daarnaast post ik geen andere scores totdat iemand anders die van mij gebeat heeft :Y)
Ik was van plan om het weekend weer verder te gaan, ik heb ondertussen al wel een hoop optimalisaties in mijn hoofd waar ik toch een stuk sneller mee moet kunnen. Heb ook wel een aardig idee voor mijn AI.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Dirk
  • Registratie: November 2004
  • Laatst online: 01:35

Dirk

Coördinator frontpagemoderatie
.oisyn schreef op woensdag 12 november 2008 @ 02:21:
Niets mis met premature optimizations. Het is dan ook een veelgemaakte misquote van Knuth die geheel uit context gerukt is. Overigens ben ik al 2 weken met mijn solver bezig, dus er is niets prematures aan.

Daarnaast post ik geen andere scores totdat iemand anders die van mij gebeat heeft :Y)
Daar win ik enkel op tijd :P Over een 50x50 veld doet ie maar 8 seconden, en daar moet nog wel wat af kunnen met verdere optimalisaties. Maar goed dat is ook met een dom algorithme dat gewoon de eerst mogelijke move pakt. Overigens is dat single threaded op een Q9300.

[ Voor 3% gewijzigd door Dirk op 12-11-2008 09:08 ]

All statements are true in some sense, false in some sense, meaningless in some sense, true and false in some sense, true and meaningless in some sense, false and meaningless in some sense, and true and false and meaningless in some sense.


Acties:
  • 0 Henk 'm!

Verwijderd

Dirk schreef op woensdag 12 november 2008 @ 09:08:
[...]

Daar win ik enkel op tijd :P Over een 50x50 veld doet ie maar 8 seconden, en daar moet nog wel wat af kunnen met verdere optimalisaties. Maar goed dat is ook met een dom algorithme dat gewoon de eerst mogelijke move pakt. Overigens is dat single threaded op een Q9300.
8 sec van 0 - 100.000 ??? want dan zit er nog een hoop werk voor mij in :S

Acties:
  • 0 Henk 'm!

  • Dirk
  • Registratie: November 2004
  • Laatst online: 01:35

Dirk

Coördinator frontpagemoderatie
Verwijderd schreef op woensdag 12 november 2008 @ 09:28:
[...]


8 sec van 0 - 100.000 ??? want dan zit er nog een hoop werk voor mij in :S
Jup, 100000 moves in een 50x50 veld :)

Maar dus wel zonder enige intelligentie.

[ Voor 8% gewijzigd door Dirk op 12-11-2008 09:43 ]

All statements are true in some sense, false in some sense, meaningless in some sense, true and false in some sense, true and meaningless in some sense, false and meaningless in some sense, and true and false and meaningless in some sense.


Acties:
  • 0 Henk 'm!

Verwijderd

Dirk schreef op woensdag 12 november 2008 @ 09:42:
[...]

Jup, 100000 moves in een 50x50 veld :)

Maar dus wel zonder enige intelligentie.
mjah dat haal ik bij lange na niet . en heb er ook nog geen intelligentie in :P daarom zeg ik. zit nog hoop werk voor me in om de dingen wat sneller te maken.

Acties:
  • 0 Henk 'm!

  • Dricus
  • Registratie: Februari 2002
  • Laatst online: 18:34

Dricus

ils sont fous, ces tweakers

/me meldt zich aan :D

Ik ben eergisteren begonnen met een oplossing in C++. Momenteel ben ik nog bezig met het neerzetten van de basis. De volgende zaken zijn al gerealiseerd:
  • CGrid voor het speelveld
  • CGridLoader laadt speelveld.txt in een CGrid
  • CDroppingJewels die de droppende jewels managed
  • CDroppingJewelsLoader laadt kolommen.txt in een CDroppingJewels
  • CGameLogic voor de game logica met de volgende functionaliteit:
    • Initieel speelveld maken aan de hand van een leeg speelveld icm met de droppende jewels.
    • Beginnetje voor functionaliteit om het speelveld te doorzoeken op geldige figuren.

Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...


Acties:
  • 0 Henk 'm!

  • Dirk
  • Registratie: November 2004
  • Laatst online: 01:35

Dirk

Coördinator frontpagemoderatie
Verwijderd schreef op woensdag 12 november 2008 @ 09:55:
[...]


mjah dat haal ik bij lange na niet . en heb er ook nog geen intelligentie in :P daarom zeg ik. zit nog hoop werk voor me in om de dingen wat sneller te maken.
Ach, jij zit er zo te zien tenminste goed in, ik pruts meestal maar wat. De laatste jaren enkel VBA, waarbij het voldoende was áls het maar werkte. Ik ben dan ook begonnen in het voor mij nieuwe C++, aangezien VBA op mijn linux computer thuis geen optie was, basic, de enige taal waar ik ooit ook wel eens redelijk serieus in bezig ben geweest, toch echt niet geschikt is en ik ook geen zin had om te beginnen in java, wat ik nog een blauwe maandag op school gehad heb (en in tegenstelling tot de meeste klasgenoten moeiteloos heb afgesloten).
Ik heb er dan ook al de nodige uren in zitten om uberhaupt zo ver te komen als ik ben, maar de routine komt er nu wel een beetje in, dus het begint nu toch wel een beetje op te schieten.

All statements are true in some sense, false in some sense, meaningless in some sense, true and false in some sense, true and meaningless in some sense, false and meaningless in some sense, and true and false and meaningless in some sense.


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dirk schreef op woensdag 12 november 2008 @ 09:08:
[...]

Daar win ik enkel op tijd :P Over een 50x50 veld doet ie maar 8 seconden, en daar moet nog wel wat af kunnen met verdere optimalisaties. Maar goed dat is ook met een dom algorithme dat gewoon de eerst mogelijke move pakt. Overigens is dat single threaded op een Q9300.
Heb je een 50x50 testset? Volgens mij beat ik dat met gemak als ik de intelligentie eruit sloop :). Ik test momenteel net iets minder dan 1 miljoen kandidaten per seconde, op een E6750 @ 3.2 GHz (sneller maar minder cache)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Dirk
  • Registratie: November 2004
  • Laatst online: 01:35

Dirk

Coördinator frontpagemoderatie
Ik ga er ook wel vanuit dat jij met jouw ervaring mij moeiteloos verslaat, ik doe dan ook niet echt mee voor het winnen, maar gewoon voor de lol. De testset is een vereenvoudigde versie van die van BalusC (9 vervangen door 0, 8=1 en 7=2) aangezien hij de oorspronkelijke versie niet wist uit te spelen (en ik zag zelf ook geen moves meer).

All statements are true in some sense, false in some sense, meaningless in some sense, true and false in some sense, true and meaningless in some sense, false and meaningless in some sense, and true and false and meaningless in some sense.


Acties:
  • 0 Henk 'm!

  • Dricus
  • Registratie: Februari 2002
  • Laatst online: 18:34

Dricus

ils sont fous, ces tweakers

Heeft iemand al een multi-threaded oplossing geïmplementeerd? Ik ben zelf van plan meteen vanaf het begin hierin te voorzien, zodat het later niet een pens werk is om alles er op aan te passen. Mijn idee is om een thread-safe queue aan te leggen waarin ik de te-analyseren moves opsla. Vervolgens start ik dan even veel worker threads als er cores in de machine zitten, die dan uit die queue kunnen lezen wat ze moeten analyseren.

Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...


Acties:
  • 0 Henk 'm!

  • Pinobigbird
  • Registratie: Januari 2002
  • Laatst online: 21:40

Pinobigbird

doesn't share food!

MrHuge schreef op woensdag 12 november 2008 @ 13:10:
Heeft iemand al een multi-threaded oplossing geïmplementeerd? [...]
Zou niet weten hoe :S (Java hier)

Joey: Nice try. See the Netherlands is this make believe place where Peter Pan and Tinkerbell come from.
https://kattenoppasleiderdorp.nl
PV: 3080Wp ZO + 3465Wp NW = 6545Wp totaal 13°tilt


Acties:
  • 0 Henk 'm!

  • Dricus
  • Registratie: Februari 2002
  • Laatst online: 18:34

Dricus

ils sont fous, ces tweakers

Eeeh, hiermee misschien? (niet-java programmeur hier ;))

Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...


Acties:
  • 0 Henk 'm!

  • Dirk
  • Registratie: November 2004
  • Laatst online: 01:35

Dirk

Coördinator frontpagemoderatie
Pinobigbird schreef op woensdag 12 november 2008 @ 13:15:
[...]

Zou niet weten hoe :S (Java hier)
[google=java multithreading]?

Ik heb al zitten kijken hoe moeilijk dat is in C++ en het lijkt in mijn oplossing niet bijzonder moeilijk. Dus waarschijnlijk komt dat er ook nog wel in. Maar eerst wil ik gewoon een goede basis hebben. Voor een 'beetje' ombouwwerk achteraf ben ik niet zo bang.

[ Voor 23% gewijzigd door Dirk op 12-11-2008 13:21 ]

All statements are true in some sense, false in some sense, meaningless in some sense, true and false in some sense, true and meaningless in some sense, false and meaningless in some sense, and true and false and meaningless in some sense.


Acties:
  • 0 Henk 'm!

  • MLM
  • Registratie: Juli 2004
  • Laatst online: 12-03-2023

MLM

aka Zolo

als je meerdere velden gaat evalueren (of zelfs, meerdere games) heeft multithreading past echt zin.

ik zou niet over multithreading gaan nadenken totdat je een singlethreaded oplossing hebt :P

maar je kan er vast rekening mee houden door te zorgen dat je geen overbodige statics/globals oid gebruikt in je algoritme's :)

-niks-


Acties:
  • 0 Henk 'm!

  • Aloys
  • Registratie: Juni 2005
  • Niet online
Ik ben nu toch maar begonnen aan een c# oplossing, omdat het Objective-C leren toch tegenviel (Ik heb er ook niet zoveel tijd voor) en niemand van de PRG crew een mac heeft (toch?) :)

Mijn programma kan nu de volgende stappen en nu moet de AI nog:
- Speelveld inlezen + kolommen inlezen
- veld maken + vullen (blokjes van bovenaf erbij laten vallen)
- uitvoer.txt schrijven

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Mijn multithreaded implementatie is momenteel op een dual core langzamer dan m'n singlethreaded implementatie. Heeft voornamelijk te maken met cache locality (bepaalde functies kosten ineens meer tijd om uit te voeren), dus dat is wel te fixen.

[ Voor 5% gewijzigd door .oisyn op 12-11-2008 13:51 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • DaCoTa
  • Registratie: April 2002
  • Laatst online: 15:10
.oisyn schreef op woensdag 12 november 2008 @ 02:21:
Niets mis met premature optimizations. Het is dan ook een veelgemaakte misquote van Knuth die geheel uit context gerukt is. Overigens ben ik al 2 weken met mijn solver bezig, dus er is niets prematures aan.

Daarnaast post ik geen andere scores totdat iemand anders die van mij gebeat heeft :Y)
Geen zin om 3 kwartier te wachten, maar met zoveel tijd kom ik in de buurt van de 45 miljoen. Singlethreaded op een X2 4600+, dus niet een bijzonder vlotte machine.

Acties:
  • 0 Henk 'm!

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Patsers :+

Een slimme AI maken blijkt helaas niet zo makkelijk te gaan met de huidige OO opzet :( Het is uiteindelijk erg omslachtig en niet erg efficient geworden. * BalusC denkt dat hij de OO opzet maar eens serieus in de schop ga zetten (hoe vaak heb ik dit wel niet gezegd :X ). Een rauwe array met gems op fixed posities oid. Makkelijker te clonen enzo.

[ Voor 6% gewijzigd door BalusC op 12-11-2008 19:51 ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Wat maar weer bewijst dat premature optimizations lang niet altijd the root of all evil zijn ;)
DaCoTa schreef op woensdag 12 november 2008 @ 19:45:
[...]

Geen zin om 3 kwartier te wachten, maar met zoveel tijd kom ik in de buurt van de 45 miljoen.
Ja zo kan ik ook wel wat prognoses posten :P
Singlethreaded op een X2 4600+, dus niet een bijzonder vlotte machine.
Echter wel een lekkere memory bandwidth.

[ Voor 74% gewijzigd door .oisyn op 12-11-2008 20:45 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • DaCoTa
  • Registratie: April 2002
  • Laatst online: 15:10
.oisyn schreef op woensdag 12 november 2008 @ 20:42:
[...]
Ja zo kan ik ook wel wat prognoses posten :P
[...]
Echter wel een lekkere memory bandwidth.
Wat wel grappig is, ik heb wat veranderd dat ik niet het hele veld clone bij een volgende stap, alleen de kolommen die gaan veranderen. Voor die stap was arraycopy bijna 50% van de tijd, daarna nog maar 15% a 20%, maar het totaal is geen klap sneller geworden. Zal wel omdat het allemaal niet meer zo lekker dicht bij elkaar staat gok ik. En ik denk dat ik dat ook ga krijgen bij meerdere threads, maar dat gaan we zo wel zien denk ik :)

De prognoses zijn best betrouwbaar heb ik gemerkt. Als ik in de eerste 10% een bepaalde gemiddelde score haal, veranderd dat nauwelijks meer. Ik doe daarom meestal ook maar runs van 10% om te kijken hoe het gaat, het hele kwartier duurt me veel te lang ;)

[ Voor 5% gewijzigd door DaCoTa op 12-11-2008 22:46 ]


Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

DaCoTa schreef op woensdag 12 november 2008 @ 22:43:
[...]
De prognoses zijn best betrouwbaar heb ik gemerkt. Als ik in de eerste 10% een bepaalde gemiddelde score haal, veranderd dat nauwelijks meer. Ik doe daarom meestal ook maar runs van 10% om te kijken hoe het gaat, het hele kwartier duurt me veel te lang ;)
Hm, bij mij idem. Dat betekent dus ook dat ik wat werkends heb nu:
[table border=1 cellpadding=1 bordercolor=#000 fontsize=8][tr][td bgcolor=#fff height=10 width=10].[/][td bgcolor=#fff height=10 width=10]0[/][td bgcolor=#fff height=10 width=10]1[/][td bgcolor=#fff height=10 width=10]2[/][td bgcolor=#fff height=10 width=10]3[/][td bgcolor=#fff height=10 width=10]4[/][td bgcolor=#fff height=10 width=10]5[/][td bgcolor=#fff height=10 width=10]6[/][td bgcolor=#fff height=10 width=10]7[/][td bgcolor=#fff height=10 width=10]8[/][td bgcolor=#fff height=10 width=10]9[/][td bgcolor=#fff height=10 width=10]10[/][td bgcolor=#fff height=10 width=10]11[/][td bgcolor=#fff height=10 width=10]12[/][td bgcolor=#fff height=10 width=10]13[/][td bgcolor=#fff height=10 width=10]14[/][td bgcolor=#fff height=10 width=10]15[/][td bgcolor=#fff height=10 width=10]16[/][td bgcolor=#fff height=10 width=10]17[/][td bgcolor=#fff height=10 width=10]18[/][td bgcolor=#fff height=10 width=10]19[/][td bgcolor=#fff height=10 width=10]20[/][td bgcolor=#fff height=10 width=10]21[/][td bgcolor=#fff height=10 width=10]22[/][td bgcolor=#fff height=10 width=10]23[/][td bgcolor=#fff height=10 width=10]24[/][/tr][tr][td bgcolor=#fff height=10]0[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][/tr][tr][td bgcolor=#fff height=10]1[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][/tr][tr][td bgcolor=#fff height=10]2[/][td bgcolor=#000]x[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]3[/][td bgcolor=#000]x[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]4[/][td bgcolor=#000]x[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]5[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#0ff]2[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]6[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#000]x[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#0ff]2[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]7[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]8[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]9[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#aaa]6[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]10[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]11[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#0f0]1[/][td bgcolor=#0f0]1[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]12[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]13[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][/table]
Score....................: 9675250 points
Total moves..............: 100000
Succesful moves..........: 100000
Bad moves................: 0
Average score per move...: 96 points
Move with highest score..: #31216 (1500 points)

Misschien dat ik nog wat aan de prioriteiten van de mogelijke zetten moet verbouwen, maar het begin staat! Iets wat ook nog anders moet is het sorteren van de prioriteiten, dat gebeurd nu met bubblesort en daar ben ik uiteraard niet bepaald blij mee.

Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Ik merk dat ik moeite heb met het verbeteren van mijn initiële opzet, hetgeen best frustrerend is :P

Veel verder dan wat opties doorrekenen kom ik nog niet, ik zit te hopen op die ene brainwave waarmee ik echt een verschil kan maken..

Ik ben wel benieuwd waar bij jullie de prioriteiten liggen. Volgens mijn profiler zit het bij mij als volgt:
56% van de tijd wordt er naar mogelijkheden om te wissen gezocht
22% van de tijd worden deze mogelijkheden gewist en vervangen met data uit kolommen.txt
1.4% is maar nodig voor het zoeken naar volgende moves.
de rest wordt bijna allemaal door new/free/memcpy enzo opgevreten

Dit gemeten in de situatie waarbij ik steeds de beste move wegspeel

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Arjan schreef op woensdag 12 november 2008 @ 23:10:
Ik merk dat ik moeite heb met het verbeteren van mijn initiële opzet, hetgeen best frustrerend is :P
Seconded :P Ik merkte al van het begin af dat de opzet voor verbetering vatbaar was :X

* BalusC moet nog afwegen tussen "mooie code" en "praktische code". Alleen maar lowlevel coden en tegen binaire operaties aankijken word je ook moe van :P

  • kasper_vk
  • Registratie: Augustus 2002
  • Laatst online: 08-04 20:48
Na een paar avonden bouwen aan een goede opzet (in Java btw) heb ook ik een eerste resultaat :)

[table border=1 cellpadding=1 bordercolor=#000 fontsize=8][tr][td bgcolor=#fff height=10 width=10].[/][td bgcolor=#fff height=10 width=10]0[/][td bgcolor=#fff height=10 width=10]1[/][td bgcolor=#fff height=10 width=10]2[/][td bgcolor=#fff height=10 width=10]3[/][td bgcolor=#fff height=10 width=10]4[/][td bgcolor=#fff height=10 width=10]5[/][td bgcolor=#fff height=10 width=10]6[/][td bgcolor=#fff height=10 width=10]7[/][td bgcolor=#fff height=10 width=10]8[/][td bgcolor=#fff height=10 width=10]9[/][td bgcolor=#fff height=10 width=10]10[/][td bgcolor=#fff height=10 width=10]11[/][td bgcolor=#fff height=10 width=10]12[/][td bgcolor=#fff height=10 width=10]13[/][td bgcolor=#fff height=10 width=10]14[/][td bgcolor=#fff height=10 width=10]15[/][td bgcolor=#fff height=10 width=10]16[/][td bgcolor=#fff height=10 width=10]17[/][td bgcolor=#fff height=10 width=10]18[/][td bgcolor=#fff height=10 width=10]19[/][td bgcolor=#fff height=10 width=10]20[/][td bgcolor=#fff height=10 width=10]21[/][td bgcolor=#fff height=10 width=10]22[/][td bgcolor=#fff height=10 width=10]23[/][td bgcolor=#fff height=10 width=10]24[/][/tr][tr][td bgcolor=#fff height=10]0[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][/tr][tr][td bgcolor=#fff height=10]1[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][/tr][tr][td bgcolor=#fff height=10]2[/][td bgcolor=#000]x[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]3[/][td bgcolor=#000]x[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]4[/][td bgcolor=#000]x[/][td bgcolor=#f00]3[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#0ff]2[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]5[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]6[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#000]x[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]7[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]8[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]9[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#f00]3[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]10[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]11[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]12[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][tr][td bgcolor=#fff height=10]13[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][td bgcolor=#000]x[/][/tr][/table]
Score....................: 24279600 points
Total moves..............: 100000
Succesful moves..........: 100000
Bad moves................: 0
Average score per move...: 242 points
Move with highest score..: #78616 (1700 points)


De 'AI' is een prutsel van een uurtje werk: per situatie het hele veld aflopen, alle zetten domweg proberen en dan de (eerste van de) beste nemen. Enorm inefficiënt, net als mijn implementatie van het scannen van het veld op gevormde lijnen, maar 't is een begin ...

Op de één of andere manier werkt alleen m'n eigen scoretelling nog niet goed, de validators geven mijn uitvoer een hogere score dan mijn progsel zelf berekend ;)
Na initialisatie ziet m'n speelveld er exact hetzelfde uit, maar mijn Speelveld zegt dat 't maar 1650 waard is :?
Dat bugje moet ik eerst dus nog ff pletten voor ik m'n AI serieuze aandacht ga geven.

The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' but 'That's funny...'


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Zo, na al dat optimalisatiewerk in het framework eindelijk eens m'n AI aangepakt.

[table border=1 cellpadding=1 bordercolor=#000 fontsize=8 width=287][tr][td colspan=11][/][td colspan=10]1[/][td colspan=6]2[/][/][tr][td width=11]x[/][td]0[/][td]1[/][td]2[/][td]3[/][td]4[/][td]5[/][td]6[/][td]7[/][td]8[/][td]9[/][td]0[/][td]1[/][td]2[/][td]3[/][td]4[/][td]5[/][td]6[/][td]7[/][td]8[/][td]9[/][td]0[/][td]1[/][td]2[/][td]3[/][td]4[/][/][tr][td]0[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][/][tr][td]1[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][/][tr][td]2[/][td bgcolor=#000][/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#000][/][/][tr][td]3[/][td bgcolor=#000][/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]4[/][td bgcolor=#000][/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]5[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]6[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#000][/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]7[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]8[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]9[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#f00]3[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#0ff]2[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]10[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]11[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]12[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]13[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][/]
Score....................: 44403700 points
Total moves..............: 100000
Succesful moves..........: 100000
Bad moves................: 0
Average score per move...: 444 points
Move with highest score..: #54446 (2400 points)


In 10 minuten tijd (603s).

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • DaCoTa
  • Registratie: April 2002
  • Laatst online: 15:10
Yay, werk aan de winkel :)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
4155323343164631654622352
2463412265416546462446344
 54154515414163514321512 
 252363436635515211524   
 561611612526126225615   
  15432124425646316521   
  614355263145142 246    
  32142643434365         
  4324645165253          
  316125624  3           
   2515463               
       33           
     
Score: 39960200
Step:  100000
Avg:   399
Time:  15:03.110

Trouwens, hoe precies op 15 minuten worden de programma's afgekapt?

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Exact, neem ik aan. Ik laat de mijne al afkappen na exact 15 minuten :Y)

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Arjan schreef op woensdag 12 november 2008 @ 23:10:
Ik ben wel benieuwd waar bij jullie de prioriteiten liggen. Volgens mijn profiler zit het bij mij als volgt:
56% van de tijd wordt er naar mogelijkheden om te wissen gezocht
22% van de tijd worden deze mogelijkheden gewist en vervangen met data uit kolommen.txt
1.4% is maar nodig voor het zoeken naar volgende moves.
de rest wordt bijna allemaal door new/free/memcpy enzo opgevreten
Ik had eerst ongeveer hetzelfde, behalve dat new/free/memcpy bij mij vrij goedkoop waren aangezien ik mijn eigen memory manager had geïmplementeerd. Moves controleren was bij mij altijd dirt-cheap, ik checkte ook alleen wat opnieuw gecheckt moest worden.

Echter, als je verder vooruit wilt kijken, dan zul je wellicht op het idee komen individuele states te bewaren zodat je niet werk dubbel hoeft te doen. Hiervoor moet er ten eerste veel mem rondgekopiëerd worden, en ten tweede kost het veel geheugen. Nou is dat laatste nog niet zo'n heel erg groot probleem, ware het niet dat al je code langzamer wordt omdat je veel meer last krijgt van cache misses.

Als je routines zoals het vinden van mogelijke zetten en het doen van een zet (+ score bepalen en juwelen vallen etc.) een beetje goed uitgeoptimaliseerd zijn kom je op een gegeven moment op het punt dat het praktischer is om dingen steeds opnieuw te berekenen. Bijvoorbeeld bij mij, als ik 4 zetten vooruit kijk, dan is de state opslaan voor elke branch echt loeitraag. Alleen het bijhouden van mogelijke zetten is iets sneller (en om de staat van het veld te verkrijgen moet je voor iedere branch in de boom die 3 zetten opnieuw doen vanaf de beginstaat). Niets bijhouden en de moves steeds iteratief bepalen aan de hand van welk gedeelte van het veld nieuw is is al een heel stuk sneller, maar gewoonweg 3 zetten doen en dan het hele veld opnieuw bekijken voor alle mogelijken zetten is het allersnelst. 't Mooie daarvan is ook nog eens dat je code er een stuk simpeler van wordt :)

Nieuw resultaat trouwens:
[table border=1 cellpadding=1 bordercolor=#000 fontsize=8 width=287][tr][td colspan=11][/][td colspan=10]1[/][td colspan=6]2[/][/][tr][td width=11]x[/][td]0[/][td]1[/][td]2[/][td]3[/][td]4[/][td]5[/][td]6[/][td]7[/][td]8[/][td]9[/][td]0[/][td]1[/][td]2[/][td]3[/][td]4[/][td]5[/][td]6[/][td]7[/][td]8[/][td]9[/][td]0[/][td]1[/][td]2[/][td]3[/][td]4[/][/][tr][td]0[/][td bgcolor=#0ff]2[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][/][tr][td]1[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][/][tr][td]2[/][td bgcolor=#000][/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#000][/][/][tr][td]3[/][td bgcolor=#000][/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]4[/][td bgcolor=#000][/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]5[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]6[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#0f0]1[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#000][/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]7[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]8[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#0f0]1[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]9[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#f00]3[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]10[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]11[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]12[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]13[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][/]
Score....................: 45538300 points
Total moves..............: 100000
Succesful moves..........: 100000
Bad moves................: 0
Average score per move...: 455 points
Move with highest score..: #39282 (2850 points)

Wel in 16:31 :|

[ Voor 66% gewijzigd door .oisyn op 13-11-2008 02:48 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
* RobIII wijst en lacht :P O-) :>

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hah, net geen 13 minuten op m'n Core 2 Quad op m'n werk, so right back at ya :7 :P

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Patriot
  • Registratie: December 2004
  • Laatst online: 13:25

Patriot

Fulltime #whatpulsert

Hmm, maar de uiteindelijke PC zou toch waarschijnlijk geen quadcore worden? Of is inmiddels als bekend op welk systeem het precies gaat draaien?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Uit de TS:
Je kan ervan uit gaan dat de pc waarop je programma gerund wordt sneller is dan de gemiddelde consumentenpc en meerdere CPU-cores bevat, maar probeer je programma zo snel mogelijk te houden voor een hogere score
En daarbij wil ik de opmerking maken dat ik hoop dat ze vooral op de memory specs letten, en niet zozeer op de gigahertzen van de CPU's.

[ Voor 22% gewijzigd door .oisyn op 13-11-2008 15:13 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Er is toch al eerder opgemerkt dat je mag uitgaan van 1GB geheugen?

  • NetForce1
  • Registratie: November 2001
  • Laatst online: 13:16

NetForce1

(inspiratie == 0) -> true

BalusC schreef op donderdag 13 november 2008 @ 14:43:
Er is toch al eerder opgemerkt dat je mag uitgaan van 1GB geheugen?
Volgens mij doelt .oisyn hier vooral op de cache en de snelheid / banbreedte van de bus.

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Exact :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Ah ja natuurlijk :)

  • MLM
  • Registratie: Juli 2004
  • Laatst online: 12-03-2023

MLM

aka Zolo

1 GB geheugen is geen feest om mee te spelen hoor. Je wilt eigenlijk een stuk minder dan dat gebruiken, alle gegevens die je moet rondkopieren kosten tijd :)

update 18:10: Mijn "oplossing" scoort nu 23M punten in 15.6s ipv de eerdere 3 minuten :)

[ Voor 40% gewijzigd door MLM op 13-11-2008 18:13 ]

-niks-


  • Eskimootje
  • Registratie: Maart 2002
  • Laatst online: 22:08
eindelijk een score: 23328400 ding moet nog een stuk sneller en slimmer, maar hij werkt in ieder geval. Dat is toch redelijk belangrijk

  • Patriot
  • Registratie: December 2004
  • Laatst online: 13:25

Patriot

Fulltime #whatpulsert

.oisyn schreef op donderdag 13 november 2008 @ 14:24:
Uit de TS:

[...]

En daarbij wil ik de opmerking maken dat ik hoop dat ze vooral op de memory specs letten, en niet zozeer op de gigahertzen van de CPU's.
Meerdere cores is natuurlijk al bij twee. En dat is een beetje waar ik op doelde, je kunt beter uitgaan van die twee dan van vier en dan verliezen omdat je uit bent gegaan van een te zwaar systeem.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Je wilt je sowieso niet richten op een bepaald systeem. Je hebt een kwartier om een zo hoog mogelijke score te halen. Idealiter doe je in een kwartier precies 100.000 moves (ongeacht de snelheid van het systeem)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Patriot schreef op donderdag 13 november 2008 @ 21:22:
[...]


Meerdere cores is natuurlijk al bij twee. En dat is een beetje waar ik op doelde, je kunt beter uitgaan van die twee dan van vier en dan verliezen omdat je uit bent gegaan van een te zwaar systeem.
Ga je dan gokken hoeveel cores het systeem gaat hebben? Ik meen me te herinneren (en kan ook) dat je het aantal cores kan opvragen. Het is verder gewoon de kunst om je algoritme zodanig te schrijven dat die goed kan inschatten hoe veel moeite er in een zet gestoken mag worden.

  • MLM
  • Registratie: Juli 2004
  • Laatst online: 12-03-2023

MLM

aka Zolo

idealiter zou het denk ik meer zin hebben om meerdere spellen te evalueren met verschillende technieken. Misschien bestaat de uiteindelijke set wel uit veel cijfers en heeft het meer zin om zo lang mogelijk door te spelen voor minder punten per zet. Of misschien is de set erg vrijgevig, en kan je je volledig richten op zo hoog mogelijke combinaties te maken :) Tenminste, dat is mijn idee :P

-niks-


  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 16:23

Salandur

Software Engineer

Ik ga ook mee doen. Ik ben al begonnen, maar echt veel tijd heb ik niet.

Assumptions are the mother of all fuck ups | iRacing Profiel


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Boo-yah!
[table border=1 cellpadding=1 bordercolor=#000 fontsize=8 width=287][tr][td colspan=11][/][td colspan=10]1[/][td colspan=6]2[/][/][tr][td width=11]x[/][td]0[/][td]1[/][td]2[/][td]3[/][td]4[/][td]5[/][td]6[/][td]7[/][td]8[/][td]9[/][td]0[/][td]1[/][td]2[/][td]3[/][td]4[/][td]5[/][td]6[/][td]7[/][td]8[/][td]9[/][td]0[/][td]1[/][td]2[/][td]3[/][td]4[/][/][tr][td]0[/][td bgcolor=#0f0]1[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][/][tr][td]1[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][/][tr][td]2[/][td bgcolor=#000][/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#000][/][/][tr][td]3[/][td bgcolor=#000][/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]4[/][td bgcolor=#000][/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]5[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#0ff]2[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#ff0]5[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]6[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#000][/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#ff0]5[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]7[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#aaa]6[/][td bgcolor=#0ff]2[/][td bgcolor=#0f0]1[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]8[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#f00]3[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#ff0]5[/][td bgcolor=#f0f]4[/][td bgcolor=#0ff]2[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]9[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#f0f]4[/][td bgcolor=#0f0]1[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#f00]3[/][td bgcolor=#0f0]1[/][td bgcolor=#0ff]2[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#0ff]2[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]10[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#0f0]1[/][td bgcolor=#f0f]4[/][td bgcolor=#aaa]6[/][td bgcolor=#0f0]1[/][td bgcolor=#f00]3[/][td bgcolor=#f0f]4[/][td bgcolor=#f0f]4[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]11[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#ff0]5[/][td bgcolor=#f00]3[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]12[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][tr][td]13[/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][td bgcolor=#000][/][/][/]
Score....................: 45748250 points
Total moves..............: 100000
Succesful moves..........: 100000
Bad moves................: 0
Average score per move...: 457 points
Move with highest score..: #52370 (2900 points)

Met 3.7s to spare :P

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • DaCoTa
  • Registratie: April 2002
  • Laatst online: 15:10
Hey Bubka, ik dacht dat jij alleen nieuwe scores zou posten als je niet de hoogste zou zijn :P

Ik zit inmiddels rond de 43m, maar heb nog wel wat werkbespaarideeen. En moet nog multicore gaan inbouwen, maar daar heb ik ook een spannend ideetje voor. Hopen dat het gaat werken.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Het frappante is juist dat ik veel van mijn werkbesparingen eruit heb gehaald waardoor het sneller is geworden 8)7. Ik merk trouwens wel dat het steeds lastiger wordt om meer punten te halen. Als ik de tijdslimiet even achterwege laat en er 7x zo lang over doe dan haal ik "maar" 2 miljoen punten meer. Er valt nog best wat te optimizen, maar nooit zoveel dat het nog maar 1/7e van de tijd kost.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Impressive :)

Mijn poging tot een nieuwe implementatie van het speelveld is een beetje aan het versloffen :X Dit weekend gaan we het druk hebben; misschien op een avond als ik zin heb :) De deadline is nog ver.
Pagina: 1 ... 7 ... 16 Laatste

Dit topic is gesloten.