Programmeervuur zeeslag

Pagina: 1 ... 4 ... 7 Laatste
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 14-09 09:42
AlainS schreef op woensdag 03 februari 2010 @ 21:00:
Ik vind de score berekening prima zo. :)

Is het trouwens de bedoeling dat we ons voor de volgende competitie opnieuw aanmelden?
Nee hoor. Ik ga er van uit dat iedereen die aan de vorige competitie hebben meegedaan nu ook weer meedoen.
Alleen als de internetadressen zijn gewijzigd wil ik natuurlijk wel op de hoogte zijn. :+

Nieuwe deelnemers zijn nog steeds welkom!

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • Jegorex
  • Registratie: April 2004
  • Laatst online: 03-09 23:24
Onbekend schreef op woensdag 03 februari 2010 @ 21:49:
[...]

Nee hoor. Ik ga er van uit dat iedereen die aan de vorige competitie hebben meegedaan nu ook weer meedoen.
Alleen als de internetadressen zijn gewijzigd wil ik natuurlijk wel op de hoogte zijn. :+

Nieuwe deelnemers zijn nog steeds welkom!
Ik heb je nu een berichtje gestuurd met mijn adres :)

Acties:
  • 0 Henk 'm!

  • RetroTycoon
  • Registratie: Juli 2008
  • Laatst online: 13-09 23:20
Sinnergy schreef op woensdag 03 februari 2010 @ 02:32:
code:
1
5VE4.4VP12.4VN1.3VM6.3HG9.3VJ3.2HC10.2HI16.2VA11.2HB5


Wat krijg je hiermee?

edit: Het begint erop te lijken : zojuist 7 stappen 'gewonnen' op een moeilijker veld, maar er kunnen er nog af :P
ABCDEFGHIJKLMNOP
138
21439
31340
471241
548596021109281932
631145
7444
8543
94665352518261715
10475455271831
1150302134
1257422216
132335
142536
152437
16495658292033


Lekker ambigu veld, is mijn speler nog niet klaar voor, helaas. 60 :) Bugfix: 55 :*)

Acties:
  • 0 Henk 'm!

  • The Flying Dutchman
  • Registratie: Mei 2000
  • Laatst online: 29-07 21:57
Alle mogelijkheden proberen noem ik brute-forcen. Natuurlijk doe ik wel iets dat slimmer is dan `alle scheepjes random ergens neerplempen en kijken of het toevallig een mogelijke oplossing is'.

Meer wil ik er nu niet over kwijt ;-).

The Flying Dutchman


Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 14-09 09:42
The Flying Dutchman schreef op woensdag 03 februari 2010 @ 23:30:
[...]


Alle mogelijkheden proberen noem ik brute-forcen. Natuurlijk doe ik wel iets dat slimmer is dan `alle scheepjes random ergens neerplempen en kijken of het toevallig een mogelijke oplossing is'.

Meer wil ik er nu niet over kwijt ;-).
Volgens mij is dat exact het zelfde waar ik mee bezig ben. :) Maar dat van mij is nog lang niet af. Eerst wil ik nog een stukje code van de server zelf aanpassen.

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • Jegorex
  • Registratie: April 2004
  • Laatst online: 03-09 23:24
De mijne op dit moment:

code:
1
2
3
4
5HH1.4HL11.4VB1.3VG10.3HG6.3HC16.2HO4.2HE8.2VA9.2VM4 - 42
5HF12.4VG2.4VK3.3VA8.3HN6.3VB14.2VC10.2HH16.2HD15.2HL1 - 47
5HL2.4HF16.4HD13.3HD5.3HC11.3HM10.2VD8.2HJ9.2HA15.2HH3 - 38
5HJ11.4HK16.4HF14.3HC8.3HI4.3HE1.2HO2.2HA5.2HF16.2HK6 - 40
RetroTycoon schreef op woensdag 03 februari 2010 @ 23:26:
[...]

ABCDEFGHIJKLMNOP
138
21439
31340
471241
548596021109281932
631145
7444
8543
94665352518261715
10475455271831
1150302134
1257422216
132335
142536
152437
16495658292033


Lekker ambigu veld, is mijn speler nog niet klaar voor, helaas. 60 :) Bugfix: 55 :*)
In de basis lijken onze spelers ongeveer hetzelfde te doen, alleen snap ik bij jouw speler stap 16-17 niet helemaal.
Pas bij stap 34 lijkt hij weer op het goede pad te komen ;)

Ik heb nog een paar ideeen die ik er morgen in wil bouwen, maar dit is zoals de mijne het nu doet:
ABCDEFGHIJKLMNOP
128
21127
33926
42825
522232417211920
64103029
7531
8632
918171516141213
1039404133
114235
124334
1336
1437
1538
164445

[ Voor 97% gewijzigd door Jegorex op 04-02-2010 05:34 ]


Acties:
  • 0 Henk 'm!

  • Jegorex
  • Registratie: April 2004
  • Laatst online: 03-09 23:24
...

[ Voor 147% gewijzigd door Jegorex op 04-02-2010 05:33 . Reden: dubbel post ]


Acties:
  • 0 Henk 'm!

  • RetroTycoon
  • Registratie: Juli 2008
  • Laatst online: 13-09 23:20
Jegorex schreef op donderdag 04 februari 2010 @ 05:16:
De mijne op dit moment:

code:
1
2
3
4
5HH1.4HL11.4VB1.3VG10.3HG6.3HC16.2HO4.2HE8.2VA9.2VM4 - 42
5HF12.4VG2.4VK3.3VA8.3HN6.3VB14.2VC10.2HH16.2HD15.2HL1 - 47
5HL2.4HF16.4HD13.3HD5.3HC11.3HM10.2VD8.2HJ9.2HA15.2HH3 - 38
5HJ11.4HK16.4HF14.3HC8.3HI4.3HE1.2HO2.2HA5.2HF16.2HK6 - 40



[...]

In de basis lijken onze spelers ongeveer hetzelfde te doen, alleen snap ik bij jouw speler stap 16-17 niet helemaal.
Pas bij stap 34 lijkt hij weer op het goede pad te komen ;)
Dat was dus de bugfix, nu zijn 16-17 weer logisch :) Hoe voorkom jij die overhead die ontstaat bij mij tussen 17-34?

Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
RetroTycoon schreef op donderdag 04 februari 2010 @ 07:20:
[...]


Dat was dus de bugfix, nu zijn 16-17 weer logisch :) Hoe voorkom jij die overhead die ontstaat bij mij tussen 17-34?
Ik zou iets doen met informatie uit 16, want dan had je het schip eerder af gehad en had je 23-25 niet gedaan. Ik weet niet hoe je AI eruit ziet, maar kan je na 16 de kansen van de omliggende cellen vergroten? P11 en P13 zijn minimaal 50%.

En misschien moeilijk te programmeren, maar na 23-24, is 25 niet mogelijk. Een schip van 1 lengte? Hij moet namelijk horizontaal liggen (23 en 24 hebben niets gevonden).

Acties:
  • 0 Henk 'm!

  • Jegorex
  • Registratie: April 2004
  • Laatst online: 03-09 23:24
RetroTycoon schreef op donderdag 04 februari 2010 @ 07:20:
[...]


Dat was dus de bugfix, nu zijn 16-17 weer logisch :) Hoe voorkom jij die overhead die ontstaat bij mij tussen 17-34?
Bij mij schiet hij niet op die gebieden omdat alle schepen op N en M al gezonken zijn tegen de tijd dat hij bij P aankomt.
Hoe ik het precies doe weet ik zo niet, ik doe verschillende kans berekeningen die ik dan weer combineer.

Acties:
  • 0 Henk 'm!

  • StM
  • Registratie: Februari 2005
  • Laatst online: 12-09 12:17

StM

Eerste AI versie is af :D

Number of shots : 51
Placed ships : 5HI8.4VA3.4HE13.3HI3.3HB10.3VL12.2HE3.2VO4.2HJ16.2VN12

Ik heb al 2 optimalisaties bedacht die ik nog wil gaan doorvoeren indien ik tijd heb :)

//edit: Ik heb trouwens niet zo'n mooie dingetje om de volgorde te analyzen van een speelsessie. Misschien maak ik die ook nog.

Afbeeldingslocatie: http://dev.site-to-make.nl/dump/_1265304274690.png

[ Voor 32% gewijzigd door StM op 04-02-2010 18:25 ]


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:39
Je kunt de RML visualizer van dcm360 gebruiken.

Zelf gebruik in een PHP scriptje om plaatjes te generen, door de parameters in de URL te zetten. Bijvoorbeeld http://hell.student.utwente.nl/zeeslag?Ships=5HJ11.4HK16.4HF14.3HC8.3HI4.3HE1.2HO2.2HA5.2HF16.2HK6&Shots=SK16.SL16.WJ16.SM16.SN16.WO16.SK11.SJ11.SL11.WI11.SM11.SN11.SF14.SG14.WE14.SH14.SI14.WE16.SF16.SG16.SE1.WE2.WD1.SF1.SG1.SK4.WK5.SJ4.SI4.SD8.SE8.SC8.WK2.SK6.SL6.WA2.SO2.SP2.SA5.SB5 wordt:
Afbeeldingslocatie: http://hell.student.utwente.nl/zeeslag?Ships=5HJ11.4HK16.4HF14.3HC8.3HI4.3HE1.2HO2.2HA5.2HF16.2HK6&Shots=SK16.SL16.WJ16.SM16.SN16.WO16.SK11.SJ11.SL11.WI11.SM11.SN11.SF14.SG14.WE14.SH14.SI14.WE16.SF16.SG16.SE1.WE2.WD1.SF1.SG1.SK4.WK5.SJ4.SI4.SD8.SE8.SC8.WK2.SK6.SL6.WA2.SO2.SP2.SA5.SB5
(Hij begrijpt Rows, Cols, Ships en Shots, maar alle parameters zijn in principe optioneel.)

Acties:
  • 0 Henk 'm!

  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

Soultaker schreef op donderdag 04 februari 2010 @ 18:35:
Je kunt de RML visualizer van dcm360 gebruiken.

Zelf gebruik in een PHP scriptje om plaatjes te generen, door de parameters in de URL te zetten. Bijvoorbeeld ...
Omg, ik heb precies dezelfde uitvoer met mijn progsel. :) Ik bedoel dus dat ik precies dezelfde schoten zou lossen. Mijn plaatje is anders. :p

[ Voor 9% gewijzigd door zwippie op 04-02-2010 19:02 ]

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:39
Hehe, dat kan goed, want ik heb de parameters uit een random potje van testcompetitie 1 gehaald. Blijkbaar had ik het potje van SaphuA tegen jou aangeklikt, wat verklaart waarom je precies dezelfde uitvoer krijgt. :P

Acties:
  • 0 Henk 'm!

  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

Doh! :P

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


Acties:
  • 0 Henk 'm!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 02-09 11:02

D2k

ik heb een bug, ik blijf maar op hetzelfde veld schieten :/ Ach dan hebben we wat te doen ;)

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

  • qanar
  • Registratie: Februari 2008
  • Laatst online: 21-05-2019
* qanar vloekt hartgrondig

Blijkbaar loop ik tegen een geheugenlimiet van mijn hostingbedrijf aan
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 16 bytes) in /home2/qanarbe/public_html/programs/zeeslag-qanar.php on line 104
Kan ik hier zelf nog iets aan doen?

Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
Eindelijk werkt de AIbrute force. Ik heb van het voorbeeld uit de openingspost de Rows en Cols getest. Er zijn 675 valide mogelijkheden (zouden geen dubbele tussen mogen zitten, maar dat moet ik nog controleren). Ik doe er net geen 1,5 seconde over.
code:
1
?Action=Fire&Opponent=Name1&Rows=4.0.3.0.4.0.3.1.1.1.2.2.4.0.5.0&Cols=3.1.2.2.1.7.2.2.2.2.2.1.3.0.0.0&Shots=WM15.SE15.SD15

Opgeteld zijn de kansen als volgt
ColABCDEFGHIJKLMNOP
Row3122172222213000
142283503541402942332212021651468866
20
33428711413028335934819611415510988
40
547074179175120304280329330312270156101
60
731375121120413480566911121822589161
81102470103
916657633
101113435127
112375607368
122460445445
13438934179175134599714322026725557412
140
155100246344328259372325240291274299176121
160


en het gebruikte voorbeeld van dcm_360 (92 oplossingen mogelijk):
ColABCDEFGHIJKLMNOP
Row1111233122432211
13243612685656
224545663232
30
435656681232202444
526666121212684412
6220201218103834441212
70
8354747420181818
90
100
115162828285066546464421010
120
130
144161620322448443228828282420
150
166262618241038341616546086803232

[ Voor 48% gewijzigd door Bolukan op 04-02-2010 21:20 . Reden: Extra voorbeeld ]


Acties:
  • 0 Henk 'm!

  • Jegorex
  • Registratie: April 2004
  • Laatst online: 03-09 23:24
Soultaker schreef op donderdag 04 februari 2010 @ 18:35:
Je kunt de RML visualizer van dcm360 gebruiken.

Zelf gebruik in een PHP scriptje om plaatjes te generen, door de parameters in de URL te zetten. Bijvoorbeeld http://hell.student.utwente.nl/zeeslag?Ships=5HJ11.4HK16.4HF14.3HC8.3HI4.3HE1.2HO2.2HA5.2HF16.2HK6&Shots=SK16.SL16.WJ16.SM16.SN16.WO16.SK11.SJ11.SL11.WI11.SM11.SN11.SF14.SG14.WE14.SH14.SI14.WE16.SF16.SG16.SE1.WE2.WD1.SF1.SG1.SK4.WK5.SJ4.SI4.SD8.SE8.SC8.WK2.SK6.SL6.WA2.SO2.SP2.SA5.SB5 wordt:
Afbeeldingslocatie: http://hell.student.utwente.nl/zeeslag?Ships=5HJ11.4HK16.4HF14.3HC8.3HI4.3HE1.2HO2.2HA5.2HF16.2HK6&Shots=SK16.SL16.WJ16.SM16.SN16.WO16.SK11.SJ11.SL11.WI11.SM11.SN11.SF14.SG14.WE14.SH14.SI14.WE16.SF16.SG16.SE1.WE2.WD1.SF1.SG1.SK4.WK5.SJ4.SI4.SD8.SE8.SC8.WK2.SK6.SL6.WA2.SO2.SP2.SA5.SB5
(Hij begrijpt Rows, Cols, Ships en Shots, maar alle parameters zijn in principe optioneel.)
De mijne doet het in vrijwel dezelfde 40 schoten :D
Afbeeldingslocatie: http://hell.student.utwente.nl/zeeslag?Ships=5HJ11.4HK16.4HF14.3HC8.3HI4.3HE1.2HO2.2HA5.2HF16.2HK6&Shots=SK16.SL16.WJ16.SM16.SN16.WO16.SK11.SJ11.SL11.WI11.SM11.SN11.SF14.SG14.WE14.SH14.SI14.WE16.SG16.SF16.SE1.WE2.WD1.SF1.SG1.SK4.WK5.SJ4.SI4.SD8.SE8.SC8.WL2.SL6.SK6.WB2.SP2.SO2.SB5.SA5&GameId=1265314246d5cd90d03cfa834750a429ef6d57d2f0

Acties:
  • 0 Henk 'm!

  • StM
  • Registratie: Februari 2005
  • Laatst online: 12-09 12:17

StM

wow hoe heb je dat voor elkaar gekregen. Ik heb er 54 voor nodig en ik heb enkel een idee om er 1 weg te optimalizeren :/

Afbeeldingslocatie: http://hell.student.utwente.nl/zeeslag?Ships=5HJ11.4HK16.4HF14.3HC8.3HI4.3HE1.2HO2.2HA5.2HF16.2HK6&Shots=WA14.SN11.SM11.SL11.SK11.SJ11.WE4.WA16.SG16.WH16.SF16.WE16.WO8.SK4.SJ4.SI4.WE2.WG8.WL1.WG2.WH1.WN5.WM14.WD5.WO16.WE14.SK16.SL16.SM16.SN16.WI6.WH5.SG14.SH14.SI14.SF14.WP1.SE8.SD8.SC8.WB1.WG6.SF1.SG1.SE1.WA6.WL5.WO6.SO2.SP2.SK6.SL6.SB5.SA5/

Acties:
  • 0 Henk 'm!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 02-09 11:02

D2k

Kijk, 54 schoten, dat gaat er al beter op lijken.

ABCDEFGHIJKLMNOP
14171819202923640
23125428225341
3
4
551242526273043
6
7
8394616101178952
9
10248491521
113147503445
1242363544
1313
1414
153738323315
16



Heb nog wat afzwaaiers, maar ik heb nog 2 optimalisatiestappen in mijn hoofd.

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

  • RetroTycoon
  • Registratie: Juli 2008
  • Laatst online: 13-09 23:20
Bolukan schreef op donderdag 04 februari 2010 @ 09:32:
[...]


Ik zou iets doen met informatie uit 16, want dan had je het schip eerder af gehad en had je 23-25 niet gedaan. Ik weet niet hoe je AI eruit ziet, maar kan je na 16 de kansen van de omliggende cellen vergroten? P11 en P13 zijn minimaal 50%.

En misschien moeilijk te programmeren, maar na 23-24, is 25 niet mogelijk. Een schip van 1 lengte? Hij moet namelijk horizontaal liggen (23 en 24 hebben niets gevonden).
Hoe bedoel je dit? Ik zie het zelf namelijk niet in.

Acties:
  • 0 Henk 'm!

  • hostname
  • Registratie: April 2009
  • Laatst online: 21:35
qanar schreef op donderdag 04 februari 2010 @ 21:09:
* qanar vloekt hartgrondig

Blijkbaar loop ik tegen een geheugenlimiet van mijn hostingbedrijf aan

[...]


Kan ik hier zelf nog iets aan doen?
Je kan de php.ini instelling memory_limit wijzigen, bijv. in een .htaccess of met ini_set(). Ben overigens wel benieuwd waarvoor je 64MB geheugen nodig hebt.

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:39
Als je bij een website hoster host, mag je dat meestal niet zelf wijzigen. ;) Als je een (virtual) dedicated server hebt, kan dat natuurlijk wel.

Acties:
  • 0 Henk 'm!

  • StM
  • Registratie: Februari 2005
  • Laatst online: 12-09 12:17

StM

Maar serieus waar heb je 64 mb voor nodig :x Ik heb bij mn fire een peak usage van 230 kb...

Acties:
  • 0 Henk 'm!

  • Alain
  • Registratie: Oktober 2002
  • Niet online
Site.to.Make schreef op donderdag 04 februari 2010 @ 23:16:
Maar serieus waar heb je 64 mb voor nodig :x Ik heb bij mn fire een peak usage van 230 kb...
Als ik een zo'n 20.000 velden doorreken op mijn host krijg ik ook een melding dat ik teveel geheugen gebruik (32MB). Het script dat dit doet kan ik wel optimaliseren, maar ik gebruik het gewoon lokaal. Aangezien mijn speler dit toch niet nodig heeft. :)

You don't have to be crazy to do this job, but it helps ....


Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
RetroTycoon schreef op donderdag 04 februari 2010 @ 22:14:
[...]

Hoe bedoel je dit? Ik zie het zelf namelijk niet in.
Een schip bestaat uit minimaal 2 delen. Als je een deel vindt, hebben de cellen er omheen 25% kans. Gezien kolom O niet kan en P de laatste kolom is, hebben de cellen eronder en erboven dus 50% kans bij een schip van 2 delen. Langere schepen zorgen voor de ruim 50% kans.

Acties:
  • 0 Henk 'm!

  • StM
  • Registratie: Februari 2005
  • Laatst online: 12-09 12:17

StM

AlainS schreef op donderdag 04 februari 2010 @ 23:33:
[...]


Als ik een zo'n 20.000 velden doorreken op mijn host krijg ik ook een melding dat ik teveel geheugen gebruik (32MB). Het script dat dit doet kan ik wel optimaliseren, maar ik gebruik het gewoon lokaal. Aangezien mijn speler dit toch niet nodig heeft. :)
Pff in de top staat mn velden doorreken script die al een paar dagen draait op 6 mb in use.. Incl de php binairy. Of is hier soms wat code rijp voor het topic "Slechtste programmeervoorbeelden deel 4" 8)7 :+

Acties:
  • 0 Henk 'm!

  • Alain
  • Registratie: Oktober 2002
  • Niet online
Site.to.Make schreef op donderdag 04 februari 2010 @ 23:54:
Of is hier soms wat code rijp voor het topic "Slechtste programmeervoorbeelden deel 4" 8)7 :+
Ongetwijfeld. :) Maar dat boeit me niet, want het script gebruik ik alleen zelf en doet wat het moet doen. :P

You don't have to be crazy to do this job, but it helps ....


Acties:
  • 0 Henk 'm!

  • StM
  • Registratie: Februari 2005
  • Laatst online: 12-09 12:17

StM

Mja ook als je het zelf gebruikt is het best wel handig dat het niet na een paar uur crashed of dat de OutOfMemory killer je server uptime moet redden :p

Acties:
  • 0 Henk 'm!

  • Alain
  • Registratie: Oktober 2002
  • Niet online
Site.to.Make schreef op vrijdag 05 februari 2010 @ 00:24:
Mja ook als je het zelf gebruikt is het best wel handig dat het niet na een paar uur crashed of dat de OutOfMemory killer je server uptime moet redden :p
Je hebt wel gelijk hoor!

Het is een hutsel-frutsel scriptje dat hooguit 5 minuten draait en waarvan de resultaten korter leven dan dat het script nodig heeft om ze te produceren. Het doet wat het moet doen en ik heb al genoeg moeite om tijd te reserveren om mijn algoritme (waar het uiteindelijk om draait) beter te krijgen. :)

edit:
Ik heb de fout gevonden btw, ik stond output te verzamelen terwijl dit helemaal niet meer gebruikt werd. :P

[ Voor 9% gewijzigd door Alain op 05-02-2010 19:51 ]

You don't have to be crazy to do this job, but it helps ....


Acties:
  • 0 Henk 'm!

  • Jegorex
  • Registratie: April 2004
  • Laatst online: 03-09 23:24
Site.to.Make schreef op donderdag 04 februari 2010 @ 21:35:
wow hoe heb je dat voor elkaar gekregen. Ik heb er 54 voor nodig en ik heb enkel een idee om er 1 weg te optimalizeren :/

[afbeelding]
Ga voor elke cel berekenen wat de kans is dat er een schip zit.
Dan zal K16 waarschijnlijk het eerste schot zijn.

Verder moet je het zelf maar uitzoeken ;)

Acties:
  • 0 Henk 'm!

  • - peter -
  • Registratie: September 2002
  • Laatst online: 09-09 20:00
Bolukan schreef op donderdag 04 februari 2010 @ 21:09:
Eindelijk werkt de AIbrute force. Ik heb van het voorbeeld uit de openingspost de Rows en Cols getest. Er zijn 675 valide mogelijkheden (zouden geen dubbele tussen mogen zitten, maar dat moet ik nog controleren). Ik doe er net geen 1,5 seconde over.
code:
1
?Action=Fire&Opponent=Name1&Rows=4.0.3.0.4.0.3.1.1.1.2.2.4.0.5.0&Cols=3.1.2.2.1.7.2.2.2.2.2.1.3.0.0.0&Shots=WM15.SE15.SD15

Opgeteld zijn de kansen als volgt
ColABCDEFGHIJKLMNOP
Row3122172222213000
142283503541402942332212021651468866
20
33428711413028335934819611415510988
40
547074179175120304280329330312270156101
60
731375121120413480566911121822589161
81102470103
916657633
101113435127
112375607368
122460445445
13438934179175134599714322026725557412
140
155100246344328259372325240291274299176121
160
Ik snap even niet wat hier nu precies gebeurt. Waarom zijn BCDE8-BCDE12 niet kanshebbers voor schepen? Die rijen kunnen toch best een schip bevatten? Of mis ik nu een heel diepe logica die mij zou moeten vertellen dat het onmogelijk is voor een schip om daar te liggen?

Acties:
  • 0 Henk 'm!

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 18-08 21:31
- peter - schreef op vrijdag 05 februari 2010 @ 01:25:
[...]


Ik snap even niet wat hier nu precies gebeurt. Waarom zijn BCDE8-BCDE12 niet kanshebbers voor schepen? Die rijen kunnen toch best een schip bevatten? Of mis ik nu een heel diepe logica die mij zou moeten vertellen dat het onmogelijk is voor een schip om daar te liggen?
Hij heeft een brute force gedaan, als op 1 van die plaatsen een schip wordt neergelegd zijn er geen geldige oplossingen voor het probleem meer.
Daarnaast is het ook zonder bruteforce logisch dat op een groot deel van die plaatsen geen schip ligt.
spoiler:
Maar ik ga nog niet uitleggen waarom ;P eerst zelf maar even iets in elkaar proberen te prutsen

Acties:
  • 0 Henk 'm!

  • - peter -
  • Registratie: September 2002
  • Laatst online: 09-09 20:00
_js_ schreef op vrijdag 05 februari 2010 @ 01:39:
[...]

Hij heeft een brute force gedaan, als op 1 van die plaatsen een schip wordt neergelegd zijn er geen geldige oplossingen voor het probleem meer.
Daarnaast is het ook zonder bruteforce logisch dat op een groot deel van die plaatsen geen schip ligt.
Aha, dat mistte ik even. Hmm, en dat in 1.5 seconde, excellent.
Alleen 675 unieke mogelijkheden? Hmm, mijn bruteforce, die er dan wel 4 minuten de tijd voor neemt komt normaliter op zo'n 4 a 5 unieke mogelijkheden per random veld. Dus dat lijkt me een beetje veel. Zal morgen eens kijken wat er bij dat veld bij mij uitrolt.

Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
:o :o Bugje. bij de 675 mis ik nog oplossingen, doordat ik als een ´takje´ vastliep, de hele ´tak´ weggooide. Nu krijg ik de hier beroemde geheugen problemen van PHP bij meer dan ruim 2000 oplossingen. Vanavond de code omschrijven, zodat ik van het weekend mee kan doen.
- peter - schreef op vrijdag 05 februari 2010 @ 01:48:
[...]

Alleen 675 unieke mogelijkheden? Hmm, mijn bruteforce, die er dan wel 4 minuten de tijd voor neemt komt normaliter op zo'n 4 a 5 unieke mogelijkheden per random veld. Dus dat lijkt me een beetje veel. Zal morgen eens kijken wat er bij dat veld bij mij uitrolt.
Ik zal tzt een lijst van mogelijke oplossingen laten zien, of een download. Het zijn er echt soms wel meer dan 2000 bij een bepaalde Rows/Cols combinatie. Maar het verschilt enorm per veld.

Acties:
  • 0 Henk 'm!

  • qanar
  • Registratie: Februari 2008
  • Laatst online: 21-05-2019
hmmpf... inderdaad... ik had niet beseft dat dit 64mb was...

Geen idee wat het probleem dan is... ik hou toch echt maar een 16*16 array van int's + dan alle data die je binnenkrijgt bij...

Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
Zou het aan onze PHP versie liggen?

NB: Moet ik nou vanwege het 'simpele' spelletje Zeeslagje extra geheugen in mijn PC stoppen? :P :P

[ Voor 30% gewijzigd door Bolukan op 05-02-2010 15:40 ]


Acties:
  • 0 Henk 'm!

  • The Flying Dutchman
  • Registratie: Mei 2000
  • Laatst online: 29-07 21:57
Bolukan schreef op vrijdag 05 februari 2010 @ 09:25:
:o :o Bugje. bij de 675 mis ik nog oplossingen, doordat ik als een ´takje´ vastliep, de hele ´tak´ weggooide. Nu krijg ik de hier beroemde geheugen problemen van PHP bij meer dan ruim 2000 oplossingen. Vanavond de code omschrijven, zodat ik van het weekend mee kan doen.


[...]


Ik zal tzt een lijst van mogelijke oplossingen laten zien, of een download. Het zijn er echt soms wel meer dan 2000 bij een bepaalde Rows/Cols combinatie. Maar het verschilt enorm per veld.
Één van de games door Janoz gegeven in het begin van dit topic zat volgens mij op 6700 mogelijke oplossingen (ik kan er een paar honderd naast zitten, het was iig in de 6000).

The Flying Dutchman


Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
Bug weggewerkt. Geheugenprobleem opgelost door de helft om te bouwen. Er zitten nog dubbeltellingen in de oplossingen (netto 6346), maar het werkt. Onderstaand probleem in 33 zetten.

Afbeeldingslocatie: http://www.bolukan.nl/zeeslag/zeeslag_33419724.png
Met dank aan: http://hell.student.utwente.nl/zeeslag?

en 3VL1.5VO2.2VH4.2VB5.3VN8.2VA10.2HK10.4VD11.3HM12.4HG16
Afbeeldingslocatie: http://hell.student.utwente.nl/zeeslag?Ships=3VL1.5VO2.2VH4.2VB5.3VN8.2VA10.2HK10.4VD11.3HM12.4HG16&Shots=SD11.WL16.SG16.SH16.SI16.SJ16.SO5.SN10.SN12.SO2.SO3.SO4.SH5.WH6.SH4.SL1.SL2.SL3.SO6.WA5.SA11.SB5.SB6.SA10.SD12.SD13.SD14.SK10.SL10.SM12.SN8.SN9.SO12

[ Voor 69% gewijzigd door Bolukan op 06-02-2010 00:31 . Reden: Link naar opgeschoonde oplossingen ]


Acties:
  • 0 Henk 'm!

  • EdwinG
  • Registratie: Oktober 2002
  • Laatst online: 12-09 20:53
Ik moet helaas zeggen dat het mij niet gaat lukken om nog mee te doen met deze competitie, wat misschien door mijn afwezigheid in dit topic al duidelijk was geworden. Interessant blijft het zeker wel :)

Bezoek eens een willekeurige pagina


Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 14-09 09:42
Jammer dat je niet mee kan doen, maar er is nog steeds ruimte voor meer spelers! :)

Ik heb overigens een paar kleine aanpassingen in de communicatie van de server doorgevoerd. Als iemand daarmee problemen ondervindt, hoor ik dat graag. :)


Nu nog een dagje programmeren aan mijn eigen speler, want daar ben ik deze week nog niet aan toe gekomen. :+

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • qanar
  • Registratie: Februari 2008
  • Laatst online: 21-05-2019
Ben wat aan het debuggen geweest op die memory fout...
zit er iets mis in de volgende regel?

PHP:
1
$squares[ $i - 1 ][ $j ] = $squares[ $i - 1 ][ $j ] + 10;


Daar lijkt het fout te gaan.

EXTRA... of kan het natuurlijk zijn dat dit een out-of-bounds is, ik ben niet zeker of php-arrays daar last van kunnen hebben O.O

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 14-09 09:42
qanar schreef op zaterdag 06 februari 2010 @ 13:42:
Ben wat aan het debuggen geweest op die memory fout...
zit er iets mis in de volgende regel?

PHP:
1
$squares[ $i - 1 ][ $j ] = $squares[ $i - 1 ][ $j ] + 10;


Daar lijkt het fout te gaan.

EXTRA... of kan het natuurlijk zijn dat dit een out-of-bounds is, ik ben niet zeker of php-arrays daar last van kunnen hebben O.O
Hier haal je wel een waarde op uit een array, en dat zou weleens tot problemen kunnen leiden.
Init je die waarde wel op 0?

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • qanar
  • Registratie: Februari 2008
  • Laatst online: 21-05-2019
Onbekend schreef op zaterdag 06 februari 2010 @ 13:49:
[...]

Hier haal je wel een waarde op uit een array, en dat zou weleens tot problemen kunnen leiden.
Init je die waarde wel op 0?
bah... was inderdaad gewoon een out of bounds als ik $squares[ -1 ][ 0 ] oid had...

Achja kan weer verder en blijkbaar loop ik nu tegen de 5 seconden regel aan...

Edit: begin gemiddeld rond de 52 schoten te zitten. Ben er dus zeker morgen terug bij :D

[ Voor 9% gewijzigd door qanar op 06-02-2010 16:07 ]


Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Bolukan schreef op vrijdag 05 februari 2010 @ 23:54:
Bug weggewerkt. Geheugenprobleem opgelost door de helft om te bouwen. Er zitten nog dubbeltellingen in de oplossingen (netto 6346), maar het werkt.
3986 oplossingen mogelijk, gegarandeerd vrij van dubbelen. Helaas heb ik er een vervelende hoeveelheid van 149 miljard kloktikken voor nodig, terwijl de bruikbare limiet voor mij op zon 60 miljard ligt. Ik zou eens kunnen kijken of een andere compiler of andere instellingen vlotter gaan, maar meer dan 50% eraf verwacht ik eigenlijk niet helaas...

Overigens nog een opmerking voor Onbekend, het zit namelijk zo dat de speler die ik morgen mee wil laten spelen niet snel genoeg is om meerdere potjes tegelijkertijd als speler2 mee te doen. Als dat toch gebeurd komen er 503 statusmeldingen terug, dus dit is denk ik iets om rekening mee te houden ;)

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 14-09 09:42
Ik probeer de spelers zo verspreid mogelijk te belasten, maar dat zal zeker niet lukken.

Als een spelletje gedaan is, gaat hij gewoon verder met het volgende spel, en dat kan een tegenspeler zijn die nog niet klaar is met zijn vorige spel.
Je moet er dus zeker rekening mee houden dat er meerdere spellen tegelijkertijd draaien.
(Misschien is het voor jou een idee om een maximum zoekdiepte in te stellen waardoor hij niet alle combinaties gaat doorrekenen.)

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Onbekend schreef op zaterdag 06 februari 2010 @ 16:41:
(Misschien is het voor jou een idee om een maximum zoekdiepte in te stellen waardoor hij niet alle combinaties gaat doorrekenen.)
Het beperken van de zoekdiepte is zeker geen probleem (sterker nog, dat zal wel hard nodig zijn), in dat geval geef ik aan mn threadpool mee 'Reken door maximaal tot aan dat tijdstip'. Waar ik meer mee zit, is dat ik (theoretisch) met twee spellen tegelijkertijd maar 2,5 seconden per schot over houd in plaats van 5. Nu zou ik dan wel niet ineens twee keer zoveel schoten nodig hebben, maar de prestaties nemen wel af.
Daarnaast is het nogal lastig om een thread aan een processor te koppelen en deze maar de helft van de rekenkracht ervan te laten gebruiken.

[ Voor 9% gewijzigd door dcm360 op 06-02-2010 17:34 ]


Acties:
  • 0 Henk 'm!

  • Jegorex
  • Registratie: April 2004
  • Laatst online: 03-09 23:24
Ik ben eindelijk maar eens begonnen met een velden generator, tot nu toe gaf hij altijd hetzelfde veld terug :D

Acties:
  • 0 Henk 'm!

  • Otherside1982
  • Registratie: Februari 2009
  • Laatst online: 22:01
dcm360 schreef op zaterdag 06 februari 2010 @ 17:04:
[...]
Het beperken van de zoekdiepte is zeker geen probleem (sterker nog, dat zal wel hard nodig zijn), in dat geval geef ik aan mn threadpool mee 'Reken door maximaal tot aan dat tijdstip'. Waar ik meer mee zit, is dat ik (theoretisch) met twee spellen tegelijkertijd maar 2,5 seconden per schot over houd in plaats van 5. Nu zou ik dan wel niet ineens twee keer zoveel schoten nodig hebben, maar de prestaties nemen wel af.
Daarnaast is het nogal lastig om een thread aan een processor te koppelen en deze maar de helft van de rekenkracht ervan te laten gebruiken.
Kan je ook niet proberen de resultaten tussen de verschillende Fire acties te cachen in een file of zo? Op die manier moet je niet bij ieder schot alle mogelijkheden doorrekenen.

Acties:
  • 0 Henk 'm!

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 18-08 21:31
Ik ben ook van plan mee te gaan spelen, maar ik weet nog niet of ik iets klaar heb voor de volgende oefenronde. (Voor het veld waar dcm360 zegt dat er 3986 oplossingen zijn en Bolukan 6346, geeft die van mij aan dat er 67515 mogelijke oplossingen zijn :X maar wel lekker snel, berekent het in 3,7 seconden op 1 core)

Is het wel mogelijk om te garanderen dat het begin van het spel alleen wordt gespeeld,1 minuut ofzo? Anders wordt het spel misschien wel erg afhankelijk van geluk wanneer de bruteforcers hun brute force niet goed kunnen toepassen.

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:39
Onbekend schreef op zaterdag 06 februari 2010 @ 16:41:
Je moet er dus zeker rekening mee houden dat er meerdere spellen tegelijkertijd draaien.
Bedoel je hiermee alleen dat er meerdere actieve spellen tegelijk kunnen lopen of ook dat er meerdere requests tegelijk opdezelfde speler gedaan kunnen worden? Dat tweede lijkt me niet wenselijk, want dan kun je dus de volledige tijd niet benutten (en wordt de tijdlimiet van 5 seconden vrij betekenisloos).

Acties:
  • 0 Henk 'm!

  • Jegorex
  • Registratie: April 2004
  • Laatst online: 03-09 23:24
_js_ schreef op zaterdag 06 februari 2010 @ 22:38:
Is het wel mogelijk om te garanderen dat het begin van het spel alleen wordt gespeeld,1 minuut ofzo? Anders wordt het spel misschien wel erg afhankelijk van geluk wanneer de bruteforcers hun brute force niet goed kunnen toepassen.
De regels zouden niet moeten worden aangepast omdat de code niet snel genoeg is.
Als je langer dan 5sec nodig hebt betekent het dat je moet optimaliseren of dingen anders moet doen.

nvm, verkeerd gelezen.

Op dit moment gebruik ik 1 core en heb ik een antwoord binnen 0.01 seconde.

[ Voor 9% gewijzigd door Jegorex op 06-02-2010 22:54 ]


Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Soultaker schreef op zaterdag 06 februari 2010 @ 22:48:
[...]

Bedoel je hiermee alleen dat er meerdere actieve spellen tegelijk kunnen lopen of ook dat er meerdere requests tegelijk opdezelfde speler gedaan kunnen worden? Dat tweede lijkt me niet wenselijk, want dan kun je dus de volledige tijd niet benutten (en wordt de tijdlimiet van 5 seconden vrij betekenisloos).
Dat is precies mijn punt... 'Gelukkig' heb ik nog geen werkende multithreading, dus kan ik 4 spellen parallel afhandelen zonder vertraging. Een ander twistpunt is ook dat ik in die 5 seconden 60 miljard kloktikken heb om te gebruiken (en dat mijn code daarnaar kan schalen), wat denk ik zwaar bovengemiddeld is. Hoe vervelend het ook klinkt, degene met snelle hardware heeft een aardig voordeel...

Maar in ieder geval, ik heb mezelf aardig verrast vanavond :)
De situatie met mn oude algoritme:
ABCDEFGHIJKLMNOP
181171395110171221415
2344041
34246
436434938
545
6
7
8252629302827
9
1037
11354818
12314733
1339
142324222116
1532204464193
16

En met mn nieuwe:
ABCDEFGHIJKLMNOP
1123456
27
321228
4239
524
6
7
8101112
9
1025
11262713
12282914
1315
143016
153117181920
16

Een beetje optimalisatie :P

Acties:
  • 0 Henk 'm!

  • hostname
  • Registratie: April 2009
  • Laatst online: 21:35
60 miljard kloktikken in 5 seconden? Loopt jouw CPU op 12 GHz? :P

Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
5HH1.4HL11.4VB1.3VG10.3HG6.3HC16.2HO4.2HE8.2VA9.2VM4 - 31
Afbeeldingslocatie: http://hell.student.utwente.nl/zeeslag?Ships=5HH1.4HL11.4VB1.3VG10.3HG6.3HC16.2HO4.2HE8.2VA9.2VM4&Shots=Shots=SB3.SG10.SG11.SG12.SH1.SI1.SB1.SB2.SM4.SO4.SJ1.SK1.SL1.WG16.SA9.SA10.SB4.SC16.SD16.SE8.SE16.SF8.SG6.SB3.SH6.SI6.SL11.SM5.SM11.SN11.SO11.SP4

5HF12.4VG2.4VK3.3VA8.3HN6.3VB14.2VC10.2HH16.2HD15.2HL1 - 32

Afbeeldingslocatie: http://hell.student.utwente.nl/zeeslag?Ships=5HF12.4VG2.4VK3.3VA8.3HN6.3VB14.2VC10.2HH16.2HD15.2HL1&Shots=SC10.SC11.SG3.SG4.SG5.SG12.SH12.SI12.SJ12.SN6.SF12.SG2.WM6.SA8.SA9.SA10.SB14.SB15.SB16.SK3.SK4.SK5.SK6.SO6.SP6.WD1.SL1.SM1.SD15.SE15.SH16.SI16

5HL2.4HF16.4HD13.3HD5.3HC11.3HM10.2VD8.2HJ9.2HA15.2HH3 - 34
Afbeeldingslocatie: http://hell.student.utwente.nl/zeeslag?Ships=5HL2.4HF16.4HD13.3HD5.3HC11.3HM10.2VD8.2HJ9.2HA15.2HH3&Shots=SD8.SD9.SF13.SE13.SD13.WD10.SG13.SE11.SD11.WF11.SC11.SD5.SE5.SF5.SL2.WK2.SA15.SB15.SH16.SI16.SM2.SM10.SN2.SN10.SO2.SO10.SP2.SH3.SI3.WF9.SF16.SG16.SJ9.SK9

Ik overweeg me morgen nog aan te melden. Tot hoe laat kan dat?
(Edit: Aangemeld!)

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 14-09 09:42
Zoals ik al eerder postte, verwacht ik alle spelers gelijkmatig te belasten.
Zodra ik merk dat er time-outs gaan ontstaan doordat een speler dubbel belast wordt, haal ik de dubbele belasting eraf, en zal dat geen negatieve invloed hebben op de scores.
Uiteraard verwacht ik dat als er steeds maar 1 request wordt verzonden, de speler bij elk request op tijd een antwoord kan geven. :)

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

hostname schreef op zaterdag 06 februari 2010 @ 23:59:
60 miljard kloktikken in 5 seconden? Loopt jouw CPU op 12 GHz? :P
Quadcore op 3.2GHz ;) Ik ga dus niet uit van 100% belasting en/of de gehele 5 seconden.
Bolukan schreef op zondag 07 februari 2010 @ 00:08:
Ik overweeg me morgen nog aan te melden. Tot hoe laat kan dat?
Morgen is te laat ;) Maar ik denk dat voor het avondeten wel moet kunnen, Onbekend wil namelijk om 19.00 beginnen als ik de startpost zie.

Overigens loop ik nu tegen een redelijk vervelende bug aan dat mn algoritme continu op A1 aan het schieten is :(

edit: en het werkt weer :) De hoogste kans bleek op een stuk water te liggen, waardoor er geen stuk schip met de hoogste kans was en er maar op (0,0) (de standaard) geschoten werd.

[ Voor 19% gewijzigd door dcm360 op 07-02-2010 00:28 ]


Acties:
  • 0 Henk 'm!

  • Jegorex
  • Registratie: April 2004
  • Laatst online: 03-09 23:24
dcm360 schreef op zondag 07 februari 2010 @ 00:16:
[...]

Quadcore op 3.2GHz ;) Ik ga dus niet uit van 100% belasting en/of de gehele 5 seconden.
Maar je gebruikt toch maar 1 core om het uit te rekenen? Dan zou je dus 15 miljard kloktikken hebben.

Acties:
  • 0 Henk 'm!

  • cfern
  • Registratie: Oktober 2009
  • Laatst online: 13-09 15:35
Bah, weer laat :O. Ach, het is voor een goed doel.
Mijn algoritme is lekker snel (~30ms per spel) en ook lekker slecht (45-85 schoten per random board).

Ik hoop mijn progseltje voor de testronde van morgen klaar te hebben, omdat het netwerkgedeelte natuurlijk wel even getest moet worden voor de finaleronde.

"I'd rather have a full bottle in front of me, than a full frontal lobotomy." (Tom Waits) | PoE


Acties:
  • 0 Henk 'm!

  • Jegorex
  • Registratie: April 2004
  • Laatst online: 03-09 23:24
cfern schreef op zondag 07 februari 2010 @ 01:49:
Bah, weer laat :O. Ach, het is voor een goed doel.
Mijn algoritme is lekker snel (~30ms per spel) en ook lekker slecht (45-85 schoten per random board).

Ik hoop mijn progseltje voor de testronde van morgen klaar te hebben, omdat het netwerkgedeelte natuurlijk wel even getest moet worden voor de finaleronde.
Je kunt het netwerkgedeelte toch gewoon hier testen? http://www.koolmedemblik.nl/Zeeslag/

edit:
Hoe doen jullie spelers het op dit veld:
code:
1
5HK13.4HK16.4HD11.3VH6.3VF3.3VI1.2VJ8.2VB11.2VA1.2HC15

Ik heb een dramatische score van 50 :X
Afbeeldingslocatie: http://hell.student.utwente.nl/zeeslag?Ships=5HK13.4HK16.4HD11.3VH6.3VF3.3VI1.2VJ8.2VB11.2VA1.2HC15&Shots=SF11.SE11.SD11.WG13.WH13.WI13.WA13.WB13.WJ13.SK13.SL13.SM13.SN13.SO13.WF16.WH16.WI16.WJ16.WA16.WB16.WD16.SK16.SL16.SM16.SN16.WC11.SG11.WH11.WI15.WB15.SD15.SC15.WF2.SF4.SF3.SF5.WH1.WH2.SH8.SH7.SH6.SI1.SI2.SI3.SJ9.SJ8.SA1.SA2.SB12.SB11&GameId=1265512545d5cd90d03cfa834750a429ef6d57d2f0

[ Voor 35% gewijzigd door Jegorex op 07-02-2010 04:19 ]


Acties:
  • 0 Henk 'm!

  • qanar
  • Registratie: Februari 2008
  • Laatst online: 21-05-2019
Jegorex schreef op zondag 07 februari 2010 @ 02:38:
[...]

Je kunt het netwerkgedeelte toch gewoon hier testen? http://www.koolmedemblik.nl/Zeeslag/

edit:
Hoe doen jullie spelers het op dit veld:
code:
1
5HK13.4HK16.4HD11.3VH6.3VF3.3VI1.2VJ8.2VB11.2VA1.2HC15

Ik heb een dramatische score van 50 :X
[afbeelding]
Afbeeldingslocatie: http://hell.student.utwente.nl/zeeslag?Ships=5HK13.4HK16.4HD11.3VH6.3VF3.3VI1.2VJ8.2VB11.2VA1.2HC15&Shots=SF11.SE11.SD11.WC11.SG11.WH11.WF13.WH13.WI13.WA13.WB13.WJ13.SK13.SL13.SM13.SN13.SO13.WF16.WH16.WI16.WA16.WB16.WJ16.WF1.WH1.SI1.SI2.SI3.WF8.SH8.SH7.SH6.WF15.WC16.WD16.SK16.SL16.SM16.SN16.WF2.SF3.SF4.SF5.WA15.WB15.WJ15.SA1.SA2.WB8.SJ8.SJ9.SB11.SB12.SC15.SD15&GameId=1265531380d5cd90d03cfa834750a429ef6d57d2f0

Niet beter, maar mijn algo is ook niet zo goed

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Jullie mikken bijvoorbeeld beiden op H13, maar daar kan alleen maar water zijn. ;) Op regel 11, 13 en 16, en kolom F, H en I moet een scheepje van tenminste 3 lang liggen. Als er op H13 iets ligt, dan moet het dus een 3-scheepje 3VH11 zijn, maar dan kun je nergens meer een 5-scheepje kwijt.

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 02-09 11:02

D2k

ach mijn algo wat deze week meedoet schiet ook nog redelijk in het wilde weg ;-)

De optimalisaties moet ik van de week afmaken, zodat het voor de finale klaar is....

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Jegorex schreef op zondag 07 februari 2010 @ 00:59:
[...]

Maar je gebruikt toch maar 1 core om het uit te rekenen? Dan zou je dus 15 miljard kloktikken hebben.
Nog wel ja, maar aangezien mn spul recursief werkt is het niet al te lastig om er multithreading in te bouwen. Echter, dat is mooi iets voor volgende week :)
Jegorex schreef op zondag 07 februari 2010 @ 02:38:
[...]
Hoe doen jullie spelers het op dit veld:
code:
1
5HK13.4HK16.4HD11.3VH6.3VF3.3VI1.2VJ8.2VB11.2VA1.2HC15

Ik heb een dramatische score van 50 :X
32 schoten :)
ABCDEFGHIJKLMNOP
119168
2209
3110
417
518
611
712
81314
915
10
11232425262722
1221
132829303132
14
1523
164567

En nu moet ik nog een map vinden die mn algoritme echt strest. De langste rekentijd tot nu toe is 1.5 seconden, dus ik moet nog steeds mn code testen die ervoor zorgt dat ik binnen 5 seconden antwoord geef.

Acties:
  • 0 Henk 'm!

  • qanar
  • Registratie: Februari 2008
  • Laatst online: 21-05-2019
Ach... ik werk dan ook niet OO en met 20000 mogelijke velden uitrekenen. Ik heb gewoon een 16*16 array van integers waarop ik allemaal sommen loslaat en op basis daarvan een waarde toeken aan iedere vakje. Daarna schiet ik gewoon op het vakje met de hoogste waarde. De eerste van die sommen is dan ook gewoon $rows[ $i ] + $cols[ $j ].

Ik weet ook dat dit nooit zo goed zal worden als een echt AI algoritme, maar aangezien mijn eerste iteratie op ~200 schoten zat en ik nu op ~50 schoten zit ben ik best wel blij.

Acties:
  • 0 Henk 'm!

  • RetroTycoon
  • Registratie: Juli 2008
  • Laatst online: 13-09 23:20
qanar schreef op zondag 07 februari 2010 @ 11:48:
Ach... ik werk dan ook niet OO en met 20000 mogelijke velden uitrekenen. Ik heb gewoon een 16*16 array van integers waarop ik allemaal sommen loslaat en op basis daarvan een waarde toeken aan iedere vakje. Daarna schiet ik gewoon op het vakje met de hoogste waarde. De eerste van die sommen is dan ook gewoon $rows[ $i ] + $cols[ $j ].

Ik weet ook dat dit nooit zo goed zal worden als een echt AI algoritme, maar aangezien mijn eerste iteratie op ~200 schoten zat en ik nu op ~50 schoten zit ben ik best wel blij.
Mijn werkt ook zo :) Hoe vang jij een hit op? Gewoon doorknallen, of het schip eerst vernielen?

Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
(En weer een bug moeten pletten.) Werkt hetzelfde als dcm360 maar met het geluk dat ie niet eerst K11 pakte.

Afbeeldingslocatie: http://hell.student.utwente.nl/zeeslag?Opponent=Name1&Ships=5HK13.4HK16.4HD11.3VH6.3VF3.3VI1.2VJ8.2VB11.2VA1.2HC15&Shots=SC15.SD15.SF3.SK16.SL16.SM16.SN16.SH6.SH7.SH8.SI1.SI2.SI3.SJ8.SJ9.WF1.SF4.SF5.SA1.SA2.SB12.SB11.SD11.SE11.SF11.SG11.SK13.SL13.SM13.SN13.SO13&GameId=1265541037d5cd90d03cfa834750a429ef6d57d2f0

PS: Ik ben trouwens voor een aparte ranglijst voor degenen met een echte AI ipv simpele brute-force. Ik ben benieuwd naar de slimmigheden die in de AI zijn verwerkt.

[ Voor 25% gewijzigd door Bolukan op 07-02-2010 12:39 ]


Acties:
  • 0 Henk 'm!

  • - peter -
  • Registratie: September 2002
  • Laatst online: 09-09 20:00
Bolukan schreef op zondag 07 februari 2010 @ 12:12:
PS: Ik ben trouwens voor een aparte ranglijst voor degenen met een echte AI ipv simpele brute-force. Ik ben benieuwd naar de slimmigheden die in de AI zijn verwerkt.
Ik denk dat er best wat mensen, waaronder ik, zijn die ergens een hybride oplossing hebben. Ik reken wel mogelijkheden uit, maar bij lange na niet de gehele tree.

Acties:
  • 0 Henk 'm!

  • cfern
  • Registratie: Oktober 2009
  • Laatst online: 13-09 15:35
Op dit moment gebruik ik nog geen enkele zoekboom. De boom die ik geprobeerd had telt afschuwelijk dubbel met zoekopties in de miljoenen (slik!). Dat wordt dus een klusje voor komende week.

"I'd rather have a full bottle in front of me, than a full frontal lobotomy." (Tom Waits) | PoE


Acties:
  • 0 Henk 'm!

  • qanar
  • Registratie: Februari 2008
  • Laatst online: 21-05-2019
RetroTycoon schreef op zondag 07 februari 2010 @ 11:52:
[...]

Mijn werkt ook zo :) Hoe vang jij een hit op? Gewoon doorknallen, of het schip eerst vernielen?
Ik loop over Shots, als het een hit was tel ik een arbitrair nummer bij bij de 4 vakjes rond deze hit. Normaal schiet hij dan wel verder in de buurt van die hit.

Acties:
  • 0 Henk 'm!

  • RetroTycoon
  • Registratie: Juli 2008
  • Laatst online: 13-09 23:20
Hoe moet ik een bruteforce eigenlijk zien? Je berekent een aantal mogelijkheden van hoe het veld kan liggen, en je kiest de meestvoorkomende uit om op te lossen?

Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
Yep, ik reken alle mogelijke liggingen van de 10 schepen uit die voldoen aan de opgegeven Rows en Cols. Dan pak ik gewoon een cel die het meest voorkomt in al deze oplossingen.

Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Tja, het komt er eigenlijk op neer dat je niet 100% zeker kan weten hoe het veld er precies uitziet. Je moet dus een gokje maken, en met veel getallen kan je met een vrij hoge kans gaan gokken.

Een echte bruteforce heb je sowieso niet, want ik heb nog geen spel gezien dat in 1 keer 1 oplossing gaf. Je blijft met hybride combinaties zitten als je toch niet te willekeurig wilt gaan mikken.

edit: Bolukan pakt het een en ander toch iets anders aan dan dat ik doe zo te lezen. Ik reken door naar 1 oplossing voor alle schepen :)

[ Voor 15% gewijzigd door dcm360 op 07-02-2010 13:02 ]


Acties:
  • 0 Henk 'm!

  • RetroTycoon
  • Registratie: Juli 2008
  • Laatst online: 13-09 23:20
Ik ben blij dat ik daar niet op ben gekomen, heb geen idee hoe ik dat nu weer efficiënt zou moeten proggen :)

Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
dcm360 schreef op zondag 07 februari 2010 @ 13:01:
edit: Bolukan pakt het een en ander toch iets anders aan dan dat ik doe zo te lezen. Ik reken door naar 1 oplossing voor alle schepen :)
Jawel, ik reken naar sets van 10 schepen tegelijkertijd. Ik ga niet losse schepen plaatsen (hoewel .... maar dat hoor je na het volgende week wel).

Acties:
  • 0 Henk 'm!

  • qanar
  • Registratie: Februari 2008
  • Laatst online: 21-05-2019
Iets waar ik nog niet mee bezig geweest ben, blijft Opponent gelijk tussen vanavond en de finale van volgende week?

Acties:
  • 0 Henk 'm!

  • RetroTycoon
  • Registratie: Juli 2008
  • Laatst online: 13-09 23:20
qanar schreef op zondag 07 februari 2010 @ 13:24:
Iets waar ik nog niet mee bezig geweest ben, blijft Opponent gelijk tussen vanavond en de finale van volgende week?
Je speelt tegen iedereen in de competitie. Tenzij zich iemand nog aanmeldt veranderd daarin dus niets :)

Acties:
  • 0 Henk 'm!

  • qanar
  • Registratie: Februari 2008
  • Laatst online: 21-05-2019
Wat ik bedoel is blijft de identifier voor persoon A gelijk tussen nu en volgende week zondag. Ikzelf ben bv. van URL veranderd (toch maar naar een submap verhuist). Misschien was het de hash hiervan en heb ik nu dus een andere identifier.

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 14-09 09:42
Vanavond genereer ik voor elke tegenstander de "Opponent"-parameter, en die is de gehele avond het zelfde.
Volgende week is de "Opponent"-parameter weer anders.
Anders heb je straks een week de tijd om uit te pluizen hoe de tegenstander zijn schepen neerzet. :+

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • cfern
  • Registratie: Oktober 2009
  • Laatst online: 13-09 15:35
Yes. De speler op de testpagina kan mijn servertje vinden. Ik doe vanavond mee, als het nog kan, want dan weet ik of het gelijktijdig afhandelen van verschillende potjes ook goed gaat.

Dit is echt verreweg het grootste project wat ik ooit in F# heb gebouwd, maar tot nu toe bevalt het best goed. Eigenlijk is het opzetten van zo'n web-http-ding een stuk minder eng dan ik dacht.

"I'd rather have a full bottle in front of me, than a full frontal lobotomy." (Tom Waits) | PoE


Acties:
  • 0 Henk 'm!

Verwijderd

Ik ben benieuwd of er uiteindelijk een niet-brute force oplossing komt die net zo mooi werkt als de brute force versies die langskomen in dit topic. Mijn gevoel zegt dat je uiteindelijk toch vrij ver moet kunnen komen met een heuristiek die redeneert zoals een mens zou doen bij het oplossen van zo'n puzzel.

Of werkt er toevallig al iemand vanuit dit principe? :)

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:39
Ik denk dat goede menselijke spelers ook redeneren vanuit mogelijk oplossingen, maar daarbij hun intelligentie gebruiken om veel af te kappen. Computers missen dat inzicht, maar compenseren door domweg alles door te rekenen.

Zo werkt dat bijvoorbeeld ook bij menselijke schakers versus schaakcomputers. Een schaakcomputer is in principe ook behoorlijk brute force om te compenseren voor een gebrek aan inzicht, maar zowel mensen als computers gebruiken hetzelfde principe: zoeken naar een gedwongen reeks zetten die naar een voor de huidige speler gunstige stelling leiden.

Acties:
  • 0 Henk 'm!

  • qanar
  • Registratie: Februari 2008
  • Laatst online: 21-05-2019
Zo werk ik denk ik wel, al zou ik waarschijnlijk nog wel wat regels kunnen implementeren :-)

Ik geef na volgende week mijn php file wel vrij.

Het valt me trouwens op dat, in tegenstelling tot bij Rummikub, er nu geen URL's gedeeld worden.

[ Voor 4% gewijzigd door qanar op 07-02-2010 17:17 ]


Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Nog even een kleine vraag over de organisatie: hoeveel rondes worden er vanavond gespeeld? Dan weet ik hoeveel maps ik klaar moet zetten op mn server ;)

Acties:
  • 0 Henk 'm!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 02-09 11:02

D2k

Ik ben ipv aan mijn algo aan het werken alleen maar aan het bugfixxen. Blegh.

Expect 70-80 shots gemiddeld vanavond :/

Hopen dat ik komende week een hoooooop tijd kan vinden om te verbeteren.
We zien de resultaten wel komen...

Ik had iig ivm de url die je moet gebruiken als je mijn "app" aanroept, Onbekend ook al aan het werk gezet

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 14-09 09:42
dcm360 schreef op zondag 07 februari 2010 @ 17:33:
Nog even een kleine vraag over de organisatie: hoeveel rondes worden er vanavond gespeeld? Dan weet ik hoeveel maps ik klaar moet zetten op mn server ;)
Dat ligt er aan hoe snel de spelers reageren en hoe slim de spelers zijn geprogrammeerd. :)
Ik hoop dat er minimaal 3 tot 4 complete ronden gedraaid kunnen worden, maar als de spelers lekker snel reageren, kunnen er meer rondes gedraaid worden.
Er zijn nu 24 deelnemers voor vanavond. Maar in het laatste uurtje kunnen het er altijd nog meer worden. :)

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

Verwijderd

Bolukan schreef op zondag 07 februari 2010 @ 12:12:
(En weer een bug moeten pletten.) Werkt hetzelfde als dcm360 maar met het geluk dat ie niet eerst K11 pakte.

[afbeelding]

PS: Ik ben trouwens voor een aparte ranglijst voor degenen met een echte AI ipv simpele brute-force. Ik ben benieuwd naar de slimmigheden die in de AI zijn verwerkt.
had nog geprobeerd hem by hand op te lossen:
Afbeeldingslocatie: http://i.imgur.com/WZxaU.png
(lijntjes lijken mij common sense)

verder dan dit kom ik niet, dan word het gewoon gokwerk
ik zou dan waarschijnlijk op een van de "20" gokken, en dan? geen idee

(nee, ik doe niet mee :) )

Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Onbekend schreef op zondag 07 februari 2010 @ 17:57:
[...]

Dat ligt er aan hoe snel de spelers reageren en hoe slim de spelers zijn geprogrammeerd. :)
Ik hoop dat er minimaal 3 tot 4 complete ronden gedraaid kunnen worden, maar als de spelers lekker snel reageren, kunnen er meer rondes gedraaid worden.
Er zijn nu 24 deelnemers voor vanavond. Maar in het laatste uurtje kunnen het er altijd nog meer worden. :)
Oké, ik heb nu maar 10 velden klaargezet. Net voordat ik mn generator stopte kwam er nog wel een geniaal veld uit gelukkig :P
Ook nog even een DM gestuurd met een kleine wijziging, dus ik ben er klaar voor :)

Acties:
  • 0 Henk 'm!

  • qanar
  • Registratie: Februari 2008
  • Laatst online: 21-05-2019
Ik heb nu trouwens nog dit in men code staan

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    $log = fopen( "./fields.txt", "rb" );   
    while ( !feof( $log ) ) 
    {
        if( $_GET[ 'Ships' ] == ltrim( rtrim( fgets( $log ) ) ) )
            $contains = true;
    }   
    fclose( $log ); 
    
    if( !$contains )
    {
        $log = fopen( "./fields.txt", "ab" );   
        fwrite( $log, $_GET[ 'Ships' ] . "\r\n" );  
        fclose( $log ); 
    }


Geniaal of moreel verwerpelijk?

Acties:
  • 0 Henk 'm!

  • RetroTycoon
  • Registratie: Juli 2008
  • Laatst online: 13-09 23:20
Waarom zou je het niet loggen? Ik log ook de resultaten als er een Finished-parameter meekomt :)

Of hergebruik je ter plekke dan weer die velden, tja, dan weet ik het niet... Het is iig wel slim bedacht :+

[ Voor 36% gewijzigd door RetroTycoon op 07-02-2010 18:35 ]


Acties:
  • 0 Henk 'm!

  • qanar
  • Registratie: Februari 2008
  • Laatst online: 21-05-2019
RetroTycoon schreef op zondag 07 februari 2010 @ 18:34:
Waarom zou je het niet loggen? Ik log ook de resultaten als er een Finished-parameter meekomt :)

Of hergebruik je ter plekke dan weer die velden, tja, dan weet ik het niet... Het is iig wel slim bedacht :+
Ik doe dus beide... zowel een log als gewoon die velden in een txt file gooien waar ik er dan random eentje uit kies om te serveren aan de volgende tegenstander.

TODO (maar niet voor vanavond) bijhouden welke tegenstander al tegen welk veld gespeeld heeft en zorgen dat hij dat niet opnieuw krijgt.

Al denk ik niet dat er echt mensen zijn die maar 1 veld spelen. (waarvoor het dus reden zou zijn om eerst de vorige velden van die speler te testen)

[ Voor 6% gewijzigd door qanar op 07-02-2010 18:50 ]


Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 14-09 09:42
Ik ga langzamerhand de urls nu controleren. Dus als je wat bij ziet komen in de log files, dan is dat nog niet van de echte testronde. :)

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 02-09 11:02

D2k

Ah, ik dacht al :+

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

  • Jegorex
  • Registratie: April 2004
  • Laatst online: 03-09 23:24
Mijn server is vanaf nu online.
(Als hij niet crashed)

Acties:
  • 0 Henk 'm!

  • Sinnergy
  • Registratie: Augustus 2009
  • Laatst online: 08-08 15:07
Mijn bot staat klaar :)

Acties:
  • 0 Henk 'm!

  • Jegorex
  • Registratie: April 2004
  • Laatst online: 03-09 23:24
Heb hem nog een paar x opnieuw opgestart voor last minute wijzigingen.
Maar vanaf nu blijf ik er vanaf.

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 14-09 09:42
Hij draait, alhoewel ik meteen errors voorbij zag vliegen. :) Ik zal even uitzoeken of dat aan mij ligt, of aan de speler zelf.

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • hostname
  • Registratie: April 2009
  • Laatst online: 21:35
Zo, nu produceert die van mij ook nuttige logs :D
Zal verder niet zo veel betere score dan vorige week hebben, alleen wat bugfixes in m'n veld-generatie code kunnen toepassen, had helaas erg weinig tijd.

EDIT: Ai, zie een hoop missers :'(

[ Voor 7% gewijzigd door hostname op 07-02-2010 19:18 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Er worden vanaf hier gezien in ieder geval een hoop spellen gespeeld, dus dat gaat best goed volgens mij.

In de eerste ronde tegen 17 spelers heeft mijn bot iedere keer hetzelfde veld uitgedeeld. 3 van die tegenstanders hebben duidelijk een anders strategie dan de rest (die allemaal beginnen te schieten op veld I5). De afwijkende strategie heeft wel duidelijk een voordeel: 32 schoten vs. 39 tot 51. Ik gok dat cd99365c en 2dba4537 overeenkomen met dmc360 en Bolukan :).

[ Voor 63% gewijzigd door Verwijderd op 07-02-2010 19:25 ]

Pagina: 1 ... 4 ... 7 Laatste