Programmeervuur zeeslag

Pagina: 1 ... 6 7 Laatste
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 18-08 21:31
Een paar mensen laten deze ronde een imposante verbetering zien :)

Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Of je stuurt een veel makkelijker veld ;)
Volgens mij was dit de 8e ronde, dus nu is het nog wachten op de resultaten van Onbekend :)
Ik hoop op een top5, maar gezien de gigantische berg fouten die mijn programma gemaakt heeft vrees is dat dat er niet in gaat zitten. Maar als ik progressie heb ten opzichte van de vorige contest waar ik aan meedeed (dat was bejeweld, en ik was de laatste met valide uitvoer), dan ben ik wel tevreden :)

Acties:
  • 0 Henk 'm!

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

StM

Helaas had ik deze week geen tijd om nog iets te veranderen dus verder als wat willekeurig schieten ben ik niet gekomen. Waarschijnlijk zullen m'n velden wel weer redelijk pittig geweest zijn.

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 14-09 09:42

Einduitslag programmeervuur zeeslag

#dcm3D2kOnbeJanoSkiezwip- peSoulgvdhAlaiberkSv3nt.coqanaOtheRainhostSiteJegoBolucfer_js_JFeiBSTNTotal
dcm360842383-482446268664-44-8-8064
D2k-8-6-7-8-2-8-4-8-8-6-8-7-6-8-8-8-8-8-8-8-8-82-156
Onbekend-46-4-81-8-4-5-44-34-40-103-1-81-8-88-43
Janoz-274-720-288048688687-72-4-4868
Skier-388786-474688888834-67-8-6897
zwippie-82-1-2-8-4-5-81-2-64-22-3-2-3-8-8-5-8-82-80
- peter --3880-64-6800685866-20-86-8-8840
Soultaker44424566464646464444-34496
gvdh-885-8-78-8-6-8-2382224-2-8-8-5-8-88-36
AlainS-284-8-4-10-485-2784448-162-8-6840
berktwist-46-40-620-62-526524-2-3-8-1-6-6-78-21
Sv3nz0r-483-4-86-6-4-32-26406-4-4-4-8-6-8-86-32
t.coenraad-67-4-8-8-4-8-6-8-7-6-6-4-8-8-6-8-8-8-8-8-88-130
qanar-264-6-82-5-4-2-8-5-442-8-6-6-8-6-7-6-76-74
Otherside1982-680-8-8-2-8-6-2-4-208-2-70-6-8-8-6-8-68-73
Rainmaker1987-881-8-83-6-4-2-4-4-68874-6-5-8-4-8-88-42
hostname-680-6-82-6-6-4-424660-41-8-8-8-8-88-47
Site.to.Make-68-3-8-332-42-8348666-1-66-7-8-682
Jegorex-481-7-480-48184888586-8-4-8-8842
Bolukan4887688-48-61886888-688-8-8896
cfern-48-1-2-75-6-45-2668764874-8-8-8832
_js_88848883886886888888868169
JFeitsma8884688-48678876886888-68144
BSTNjitRam0-2-8-8-8-2-8-4-8-8-8-6-8-6-8-8-8-8-8-8-8-8-8-156
Totaal aantal spellen gespeeld: 8
Scores:
PlaatsSpelerID Score
1_js_a3195f78 169
2JFeitsma61887c61 144
3Skier17473a3a 97
4Soultaker566c4891 96
5Bolukan02bf67f1 96
6Janozb41023eb 68
7dcm36010912146 64
8Jegorexe678672e 42
9AlainS278d4158 40
10- peter -c9e0fd74 40
11cfernd0c166ea 32
12Site.to.Make7639a463 2
13berktwiste05a92c9 -21
14Sv3nz0r9a3c3e36 -32
15gvdh80d1ee51 -36
16Rainmaker1987d17aa92b -42
17Onbekendcdc23a2b -43
18hostname8ecb0d8e -47
19Otherside1982aa436ceb -73
20qanarc903959b -74
21zwippief9975bfc -80
22t.coenraade9a1652c -130
23BSTNjitRambdf8812e -156
24D2k8708f389 -156



Dankzij de slimmere spelers hebben we veel meer ronden kunnen spelen dan de vorige keren en dit aantal ligt ver boven mijn verwachting. :)
De top 2 ligt ver van de rest vandaan, en de winnaar van deze programmeervuur is overduidelijk: _js_
Gefeliciteerd!

Ik bedank iedereen die in zijn vrije uurtjes een zeeslagspeler in elkaar hebben gezet en hier aan de programmeervuur hebben meegedaan.
Met een totaal van 26 deelnemers vond ik het ook leuk om dit te organiseren, en heb er heel veel van geleerd. :)

De broncodes (met gebruiksaanwijzing) zal ik in de loop van de week online zetten.

Edit: Voor de mensen die een analyze willen uitvoeren heb ik alle logs in een zip-bestand gezet:

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • Skier
  • Registratie: Juli 2005
  • Laatst online: 17-06-2024
Wauw dat was spannend voor positie 3,4 en 5

proficiat aan 1 en 2. dat is nog een heel groot verschil. Ik zou wel eens willen weten wat jullie slimmer doen :P

Mijn AI was redelijk eenvoudig. Eerst kijken of het een gekend veld was. Op het einde kende mij history 668 velden. (Ik heb alle velden van de testrondes geimporteerd)

Daarna een redelijk eenvoudige en snelle logica om een schot te bepalen.

en daarna maximum van 3 seconden gebruiken voor een brute force oplossing.

Deze berekende eerst alle mogelijke positie van het schip van 5 groot. dan werden de plaatsen doorgegeven aan alle cpu cores die ik ter beschikking had (namelijk 2) en werd er geprobeerd om de overige schepen te plaatsen.

Per game ID werd er ook bijgehouden welke locatie van een schip van 5 lang al was doorgerekend en niet mogelijk was. Dit maakte het mogelijk dat voor de meeste velden een mogelijk oplossing was gevonden na 5 schoten.

@Onbekend bedankt voor toffe competitie het was zeer tof en de volgende keer doe ik terug mee.

don't take life to seriously, you won't survive it anyway


Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Hm, 7e valt me nog wel mee :)
Wat me wel weer opvalt is dat mn code weer herhaaldelijk op hetzelfde vakje is gaan schieten, wat met de controle op gebruikte schoten in theorie niet zou mogen gebeuren. Daar kijk ik morgen nog even naar (om van te leren), en ik zal morgen ook even kijken of ik mn code kan opschonen (hele blokken code staan er nog als commentaar bij te staan) en online plaatsen.

En ik vergeet het zelfs: gefeliciteerd _js_!
Skier schreef op zondag 14 februari 2010 @ 22:43:
Deze berekende eerst alle mogelijke positie van het schip van 5 groot. dan werden de plaatsen doorgegeven aan alle cpu cores die ik ter beschikking had (namelijk 2) en werd er geprobeerd om de overige schepen te plaatsen.
Klinkt bekend :) Ik twijfelde ook nog om een schip van 4 eerst singlecore te berekenen (en dat had met de moeilijkste velden echt voordeel gegeven), maar dat heb ik er maar uitgelaten.

[ Voor 41% gewijzigd door dcm360 op 14-02-2010 22:49 ]


Acties:
  • 0 Henk 'm!

  • Alain
  • Registratie: Oktober 2002
  • Niet online
Ik ben erg blij met de top 10 klassering. :)

Mijn algoritme werkt als volgt:

- Kijk of de speler het veld eerder uitgedeeld heeft, zo ja geef het eerst volgende schot terug
- Bouw het veld op en markeer water en schepen
- Loop door de mogelijkheden en ken een kans toe aan de hand van, nog te schieten scheepsdelen in de rij/kolom, laatste schot (mits raak), scheepsdelen naast het veld en scheepsdelen daar weer naast.

Om de factoren van kans te bepalen heb ik mijn speler met verschillende instellingen tegen dezelfde velden laten spelen (stuk of 1000) en de beste werd mee gespeelt.

Om velden te genereren heb ik een script geschreven dat unieke velden random genereert en met de speler er tegen speelt om het aantal schoten te bepalen. Daarnaast reken ik uit hoe de schepen verspreid staan en dat speelt ook mee met het uitdelen van velden. Een veld wordt slechts 1 keer per opponent uitgedeeld.

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


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:39
_js_ gefeliciteerd en Onbekend, bedankt!

Ik zal binnenkort m'n code nog even posten, en ik ga ook nog even rekenen met de tussenresultaten, want ik ben wel benieuwd waar ik geëindigd zou zijn als mijn speler direct goed gewerkt had. Ik dacht dat ik alleen tegen _js_ wel eens verloor, maar de log suggereert dat ik ook van Janoz verloren heb. Even uitpluizen dus.

Acties:
  • 0 Henk 'm!

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 18-08 21:31
*O* *O* *O*

Onbekend bedankt voor het organiseren en iedereen bedankt voor het meespelen d:)b

Het verschil tussen de top en de rest zat volgens mij vooral in de verdedigende velden. Ik heb een veld gekozen waarmee vooral brute forcers die vanaf linksboven werken problemen zouden moeten hebben, en sommige mensen klaagden over een A1 bug, dus ik heb een schip op A1 gezet in de hoop dat ik daarmee tegenstanders kon laten falen. En natuurlijk helpt het meespelen van alle 8 ronden ;)

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:39
Als ik de scores van de eerste twee ronden voor m'n eigen lol buiten beschouwing laat, kom ik op de volgende scorelijst (links).

1 Soultaker 129
2 _js_ 123
3 JFeitsma 102
4 Skier 78
5 Bolukan 66
6 Janoz 47
7 dcm360 44
8 AlainS 27
9 - peter - 26
10 Jegorex 22
11 cfern 17
12 Site.to.Make -2
13 berktwist -10
14 Sv3nz0r -25
15 Onbekend -34
16 hostname -35
16 gvdh -35
18 Rainmaker1987 -36
19 qanar -51
20 Otherside1982 -52
21 zwippie -61
22 t.coenraad -100
23 BSTNjitRam -118
24 D2k -122


1 _js_ 23
2 Soultaker 21
3 JFeitsma 19
4 Skier 13
5 AlainS 11
6 Janoz 9
7 Bolukan 8
8 cfern 7
8 - peter - 7
10 dcm360 3
10 Jegorex 3
12 Site.to.Make 1
13 Onbekend -3
14 berktwist -4
15 gvdh -5
15 Sv3nz0r -5
17 hostname -6
18 Rainmaker1987 -7
19 Otherside1982 -8
20 qanar -11
21 zwippie -15
22 t.coenraad -19
23 D2k -21
23 BSTNjitRam -21


1 Soultaker 2537
2 _js_ 2287
3 JFeitsma 2205
4 Skier 850
5 Janoz 809
6 cfern 737
7 Jegorex 480
8 - peter - 476
9 AlainS 400
10 Site.to.Make 285
11 Sv3nz0r -78
12 hostname -134
13 Onbekend -171
14 Rainmaker1987 -173
15 dcm360 -212
16 berktwist -314
17 Otherside1982 -339
18 Bolukan -345
19 qanar -464
20 zwippie -476
21 gvdh -502
22 t.coenraad -1407
23 D2k -2719
24 BSTNjitRam -3732


Maar nog beter dan Onbekend's methode lijkt me om de scores van spelers onderling eerst op te tellen en daarna het totaal pas te vergelijken (of anders gezegd: het gemiddelde verschil tussen spelers te vergelijken) en op basis daarvan een spelpunt toe te kennen. Dat is de scoretabel in het midden, en daarin wint _js_ van iedereen. :)

De tabel rechts tenslotte is het verschil tussen gevuurde en geïncasseerde schoten (Onbekend's oorspronkelijke score zeg maar). Daaruit blijkt dat vooral de top 3 erg dicht bij elkaar in de buurt zit. Verder doe ik mensen met failures later in de game tekort, dus hecht daar niet te veel waarde aan.

De tabel in het midden lijkt me persoonlijk het meestzeggende, dus ik denk dat we _js_ hoe dan ook als winnaar mogen aanwijzen. d:)b

@JFeitsma: mijn resultaten zijn puur officieus, zodat ik me wat minder erger aan de moeite die ik de afgelopen drie weken verspild heb aan dit project. :P Ik zal je volgende keer echt proberen te verslaan.

[ Voor 7% gewijzigd door Soultaker op 15-02-2010 00:05 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Nou vooruit Soultaker, jou duld ik wel boven me hoor. Alleen deze keer natuurlijk!

Ik kreeg zojuist trouwens een ideetje voor een volgende contest: kamertje verhuren.

[edit] bijna vergeten: _js_, knap gedaan! En Onbekend: bedankt voor de organisatie.
_/-\o_

[ Voor 32% gewijzigd door Verwijderd op 15-02-2010 00:11 ]


Acties:
  • 0 Henk 'm!

  • cfern
  • Registratie: Oktober 2009
  • Laatst online: 13-09 15:35
Ziezo, die zit erop. Gefeliciteerd, _js_!
Edit: oei, vergeten: hartelijk dank aan Onbekend voor de organisatie!

Ik ben nog best tevreden over het resultaat van mijn speler. Met iets meer inzet had ik misschien zelfs net wel i.p.v. net niet in de top 10 terecht kunnen komen.

Het programmeren van een spelertje was best een leuke klus. Helaas ben ik niet zo handig in het programmeren van een goede zelf-snoeiende boomdoorzoeker, dus heb ik maar een handvol eliminatieregels toegepast. Hieronder een (zeer) korte samenvatting van mijn speler:

Schepen plaatsen:
Genereer 25000 random velden van voornamelijk horizontaal of voornamelijk verticaal geplaatste schepen. Kies van die velden het veld waarvan de rij-/kolomtotalen zoveel mogelijk bij 2 in de buurt liggen. Dit zou het leven van de brute forcers lastig moeten maken wegens teveel vrijheidsgraden.

Schepen kelderen:
Dit zijn mijn 100% zeker regels die na elk binnengekomen schot worden toegepast:
- Vrije vakjes in rijen/kolommen met totaal 0 zijn water.
- Vrije vakjes in kruisingen van rijen en kolommen met totaal 1 zijn water. Als daar namelijk een schip zou liggen, zou die lengte 1 hebben. Die bestaan niet. Om dezelfde reden worden vakjes die aan vier kanten water heben zelf ook op water gezet.
- Vrije vakjes die aan minstens 1 hoekpunt een scheepsvakje hebben zijn water. Dit omdat schepen niet diagonaal mogen raken.
- Als het aantal onbekende vakjes in een rij/kolom gelijk is aan het aantal te vinden scheepsdelen in die rij/kolom, schiet ik met directe voorrang op die vakjes met 100% zekerheid.
- Als het langste nog te vinden schip aanwezig is, zet ik hem op slot zodat op die plek niet meer geplaatst mag worden. Tevens zet ik de vakjes direct voor en direct achter het gevonden schip op water.

Dit zijn mijn gokregels:
- Ik plaats het langste nog niet gevonden schip op alle nog vrije plaatsen en geef hokjes een score van +1 per keer dat een hokje door een mogelijke plaatsing van een schip wordt bedekt. Hoe hoger de score, hoe eerder ik er op schiet. Deze tactiek wordt, als ik het goed begreep, ook door de brute force rekenaars toegepast.
- Hokjes vlak voor of vlak na een reeds gevonden scheepsdeel krijgen een score van +10, zodat die automatisch een hogere prioriteit krijgen bij het schieten. Hiermee hoop ik achter elkaar aaneengesloten op een schip te schieten.
- Het hokje met de hoogste prioriteit en de laagste nog te vinden rij/kolomtotalen wordt gekozen. Dat laatste omdat schieten op een hokje waarvan in een rij/kolom nog 1 gevonden moet worden meer eliminatiemogelijkheden biedt als het raak is.
- Bij hokjes met gelijke schietprioriteit, kies 1e in leesrichting. Zo te zien zijn sommige borden al tegen die tactiek ontworpen, dus had ik beter random kunnen kiezen.

Als mijn algoritme verder nog in de knoop raakt en geen kandidaat kan vinden, dan wordt gewoon de 1e in leesrichting gepakt.

Ik zal mijn code nog eens goed ontluizen voordat ik hem openbaar.
Misschien dat ik er dan een beetje reclame voor F# mee kan maken (of angst zaaien). :)

@Soultaker: elke tabel waarin ik hoger eindig dan nu is een goeie. :P

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


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:39
Van de onofficiële tablelen vind ik persoonlijk de middelste het meest valide, en ik denk dat daar ook de meeste mensen blij mee zijn omdat daar 11 mensen in de top 10 staan. =)

@hieronder: dat is wel typisch inderdaad...

[ Voor 25% gewijzigd door Soultaker op 15-02-2010 00:19 ]


Acties:
  • 0 Henk 'm!

  • Alain
  • Registratie: Oktober 2002
  • Niet online
Echt representatief is de middelste niet. Ik sta daar boven Janoz en Bolukan, terwijl ze toch veel beter waren dan mij. ;)

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


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:39
Misschien maakt dit het wat inzichtelijker:
_js_SoulJFeiSkieAlaiJanoBolucfer- pedcm3JegoSiteOnbeberkgvdhSv3nhostRainOtheqanazwipt.coD2kBSTNWinst
_js_-117585010402584810571120106771191201246375748713313123823
Soultaker-1-104657723393736492611359616098110126731261078415110721321
JFeitsma-17-104-545112420707727157828513183101998065697310514419719
Skier-58-65-54-3629-243348-252679374668534640686555618420213
AlainS-50-77-51-36--2815131138-6501514431833112434813718411
Janoz-10-23-12-2928--1317-3-114253125315528346367501174331909
Bolukan-402-393-42024-1513-9426-11334-147102455664048-5191142351548
cfern-58-73-70-33-13-17-94--51601960610973917817454734871512697
- peter --48-64-77-48-113-2651-4114-1540-1329203734262617871721817
dcm360-105-92-27125-3811113-60-41-2047-13-7361-4174147325012114-583
Jegorex-71-61-57-266-42-34-19-14-20-45-5512435214824654159951191973
Site.to.Make-120-135-82-79-50-5314-6015-47-45--18262848-21667510664562082891
Onbekend-106-96-85-37-15-12-71-6-40135518-10-14-11176-6-674854106-3
berktwist-77-160-131-46-14-530-1091373-124-26-10-19016-8243-6643-634067162-4
gvdh-119-98-83-68-43-155-24-73-29-61-35-2814-190-104-22154083148190-5
Sv3nz0r-120-110-101-53-1-28-55-91-2041-21-4811-16-10--18435255130198210-5
hostname-124-126-99-46-8-34-66-78-37-7-4821-1782-418--170204646167177-6
Rainmaker1987-63-73-80-40-33-63-40-17-34-41-24-66-6-432-4317-22381277129196-7
Otherside1982-75-126-65-68-11-67-48-45-26-47-65-75666-2-50-22-1142101191-8
qanar-74-107-69-65-24-505-47-26-32-41-1066-43-15-25-20-38-1-337477124-11
zwippie-87-84-73-55-3-11-19-34-17-50-59-64-763-40-51-46-12-1-33-4710159-15
t.coenraad-133-151-105-61-48-74-114-87-87-12-95-56-48-40-83-30-46-77-42-74-47-4558-19
D2k-131-107-144-84-137-33-235-151-172-114-119-208-54-67-148-198-167-129-101-77-101-45-3-21
BSTNjitRam-238-213-197-202-184-190-154-269-18158-197-289-106-162-190-210-177-196-191-124-59-58-3--21

Elke cel bevat de som van geïncasseerde minus geschoten spelers voor elk paar spelers (en de matrix is dus spiegelsymmetrisch over de diagonaal). Voor elke positieve score krijg je een punt, voor elke negatieve score een strafpunt.

De reden dat je dan boven Janoz en Bolukan komt is dat je Bolukan überhaupt verslaat. Janoz verslaat jou weliswaar, maar verliest van Bolukan, - peter - en dcm360, waar jij van wint.

Maar misschien moet ik m'n oude methode van steeds de onderste eruit gooien en opnieuw berekenen nog eens van stal halen, dan wordt je waarschijnlijk wel lager gesorteerd. :+

edit:
In deze tabel valt _js_ met z'n stomme +1 winst op mij ook veel te goed op, grrr :P

Acties:
  • 0 Henk 'm!

Verwijderd

Gefeliciteerd _js_ , en bedankt Onbekend voor de leuke wedstrijd.

Ik heb een speler maar omdat ik nog op 70 schoten zat toch maar niet mee gedaan.

Volgende keer misschien vier op een rij?

Acties:
  • 0 Henk 'm!

  • Jegorex
  • Registratie: April 2004
  • Laatst online: 03-09 23:24
Bedankt onbekend voor het organiseren
En gefeliciteerd _js_ met het winnen natuurlijk :)

Ik sta in alle lijstjes in de top 10 dus ik ben er wel tevreden mee.

Later deze week zal ik mijn code wel in dit topic zetten, in het kort gaat het als volgt:
- Vrije vakjes waar de rij/kolom 0 is worden op water gezet.
- Vrije vakjes die omringt zijn door water worden op water gezet.
- Vrije vakjes waar de rij 1 is en de aan de kolom kant klem zit tussen water worden op water gezet.
- Vrije vakjes waar de kolom 1 is en de aan de rij kant klem zit tussen water worden op water gezet.
- Vrije vakjes die met een hoekpunt een scheepsdeel aanraken worden op water gezet.

- Er wordt een kans berekend aan de hand van het aantal scheepsdelen dat nog in een rij/kolom moet komen en het aantal vrije vakjes in die rij/kolom.
- Als een vrij vakje aan een scheepsdeel ligt wordt de kans verhoogd met huidige kans+((1-huidige kans)*bonus kans) (het wordt dus nooit verlaagd) Bij de bonuskans wordt rekening gehouden met:
-- Als het schip 1 vakje lang is dan is de kans 100%/het aantal vrije vakjes om het schip heen.
-- Als het schip langer dan 1 vakje is dan wordt er naar meerdere dingen gekeken.
Als tenslotte het ideale schot omringt is door 3 vakjes met water dan wordt het schot verplaatst naar het vrije vakje omdat een schip minstens 2 vakjes groot is.

Het maken van de velden gebeurt volledig random, elke 10 milliseconden wordt er een veld gemaakt.
Vervolgens bekijk ik hoe moeilijk dat veld is voor mijn eigen speler en als het goed genoeg is wordt hij in de lijst met de 500 beste velden geplaatst.

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:39
Ok, ik zal ook even een uitleg en gelijk m'n code posten. Ik heb over de afgelopen weken heel wat code verzamelt, omdat ik een beetje aan het experimenteren was met Go. In testcompetitie 2 draaide m'n speler volledig op Go, met en sich goede resultaten, maar de performance was niet helemaal naar wens, vandaar dat ik voor de finale mijn solver herschreven heb in C. De webserver heb ik gemakshalve in Go gelaten; die serveert voorberekende borden als speler 1, of roept een externe solver aan als speler 2.

De uiteindelijk code dus:Mijn schietalgoritme is grotendeels brute force. Ik gebruik een backtracking algoritme met wat optimalisaties om alle mogelijke opstellingen te vinden die voldoen aan de gegeven rij- en kolomtotalen en die consistent zijn met de resultaten van eerdere schoten. Vervolgens schiet ik op een vakje dat een maximaal aantal mogelijkheden heeft waarin dat schot raak is. Het gevolg is dat ik ofwel raak schiet (wat mooi meegenomen is) of, als ik mis, ik een groot deel van de mogelijkheden kan schrappen. Zo kom je met relatief weinig missers uit bij een enkele mogelijkheid, en dan weet je precies waar de overgebleven scheepjes liggen en kun je ze makkelijk opvegen.

Zoals andere mensen hier genereeer ik mijn stellingen op basis van een template van rij- en kolomtotalen die ruim 1,6 miljoen verschillende oplossingen hebben. Als gevolg daarvan hebben zelfs brute-forcende spelers relatief veel schoten nodig om te bepalen welke van die oplossingen de juiste is. Om het nog extra moeilijk te maken, neem ik precies die borden die met gebruikmaken van de bovengenoemde heuristiek (schieten op een vakje met maximale raakkans) zo veel mogelijk missers opleveren. Dat verklaart wellicht - peter -'s observatie. Helaas werkte het niet tegen alle spelers even geniaal (waarom niet, is me nog niet helemaal duidelijk; misschien gooit nondeterminisme roet in het eten).

Het kostte mij nog aardige moeite om de runtime van de solver rond de 1 seconde te krijgen. Ik had verwacht dat een aantal andere spelers wel door de tijd zouden gaan vanwege mijn moeilijke borden, maar dat viel erg mee (of tegen :+). Behoorlijk sterke tegenstand dus, en dat is altijd leuk. Vandaar dat ik iedereen wil bedanken voor de deelname, en laat ik voor de zekerheid Onbekend nog maar eens bedanken _/-\o_ voor de uitstekende organisatie, want dat dat lang niet eenvoudig is, daar kan ik over meepraten.

Acties:
  • 0 Henk 'm!

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

D2k

Soultaker schreef op maandag 15 februari 2010 @ 00:07:
Van de onofficiële tablelen vind ik persoonlijk de middelste het meest valide, en ik denk dat daar ook de meeste mensen blij mee zijn omdat daar 11 mensen in de top 10 staan. =)
En ik ben daar geen laatste :+

Ach ik heb me wel vermaakt, maar een volgende keer ga ik proberen eerder te beginnen én betere resultaten op te leveren

Tnx @Onbekend voor het organiseren!

(code volgt later vandaag denk ik)

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

  • RetroTycoon
  • Registratie: Juli 2008
  • Laatst online: 13-09 23:20
Geen laatste :D En ik merk al dat mijn veldgenerator beter had gemoeten. Jammer, maar helaas... Ik had nooit bedacht dat 1,2...2,1 het beste was. Code volgt nog!

Acties:
  • 0 Henk 'm!

  • BSTNjitRam
  • Registratie: November 2004
  • Laatst online: 14-09 14:42
Meedoen met een nog totaal in de steigers staande speler levert het verwachte resultaat op ;)
Enige reden dat ik gedeeld laatste sta ipv laatste is dat dcm360 bij mij op A1 is blijven vuren :p

Hopelijk kan ik bij een volgende competitie wat eerder beginnen. Meedoen met de testcompetities zou wel handig zijn geweest.

Onbekend in ieder geval bedankt voor het hosten van deze competitie _/-\o_ (en op naar de volgende? O-) )
En _js_ natuurlijk gefeliciteerd met je overwinning!

Wishlist Backpack Survivors op Steam !


Acties:
  • 0 Henk 'm!

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

Janoz

Moderator Devschuur®

!litemod

Goed, nog even een korte uitleg over wat ik gistermiddag nog even snel er tussen gehacked heb :)

Ik heb een hash bedacht die ongevoelig is voor rotatie, spiegeling en verplaatsing. Deze gebruik ik voor het herkennen van borden. Ik had alvast een database volgegooid met alle borden die ik tegen gekomen ben. Ik was nopg van plan om net als iemand anders hier ook alle competitieborden toe te voegen, maar hier heb ik geen tijd meer voor gehad. Ook worden alle borden die ik voorgeschoteld gekregen heb in de database opgeslagen.

Eerste stap na het 'enrichen' was dan ook kijken of ik het bord misschien al kende en dan proberen de schepen af te schieten.

Bij de verdediging heb ik vertrouwd op de keurige veld generatie van mijn tegenstanders >:) . En om er voor te zorgen dat het veld niet zomaar herkend werd gooide ik er wel een keurige translatie overheen. Iedereen heeft in de potjes tegen mij dus een bord van zichzelf voorgeschoteld gekregen :). (om de potjes te overbruggen waarbij ik als eerste tegen iemand speelde had ik nog 4 willekeurige lastige borden ergens vandaan geplukt en deze (met transformatie) voorgeschoteld).

Omdat ik het transformeren (en de detectie van de transformatie) nog nooit in zijn geheel getest had heb ik nooit echt de zekerheid gehad dat het überhaupt ging werken, maar aangezien ik nog redelijk geëindigd ben neem ik aan dat dat wel geod gekomen is :)

Voor de rest gefeliciteerd voor degenen boven mij
nanananana voor degenen onder mij :+

En Onbekend erg bedankt voor de hele reutemeteut!

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!

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

D2k

Mijn code in lotusscript: (tis een Lotusscript agent voor degenen die weten waar ik het over heb :+ )

http://www.d2k.nl/domino/media/blogs/blog/contest.lss

Tis verre van netjes vind ik zelf, kan een stuk beter, maar goed, ik programmeer veeeeeeeeeeeeeeeel te weinig.

Aanpak?
- uitsluiten row's & col's waar de waarde 0 is
- uitsluiten row's & col's waar alle schepen geraakt zijn
- bepalen of het vorige schot raak was
  • ja? Dan kijken links-rechts-boven-onder (en die rij nog niet uitgesloten is uiteraard)
  • nee? Dan bepalen in welke rij/kol er het beste kan worden geschoten
- nix gevonden? Dan random schieten op 1 van de velden die nog niet geraakt/uitgesloten zijn

Ik had nog willen inbouwen:
- betere random
- bijhouden welke boten er nog nodig waren
- beter cols/rows beheren
- plaatsen van schepen :+

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 14-09 17:03

Creepy

Tactical Espionage Splatterer

D2k schreef op maandag 15 februari 2010 @ 11:30:
Tis verre van netjes vind ik zelf, kan een stuk beter, maar goed, ik programmeer veeeeeeeeeeeeeeeel te weinig.
Dat excuus heb je al eens gebruikt he, dus dat telt nu niet meer :+

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

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

D2k

Creepy schreef op maandag 15 februari 2010 @ 11:46:
[...]

Dat excuus heb je al eens gebruikt he, dus dat telt nu niet meer :+
Het wordt juist alleen maar meer valide merkte ik :(
(en waarom deed jij niet mee? Slacker? :P )

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

  • - peter -
  • Registratie: September 2002
  • Laatst online: 09-09 20:00
Nou, mijn code was vrij simpel.

Ik heb een bruteforcer gebouwt, maar daar zaten geen slimmigheden in, dus die kon ik pas inzetten vanaf 6 overgebleven schepen. Dan bleef ie onder de 5 seconden. Die bruteforce was wel nodig om in de 1e rondes vrij hoog te scoren.

Ik bouwde eerst de gamestate, filterde alle affe schepen eruit, filterde de vakjes rondom de schepen eruit, en alle vakjes waar geen schepen meer konden liggen.

Voor een nieuw schip rekende ik uit waar het volgende schip allemaal kon liggen, en koos dan het meest gedeelde veld. (Daarom idd Soultaker die grote missers bij jou blijkbaar). Dat gaf bijzonder goede resultaten. De eerste 2 schipjagers die ik bouwde gebruikten nog kans nav de kolom en rijen, maar dit simpele algoritme gaf een stuk meer hits. Dat was wel voldoenend om te ontdekken.

Om borden te genereren heb ik puur een random generator gebruikt, en dan honderden borden doorgespeeld en degene waar ik het slechts op scoorde in een library gestopt en geserveerd.

DomainModel Code: Visual Studio 2008 Project:
DomainModel Zeeslagje -peter- vs2008.zip

In C# geschreven en vrij veel objecten gebruikt. Daardoor zal de bruteforce ook wel langzamer zijn gegaan, want ik heb niet met een simpele array gewerkt met 0,1,2 enz. Maar het werkte wel prettig opzich.

Erg genoten hiervan, al was na 2 weken voor mij wel de code zodanig klaar dat ik geen zin meer had om te optimaliseren.

[ Voor 30% gewijzigd door - peter - op 15-02-2010 17:38 ]


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 14-09 17:03

Creepy

Tactical Espionage Splatterer

D2k schreef op maandag 15 februari 2010 @ 12:03:
[...]

Het wordt juist alleen maar meer valide merkte ik :(
(en waarom deed jij niet mee? Slacker? :P )
:Y

* Creepy mompeld iets over wat er 12 weken geleden gebeurde en nog steeds aardige impact heeft op m'n toch al drukke leven ;)

(en nee, dit is ook niet de eerste keer dat ik dat als excuus gebruik :+ )

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

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

Janoz

Moderator Devschuur®

!litemod

Smoesjes... Dat kan best samen : http://www.youtube.com/watch?v=bYcF_xX2DE8

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!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:39
Janoz schreef op maandag 15 februari 2010 @ 09:28:
Ik heb een hash bedacht die ongevoelig is voor rotatie, spiegeling en verplaatsing. Deze gebruik ik voor het herkennen van borden.
Met verplaatsing bedoel je ook het permuteren van blokken van rijen/kolommen? Ik had zelf mijn borden gevarieerd door ze te spiegelen over de diagonaal en door rijen te permuteren; ik was me er van bewust dat dat om te keren is, maar ik dacht dat niemand gek genoeg zou zijn om dat te gaan doen (ook omdat je extra moeite moet doen om de permutatie te onthouden en terug uit te voeren). Met andere woorden: kon je al mijn borden terugvoeren op dezelfde set mogelijkheden? If so, well done. :P
Eerste stap na het 'enrichen' was dan ook kijken of ik het bord misschien al kende en dan proberen de schepen af te schieten.
Je gebruikt het woord "enrichen" al een aantal keer in je posts, maar ik weet niet precies wat dat inhoud. Kun je dat toelichten? Bedoel je hiermee dat je eerst met logica wat informatie afleidt voordat je gaat bruteforcen?
Bij de verdediging heb ik vertrouwd op de keurige veld generatie van mijn tegenstanders >:) . En om er voor te zorgen dat het veld niet zomaar herkend werd gooide ik er wel een keurige translatie overheen. Iedereen heeft in de potjes tegen mij dus een bord van zichzelf voorgeschoteld gekregen :).
Bastard! :D Dat verklaart wel waarom je relatief goed presteert tegen mij; ik had mijn borden uitgezocht als worst cases van mijn eigen speler, en ik was me er wederom van bewust dat dat tegen me gebruikt zou kunnen worden, maar dacht weer dat niemand dat zou implementeren. (Zelf had ik het niet gedaan omdat het me niet waarschijnlijk leek dat iemand borden zou genereren die nóg moeilijker waren dan die ik al verzonnen had). Ik heb in ieder geval geleerd dat ik mijn tegenstanders (nog) minder moet onderschatten...

Acties:
  • 0 Henk 'm!

Verwijderd

Soultaker schreef op maandag 15 februari 2010 @ 17:27:
Bastard! :D Dat verklaart wel waarom je relatief goed presteert tegen mij; ik had mijn borden uitgezocht als worst cases van mijn eigen speler, en ik was me er wederom van bewust dat dat tegen me gebruikt zou kunnen worden, maar dacht weer dat niemand dat zou implementeren. (Zelf had ik het niet gedaan omdat het me niet waarschijnlijk leek dat iemand borden zou genereren die nóg moeilijker waren dan die ik al verzonnen had). Ik heb in ieder geval geleerd dat ik mijn tegenstanders (nog) minder moet onderschatten...
volgens mij heft bijna iedereen borden naar de tegenstander gestuurd waar zijn eigen speler het slechts tegen scoorde :9

als je gewoon iedereen zijn eigen veld terug had, had je waarschijnlijk een aardige score ;)

Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

De reden waarom het tegen mij zo te zien niet echt gelukt is, is omdat de velden van mijn speler niet zijn gemaakt met het algoritme waarmee ik gespeeld heb, maar met mn algoritme van vorige week. En op mn eigen velden haalde ik iets van 7 a 8 schoten verbetering :)

Zelf had ik ook nog wel als idee om transformaties toe te passen (ook zodanig dat ik transformaties terug kon draaien), maar daar heb ik geen tijd meer voor gehad.
Mijn idee was om eerst de nullen aan het begin/einde weg te gooien zodat ik een klein veld kreeg. Vervolgens die getallen zodanig zetten dat de eerste lager is dan de laatste (eventueel ook 2e/1 na-laatste indien nodig of verder), en daarna rows/cols ook op volgorde van laag->hoog van het eerste cijfer zetten. Zo heb je perfect alle transformaties geëlimineerd en houd je een 'neutraal' veld over. Vervolgens zou ik kunnen controleren of ik het veld al kende en de transformaties op de bekende plaatsen terugdraaien. Tot zover de theorie, de praktijk heeft het niet gehaald helaas...

Acties:
  • 0 Henk 'm!

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

Janoz

Moderator Devschuur®

!litemod

@Soultaker

Permutaties van borden 'beperkte' zich tot horizontaal, verticaal en diagonaal spiegelen en het verplaatsen wanneer er aan de uiteinden een 0 kolom of row was. Permuteren heb ik niet aan gedaan omdat ik te weinig analyse op de borden zelf gedaan had. Ik was al vanaf het begin van plan om mensen hun eigen probleem vermomd terug te gaan geven. Het enige wat ik verder aan verdediging gedaan heb is gewoon dom genereren en kijken hoe ze scoorden.

Met 'enrichen' bedoel ik logica om van alles af te leiden. Ik had er een aantal. De simpelste was er een die de hele kolom met water vulde wanneer er nog maar 0 schepen over waren, of met schepen wanneer het aantal schepen gelijk was aan het aantal open plekken. D'r was er ook 1 die een soort dilatie over het veld gooide waarbij allemaal patronen werden gematched. Denk hierbij aan en neerzetten van allemaal water op de diagonalen van een gevonden schipvakje of het langer maken van een herkend schip uiteinde (omdat ze allemaal minimaal 2 lang zijn). Ook had ik er nog een die herkende waar het langste schip zou kunnen liggen en vulde die rij zoveel mogelijk in (bij 7 openingen waarbij de middelste een schip is dan moeten beide veldjes ernaast ook een schip hebben aangezien er anders geen van 5 past). Uiteindelijk ook nog een 'sinker' die alle complete schepen weghaalde en de metadata aanpaste. Eigenlijk heb ik dus alllemaal truukjes geprogrammeerd die ik normaal ook handmatig uitvoer wanneer ik dergelijke puzzels oplos.

Deze enrichers liet ik op het veld los tot het veld niet meer veranderde. Vervolgens ging ik aimers implementeren. De eerste was een 'zoek het vrije veld met de hoogste som van rij en kolom' en een boatkiller die zodra het hele veld afgeleid kon worden schoot op alle schepen die nog niet geschoten waren maar al lang waren afgeleid.

Ik zit nu achter een andere laptop, maar ik zal binnenkort wel eens even wat code posten.

@dcm:
Zo werkte inderdaad mijn hash ongeveer. 0-en weggooien aan het begin. Alleen gebruik ik dezelfde selectie criteria voor het kiezen tussen de normale en de reversde als voor welke ik kolommen en rijen maak. Als je ze nu allemaal achter elkaar zet en een hash van trekt is deze onafhankelijk van transformaties.

[ Voor 7% gewijzigd door Janoz op 15-02-2010 20:46 ]

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!

  • cfern
  • Registratie: Oktober 2009
  • Laatst online: 13-09 15:35
Bah, die online file hosting services zuigen wel erg hard. :( Geen solution dus, maar pastebin:

sourcekorte omschrijving
ZSTypes.fsgridceltypedefinitie
ZSParse.fsvertaling posities <--> (rij,kolom)-code
ZSConstraints.fsonmogelijke hokjes afkruisen
ZSPlaceShips.fsde bordengenerator
ZSPlayers.fs3 verschillende spelers
ZSServer.fsspreekt voor zich

499 regels totaal, inclusief (schaarse) comments. :)

Als je de boel binnen Visual Studio wilt compilen, hou dan deze volgorde aan binnen het project.

Misschien is een eigen webstekkie niet eens zo'n heel slecht idee...

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


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:39
Ik wil wel een zipje voor je online gooien als je dat graag wil. :) (Hoewel ik denk dat mensen niet per se een heel project hoeven te hebben. Ik vind het zelf wel leuk om andermans code te bekijken, maar ik hoef de speler niet echt te kunnen compileren.)

Het zou trouwens ook handig zijn als je je Tweakers.net Private Storage kon gebruiken om files te hosten, zoals wel kan bij het foto-album.

edit:
Je kunt trouwens het Tweakers.net fotoalbum hier wel voor misbruiken.
Voorbeeld: Afbeeldingslocatie: http://tweakers.net/ext/f/lsHFAHT2SIVyOu3gtNhhdfAS/full.jpg
Rechts klikken, Save Image As... voorbeeld.zip :)

[ Voor 64% gewijzigd door Soultaker op 15-02-2010 21:51 ]


Acties:
  • 0 Henk 'm!

  • cfern
  • Registratie: Oktober 2009
  • Laatst online: 13-09 15:35
Ach, via pastebin is het gelukt met gratis syntax highlighting (OCaml lijkt hiervoor genoeg op F#).

Het zou wel tof zijn als die private storage ook voor file hosting dienst kon doen, al was het alleen maar voor medetweakers. Maar als ik de tweakers manual goed heb begrepen, moet ik eerst nog flink doorblatenposten voordat ik ook maar in de buurt van 1 enkel bitje storage kom.

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


Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 14-09 09:42
Leuk om te zien hoe jullie het beste speelveld probeerden te serveren. :) Mijn code genereerde gewoon de schepen random. Ik kon niet zo zeer moeilijke borden hier tussen vinden en aangezien ik had verwacht dat de tegenstanders hun eigen geserveerde borden wel zelf zouden onthouden om die in 30 schoten uit te spelen, vond ik het niet nodig om die borden ook terug te geven. Achteraf had ik dat misschien beter kunnen doen. :)
Verwijderd schreef op maandag 15 februari 2010 @ 00:03:
Ik kreeg zojuist trouwens een ideetje voor een volgende contest: kamertje verhuren.
Het idee klinkt goed. Nu nog een vrijwilliger vinden die de volgende programmeervuur wil organiseren. :)

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • P-Storm
  • Registratie: September 2006
  • Laatst online: 00:35
Zelf heb ik ook nog een idee liggen voor een contest: Tron, op zich ook heel erg uitdagend zover ik het zag. Als er intresse naar is kan ik het idee wel weer DM'en. Op zich wil ik wel een nieuwe contest opzetten, al ben ik zelf niet een geweldige coder om zelf een programma in elkaar te zetten die als server functioneerd.

[ Voor 10% gewijzigd door P-Storm op 16-02-2010 19:58 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Lijkt mij leuk maar is een spel zoals tron wel haalbaar.Het zal heel wat tijd nemen tot er 1 wedstrijdje gespeeld is.


Ik zie Vier op een Rij wel zitten (kan leuker gemaakt worden door grote grid of 5 op een rij...)

Acties:
  • 0 Henk 'm!

  • - peter -
  • Registratie: September 2002
  • Laatst online: 09-09 20:00
Is de code van de winnaar al beschikbaar? Of heb ik die gemist?

Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
Ik zie graag iets komen waar het niet om brute-force gaat, maar om slimmigheidjes. Vier-op-een-rij is trouwens opgelost.

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 14-09 09:42
Vier op een rij lijkt mij vrij gemakkelijk d.m.v. brute force...


Maar hier is ie dan: de source
Dit zijn de instructies:

Zipje uitpakken in een bepaalde map. Bij voorkeur de map 127.0.0.1/Zeeslag/ omdat dat al in de code is gedefinieerd.

Wat publiek op de server staat is de index.php. Die kan je starten om zo jouw code uit te voeren.
De testspeler die ik online had staan is Player.php. De speler waarmee ik op de zondagen heb meegedaan is MyPlayer.php en die is een stukje slimmer. :)
Als je het spel hebt gestart zie je nu een extra knopje verschijnen: Fire (loop). Hiermee kan je dus een compleet spel spelen, zonder steeds op Fire te klikken. Dat knopje had ik verwijderd om onnodig dataverkeer en processorkracht te besparen.


De code waarmee ik het spel heb gerund kan je beginnen met GameInput.php. In de code daarvan zette ik de spelernamen en de URLs. Alle spelers ondersteunden GET-requests, dus dat was makkelijk.
Zodra je op Start klikt, genereert hij een GamePool.txt en een Players.txt. Ook kan je meteen de spellen starten. Met CTRL+klik opent hij in een nieuw tabblad en begint het spel meteen te draaien.
Ik moet hier even bij vermelden dat een webbrowser een limiet heeft op het aantal gelijktijdige connecties.
De waarden network.http.max-connections-per-server en network.http.max-persistent-connections-per-server had ik uit voorzorg verhoogt naar 48.

Nadat de spellen klaar zijn kan je, op het eerste tabblad na, de tabbladen sluiten en weer opnieuw openen voor een volgende ronde.
Als je klaar bent, kan je het script Final.php aanroepen. Deze genereert de uitslagen in ubb-codes zodat ik het snel hier op het forum kon plakken. :)
Als iemand hier vragen, opmerkingen of verbeterpunten voor mij heeft, hoor ik dat graag. :)

Verder nogmaals iedereen bedankt voor het meedoen en ik kijk uit naar de volgende programmeervuur.

Speel ook Balls Connect en Repeat


  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 18-08 21:31
Excuses voor het niet posten van mijn code.

Kort voor de wedstrijd begon heb ik een 64-bit Windows geïnstalleerd, daarom ik heb als uitgangspunt zoveel mogelijk gebruik maken van 64-bit variabelen, om te kijken hoeveel winst dat oplevert. Resultaat is dat compileren voor x86 het programma twee keer zo snel maakt als x64 8)7

De aanval is brute force, er zijn twee threads omdat mijn computer twee cores heeft. Er is ook een optie om brute force niet tot het diepste te draaien, dat was bedoeld om tegenstanders te analysere, kijken wat voor bruteforce zij gebruiken (als ze dat gebruiken), maar de analyse heb ik niet af kunnen krijgen en heb ik weer verwijderd voor de wedstrijd begon.

De verdediging is gebaseerd op een veld met wat wisselingen in kolommen (in de logs kom je nog een tweede variant tegen, in een deel van ronde 4 heb ik de kaart verticaal gespiegeld, omdat ik hoopte dat dat beter zou werken tegen Soultaker, dat werkte niet en ik heb het originele veld weer teruggezet).

De code zoals die was op het moment van de wedstrijd:

Webserver: http://pastebin.com/f141efd70
Voorbereiding: http://pastebin.com/f73af6598
Oplossen van spellen: http://pastebin.com/f69b8135a
Verdediging: http://pastebin.com/f75976fbb
Logging: http://pastebin.com/f5d0d0bc2
Omzetten van strings in andere formaten: http://pastebin.com/f1e4bca3e

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

D2k

Thanks Onbekend!

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

  • RetroTycoon
  • Registratie: Juli 2008
  • Laatst online: 13-09 23:20
Mijn speler is hier gelokaliseerd:

http://pastebin.com/f568654ab

Wat hij gewoon doet is het beste vakje schieten, aan de hand van de gegeven rows en cols. Het duurde een eeuwigheid 'm zover te krijgen, dus daar was ik al erg gelukkig mee... Verder maakt de veldengenerator slechts een geldig veld, niks meer, of minder. Bruteforce was gezien de code die ik van anderen heb gezien sowieso niet mijn ding geweest, gezien ik ook weer niet zó goed php beheers/het probleem doorzie :) Maar toch wel erg tof om te zien dat ook ik nog iets nuttigs met php kan :Y)

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:39
@t.c: ik wil je in ieder geval complimenteren dat je je speler in de finale redelijk stabiel werkend hebt gekregen, wat in de testronden nog niet het geval was. Aan de score is het niet echt te merken, maar ik denk wel dat je je code aanzienlijk verbeterd hebt tussendoor. :)
P-Storm schreef op dinsdag 16 februari 2010 @ 19:53:
Zelf heb ik ook nog een idee liggen voor een contest: Tron, op zich ook heel erg uitdagend zover ik het zag.
Zoiets bedoel je? Deadline komende vrijdag! :P

(Trouwens, als mensen Tron leuk vinden, heb ik ook nog wel een eigengemaakte Zatacka-kloon liggen met een bot-interface waar een contest om heen te bouwen is, maar ik denk dat dat iets te hoogdrempelig is voor het publiek hier.)

Verder denk ik dat als iemand een contest van een bestaand spel wil maken, het leuker is als er custom regels verzonnen worden, zodat standaardmethoden niet direct van toepassing zijn en mensen gedwongen worden om zelf goed na te denken... Kamertje-verhuren lijkt me daarom in de standaarduitvoering niet ideaal, maar wellicht is er een interessante variant op te verzinnen. :)

Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Beter laat dan nooit zal ik maar zeggen, dus mijn code staat nu ook online.
Helaas geen taart voor degene die erin weet te vinden waarom ik zoveel fout schoot, want daar ben ik zelf ondertussen al uitgekomen :P
Deze code zou sowieso met Delphi 2006 icm Indy 10 moeten werken, andere versies zou ook kunnen maar bij mij werkte het niet in 2009.

Acties:
  • 0 Henk 'm!

  • Otherside1982
  • Registratie: Februari 2009
  • Laatst online: 22:01
dcm360 schreef op zaterdag 20 februari 2010 @ 12:11:
Beter laat dan nooit zal ik maar zeggen, dus mijn code staat nu ook online.
Helaas geen taart voor degene die erin weet te vinden waarom ik zoveel fout schoot, want daar ben ik zelf ondertussen al uitgekomen :P
Deze code zou sowieso met Delphi 2006 icm Indy 10 moeten werken, andere versies zou ook kunnen maar bij mij werkte het niet in 2009.
Niet gedacht dat er nog iemand ging meedoen met Delphi. _/-\o_

Mijn code is geschreven in FreePascal. In mijn dagelijkse werk gebruik ik Delphi 2006, maar ik vond het een leuk idee om voor dit projectje eindelijk eens te kijken naar FreePascal.
Mijn speler draaide als CGI programma op een Apache server op mijn lokale desktop.

De code is hier te vinden: Tweakers-Zeeslag.zip.
De losse files:
zeeslag.pas - de hoofdfile die de CGI verwerking doet en ook het plaatsen van schepen
zeeslaggame.pas - de eigenlijke speler (althans wat schieten betreft)
zeeslagutils.pas - Wat utilities functies, voornamelijk om te loggen

De meeste code heb ik geschreven in de eerste week, dus voor de 1ste testronde. Daarna heb ik er jammer genoeg niet veel meer aan kunnen veranderen door tijdsgebrek.
Om te schieten zoekt mijn speler het vakje met de meeste raakkans door simpel de Row en Col waarde op te tellen. Als Row of Col 0 is dan is de kans voor dat vakje ook 0. Daarna gebeuren nog enkele simpele controles om rekening te houden met de resultaten van de vorige schoten.
Om de schepen te plaatsen kijk de speler in de volledige lijst met gespeelde spellen en haalt daar random een veld uit waarvoor mijn speler een groot aantal schoten nodig had. Ik maakte dus gewoon gebruik van de velden die andere mensen mij toestuurden. Het was de bedoeling om dit nog wat intelligenter te maken maar na de 1ste testronde is daar eigenlijk niet veel aan veranderd.

Bedankt Onbekend voor de organistie en alle andere spelers bedankt voor het meespelen en het delen van jullie code en uitleg over hoe de spelers te werk gingen. Er zitten enkele mooie speeltechnieken bij. _/-\o_

Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
Dit lijkt me wel een leukvervolg-spel: Regenwormen

Acties:
  • 0 Henk 'm!

  • - peter -
  • Registratie: September 2002
  • Laatst online: 09-09 20:00
Bolukan schreef op zondag 21 februari 2010 @ 21:26:
Dit lijkt me wel een leukvervolg-spel: Regenwormen
een frustrerend spelletje :)

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 14-09 09:42
Even een kickje.

Zijn er mensen die interesse hebben in een nieuwe competitie?
En zo ja, voor welk spel heb je de voorkeur? En zijn er ook andere mensen die zich beschikbaar stellen om dit te organiseren?

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • RetroTycoon
  • Registratie: Juli 2008
  • Laatst online: 13-09 23:20
Ja, altijd zin in. Lijkt me leuk. Zolang als het maar niet te moeilijk is ;) Maar weet niet zo een spelletje, geschikt hiervoor...

Acties:
  • 0 Henk 'm!

  • BSTNjitRam
  • Registratie: November 2004
  • Laatst online: 14-09 14:42
Interesse om mee te doen heb ik zeker.
Organiseren heb ik wss te weinig tijd/kennis voor.

Wishlist Backpack Survivors op Steam !


Acties:
  • 0 Henk 'm!

  • dragontje124
  • Registratie: Mei 2009
  • Laatst online: 07-09 17:50
ik heb wel interesse om mee te doen, weet alleen niet precies hoeveel tijd ik ervoor heb.

Acties:
  • 0 Henk 'm!

  • Alain
  • Registratie: Oktober 2002
  • Niet online
Ik heb wel interesse in een nieuwe competitie. Ik zou het ook wel willen organiseren, maar ik weet eigenlijk niet goed welk spel geschikt is voor een competitie als deze.

Ik moet soms onverwacht naar het buitenland voor werk, dus een backup voor het starten/monitoren tijdens een sessie zou wel prettig zijn.

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


Acties:
  • 0 Henk 'm!

Verwijderd

ik heb ook wel interesse om mee te doen teminste als het niet bergen met tijd gaat kosten.

mooiste lijkt mee een soort van bordspel. dammen ?

Acties:
  • 0 Henk 'm!

Verwijderd

Je kunt iets doen als dammen, of misschien iets simpelers nog als reversi ofzo. Je kunt natuurlijk ook de opdracht geven een voetbalteam AI te programmeren(aan de hand van een API) en dan hele wedstrijden simuleren ^^.

Acties:
  • 0 Henk 'm!

  • mkromkamp
  • Registratie: Mei 2008
  • Laatst online: 22-07-2018
Ik ben ook wel in voor een nieuwe programmeer uitdaging. Echter lijkt mij reversie niet heel verstandig om te kiezen, daar zijn zoveel voorgekauwde algoritmes voor te vinden op internet. Maar als er een leuke uitdagende uitdaging komt zal ik zeker mee doen. 8)

Acties:
  • 0 Henk 'm!

Verwijderd

dat is inderdaad het probleem, je moet iets vinden waarvoor nog geen 1000 voorgekouwde alghoritmen bestaan.
ik doe zeker mee, als ik iets leuks weet te bedenken post ik het wel hier.

Acties:
  • 0 Henk 'm!

  • Devilly
  • Registratie: Januari 2009
  • Niet online
Ik zou het ook graag een keer proberen. :)

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

D2k

Creepy had een idee laatst, maar die was nog bezig met de uitwerking ervan.

Doet iets met Cloud (MS/IBM)


  • hostname
  • Registratie: April 2009
  • Laatst online: 21:35
Aan het einde van het programmeervuurtopic stonden ook nog wat ideeen volgens mij. Ik heb ook wel interesse om mee te doen, organiseren heb ik te weinig tijd voor.

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

Janoz

Moderator Devschuur®

!litemod

D2k schreef op woensdag 22 september 2010 @ 09:18:
Creepy had een idee laatst, maar die wasis nog bezig met de uitwerking ervan.

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


  • creator1988
  • Registratie: Januari 2007
  • Laatst online: 13-09 17:54
Niet iets waarin je per speler meerdere bots hebt die samen moeten werken? Soort AntArena achtig idee; maar dan wellicht meer in spelvorm.

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 14-09 17:58

Matis

Rubber Rocket

Misschien is dit leuk om tussentijds te doen:
CodeCup 2011: DVONN

If money talks then I'm a mime
If time is money then I'm out of time


  • Jegorex
  • Registratie: April 2004
  • Laatst online: 03-09 23:24
Verwijderd schreef op dinsdag 21 september 2010 @ 21:02:
Je kunt iets doen als dammen, of misschien iets simpelers nog als reversi ofzo. Je kunt natuurlijk ook de opdracht geven een voetbalteam AI te programmeren(aan de hand van een API) en dan hele wedstrijden simuleren ^^.
Een paar jaar geleden was er volgens mij een opdracht waarbij je een vecht robot moest programmeren ofzo aan de hand van een api.

[Contest] BotWars

[ Voor 4% gewijzigd door Jegorex op 22-09-2010 21:33 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 14-09 17:03

Creepy

Tactical Espionage Splatterer

D2k schreef op woensdag 22 september 2010 @ 09:18:
Creepy had een idee laatst, maar die was nog bezig met de uitwerking ervan.
* Creepy mept D2k. Working on it as we speaktype :+

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


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

D2k

Creepy schreef op woensdag 22 september 2010 @ 21:15:
[...]

* Creepy mept D2k. Working on it as we speaktype :+
Werk door slet ;-) Die tweet is al een maand oud :P

Doet iets met Cloud (MS/IBM)


  • SH4D3H
  • Registratie: Juni 2004
  • Laatst online: 27-02 23:46
Virtuele robot wars/battle bots! Alleen jammer dat, bij de meeste (command line) implementaties, de vonken er niet echt vanaf vliegen en ook het staalverbuigen tot een minimum beperkt is :+

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
SH4D3H schreef op woensdag 22 september 2010 @ 22:16:
[...]

Virtuele robot wars/battle bots! Alleen jammer dat, bij de meeste (command line) implementaties, de vonken er niet echt vanaf vliegen en ook het staalverbuigen tot een minimum beperkt is :+
Pluspunten als je graphics en sounds meelevert.
:P

[ Voor 75% gewijzigd door Bolukan op 23-09-2010 07:52 ]


  • Bigs
  • Registratie: Mei 2000
  • Niet online
Ik heb toen voor BotWars ook nog een entry geschreven.. wil best nog een keer met zoiets meedoen. Ik vind het spel van de DVONN contest wel erg complex en bovendien is het aantal talen beperkt. Ik vind de HTTP aanpak van Zeeslag wel leuk.

Heb alleen ook nog geen idee voor een spel :) Zat te denken aan kaartspellen, maarja dan zit je met de geluksfactor en het feit dat de uitdaging misschien niet heel groot is. De grafische weergave is echter wel weer een no-brainer.

  • edxtreem
  • Registratie: September 2008
  • Laatst online: 12-09-2024
Ik wil dit keer ook wel mee doen, heb er nu wat tijd voor :)

  • ajakkes
  • Registratie: Maart 2004
  • Laatst online: 16-05 22:32

ajakkes

👑

Ik denk dat veel kaartspellen zich prima lenen vanwege de eenvoud van handelen, de vaak simpele regels en eenvoudige strategieën bij veel spellen. Ook spellen als kamertje verhuren en galgje zijn redelijk goed te implementeren.

Voordeel van deze spellen is dat de meeste ze ook wel eens zelf gespeeld hebben en daarbij een eigen strategie hebben ontwikkeld en de regels goed kennen.

Ik zou eerder meedoen als ik de regels niet eerst hoef te bestuderen en het zelf al eens gespeeld heb.

Bij een spel als rummikub zou je geleidelijk de regels ingewikkelder kunnen maken (jokers). Eventueel zou je voor versie met en zonder kunnen kiezen als mensen meer uitdaging zoeken.

Misschien het populaire doch simpele pesten?
Zou je volgens mij ook een mmo van kunnen maken :)
Met honderd bots tegelijk pesten.

Als mensen zichzelf op de centrale server in en uit kunnen schrijven kan je het misschien standaard eens per week laten draaien.

👑


  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 14-09 09:42
Het leukste is natuurlijk om van een spel de spelregels iets te veranderen waarbij de standaard algoritmes niet gaan werken. Ook moet de geluksfactor laag blijven om zo de slimme stukken code te kunnen scheiden van de slechtere stukken code.
Een leuk idee is bijvoorbeeld misschien in een vier-op-een-rij-raster ( 7x6 regels) om de beurt een steen in te werpen totdat het geheel helemaal vol is. En daarna het aantal 3 op een rij gaan tellen.
Of bijvoorbeeld kamertjeverhuur met drie spelers waardoor ook de standaard tactiek niet meer voldoet.

Speel ook Balls Connect en Repeat


  • ajakkes
  • Registratie: Maart 2004
  • Laatst online: 16-05 22:32

ajakkes

👑

👑


  • martijnve
  • Registratie: December 2004
  • Laatst online: 14-09 00:34
Onbekend schreef op donderdag 23 september 2010 @ 18:01:
Het leukste is natuurlijk om van een spel de spelregels iets te veranderen waarbij de standaard algoritmes niet gaan werken. Ook moet de geluksfactor laag blijven om zo de slimme stukken code te kunnen scheiden van de slechtere stukken code.
Een leuk idee is bijvoorbeeld misschien in een vier-op-een-rij-raster ( 7x6 regels) om de beurt een steen in te werpen totdat het geheel helemaal vol is. En daarna het aantal 3 op een rij gaan tellen.
Of bijvoorbeeld kamertjeverhuur met drie spelers waardoor ook de standaard tactiek niet meer voldoet.
Behalve dat het 3 op-een-rij me niet zo aanspreekt sluit ik me hier bij aan.
Ik doe ook mee als er een leuk idee is.

Mini-ITX GamePC: Core i5 3470 | 16GB DDR3 | GTX 970 4GB | Samsung 830 128GB | Dell u2711 (27", IPS,1440p), 2343BW


  • phex
  • Registratie: Oktober 2002
  • Laatst online: 12-09 11:42
Lijkt mij ook wel leuk om een keer mee te doen!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
Ik dacht nog aan voertuigjes die je met simpele code (100 bytes) een veld in moet sturen met een opdracht (elkaar raken of vlag). Bij terugkomst krijg je (je masterprogramma) terug wat het voertuig allemaal heeft gezien en mag je een ander voertuig inbrengen. ('Verkenner', 'Doolhof-specialist', etc). Het is nog een idee...

  • Bigs
  • Registratie: Mei 2000
  • Niet online
Bolukan schreef op zaterdag 25 september 2010 @ 16:01:
Ik dacht nog aan voertuigjes die je met simpele code (100 bytes) een veld in moet sturen met een opdracht (elkaar raken of vlag). Bij terugkomst krijg je (je masterprogramma) terug wat het voertuig allemaal heeft gezien en mag je een ander voertuig inbrengen. ('Verkenner', 'Doolhof-specialist', etc). Het is nog een idee...
Dat was het idee van Bot Wars ook wel een beetje, maar dat was toch niet echt een succes. Ik denk dat een bestaand spel (want: bekend, uitgebalanceerd etc.) toch een beter idee is.

Verwijderd

We kunnen ook voor OpenTTD ieder een AI schrijven en die tegen elkaar laten "strijden". Het nadeel hiervan is dat dit enkel in C kan :P.

  • TweakPino
  • Registratie: September 2005
  • Laatst online: 00:51
Verwijderd schreef op zaterdag 25 september 2010 @ 18:33:
We kunnen ook voor OpenTTD ieder een AI schrijven en die tegen elkaar laten "strijden". Het nadeel hiervan is dat dit enkel in C kan :P.
Is al een keer gedaan: OpenTTD Programmeer Challenge. Toen mocht je alleen de scripttaal Squirrel gebruiken. Wel een leuk idee trouwens.

Acties:
  • 0 Henk 'm!

  • remielowik
  • Registratie: Januari 2010
  • Laatst online: 13-09 09:50
Misschien iets zoals poker, waarbij burn cards bekend worden gemaakt.

Acties:
  • 0 Henk 'm!

Verwijderd

Inderdaad Texas Hold 'em lijkt me leuk. De spelregels zijn vrij simpel, dus iedereen kan meedoen met een eenvoudige bot. Een goede bot maken is daarentegen een stuk moeilijker. Om te voorkomen dat spelers te snel er uit liggen zou je nog kunnen overwegen te beperken tot de limit-variant ipv no limit, maar dat is een heel stuk minder uitdagend om te schrijven.

[ Voor 34% gewijzigd door Verwijderd op 26-09-2010 17:45 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Het liefst zou ik gewoon een heel nieuw GoT contest zien. Aangezien ik zo goed als niet meer programmeer lijkt het me wel leuk om mee te doen. hint

[ Voor 5% gewijzigd door Verwijderd op 26-09-2010 19:02 ]


Acties:
  • 0 Henk 'm!

Verwijderd

ff vraagje tussen door. hoeveel uur word er gemiddeld gespendeerd aan de opdracht ? uren dagen ?

Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Verwijderd schreef op zondag 26 september 2010 @ 19:48:
ff vraagje tussen door. hoeveel uur word er gemiddeld gespendeerd aan de opdracht ? uren dagen ?
Dat ligt aan je ervaring en perfectionisme ;)

Na twee middagjes had ik het gros van de zeeslag-contest in php voor elkaar. Alleen was de ai nog waardeloos. Toen zag ik ook in dat ik te weinig tijd zou hebben voor de afronding en heb ik het project gestaakt :)

Acties:
  • 0 Henk 'm!

Verwijderd

je kan meedoen met een paar uur, maar als je 1e wil worden ben je toch wel een paar dagen verder ;)
afhankelijk van het gekozen algoritme natuurlijk.

Acties:
  • 0 Henk 'm!

Verwijderd

Heb net een heel leuke gevonden, het nadeel is dat hij al bestaat: http://www.ai-contest.com

Acties:
  • 0 Henk 'm!

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

StM

Is dan een soort multiplayer bot worms niet veel leuker? Ipv 1 vs 1 met zn allen in 1 veld en tegen elkaar. Iemand zal dan alleen wel een server moeten maken :)

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Site.to.Make schreef op maandag 27 september 2010 @ 15:39:
Is dan een soort multiplayer bot worms niet veel leuker? Ipv 1 vs 1 met zn allen in 1 veld en tegen elkaar. Iemand zal dan alleen wel een server moeten maken :)
Worms heeft geen 'AI', de computer is daar zelfs expres onnauwkeurig. Je kunt simpel uitrekenen hoe hard je moet schieten met welke angle om waar terecht te komen. Laat dat nu net iets zijn waar computers erg goed in zijn.

https://niels.nu


Acties:
  • 0 Henk 'm!

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

StM

Daarom, alleen maar AI's tegen elkaar :) Stop 20 AI's in 1 veld en ik denk dat je best een leuke uitdaging nog krijgt.

Acties:
  • 0 Henk 'm!

  • ajakkes
  • Registratie: Maart 2004
  • Laatst online: 16-05 22:32

ajakkes

👑

Spellen die afhankelijk zijn van snel handelen en nauwkeurig handelen zijn naar mijn bescheiden mening geen leuke opties. Dit is een kwestie van achterhalen welk algoritme de game-server gebruikt om te kijken of het raak of mis is en je hebt de perfecte AI. Volgens mij heeft(/had) Wikipedia: Tank Wars de mogelijkheid om (zo goed als) perfecte AI's tegen elkaar te laten spelen. Was niet echt een uitdaging om naar te kijken.

Ik denk dat spellen die voor win of verlies afhankelijk zijn van kans en strategie en niet van tijd en nauwkeurigheid veel leuker zijn om te programmeren.

Ik wil nogmaals de optie multiplayer hartejagen aanhalen. Vanwege de multiplayer variant zijn er nog niet zoveel tactieken te vinden denk ik.

[ Voor 1% gewijzigd door ajakkes op 27-09-2010 16:40 . Reden: Link edit ]

👑


Acties:
  • 0 Henk 'm!

  • Rmg
  • Registratie: November 2003
  • Laatst online: 14-09 17:55

Rmg

ajakkes schreef op maandag 27 september 2010 @ 16:38:
Spellen die afhankelijk zijn van snel handelen en nauwkeurig handelen zijn naar mijn bescheiden mening geen leuke opties. Dit is een kwestie van achterhalen welk algoritme de game-server gebruikt om te kijken of het raak of mis is en je hebt de perfecte AI. Volgens mij heeft(/had) Wikipedia: Tank Wars de mogelijkheid om (zo goed als) perfecte AI's tegen elkaar te laten spelen. Was niet echt een uitdaging om naar te kijken.

Ik denk dat spellen die voor win of verlies afhankelijk zijn van kans en strategie en niet van tijd en nauwkeurigheid veel leuker zijn om te programmeren.

Ik wil nogmaals de optie multiplayer hartejagen aanhalen. Vanwege de multiplayer variant zijn er nog niet zoveel tactieken te vinden denk ik.
yathzee is ook een goeie om een AI voor te bedenken :Y)

Acties:
  • 0 Henk 'm!

  • Bigs
  • Registratie: Mei 2000
  • Niet online
Hmm Yathzee vind ik nog niet eens zo'n gek idee!

Acties:
  • 0 Henk 'm!

  • ajakkes
  • Registratie: Maart 2004
  • Laatst online: 16-05 22:32

ajakkes

👑

Hmm, bij Yathzee speel je niet echt tegen elkaar toch? Keuzes van je tegenstander hebben geen invloed op jouw keuze. Geluk speelt een grote rol en strategie een vrij kleine. Of kennen jullie een variant waar dit niet zo is?

👑


Acties:
  • 0 Henk 'm!

  • Rmg
  • Registratie: November 2003
  • Laatst online: 14-09 17:55

Rmg

ajakkes schreef op maandag 27 september 2010 @ 16:49:
Hmm, bij Yathzee speel je niet echt tegen elkaar toch? Keuzes van je tegenstander hebben geen invloed op jouw keuze. Geluk speelt een grote rol en strategie een vrij kleine. Of kennen jullie een variant waar dit niet zo is?
Hmm mja dat is misschien wel een beetje een probleem. er zijn wel multiplayer yathzee spelletjes alleen daar speel je tegenelkaar voor de punten...

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 14-09 09:42
Het aantal keren dat een speler moet antwoorden moet wel laag blijven omdat de response tijden soms hoog zijn. Als je de geluksfactor laag wil houden, zal je elke speler meerdere keren een spel moeten laten spelen.
Mijn ervaring is dat er altijd trage servers of spelers tussen zitten die de boel ophouden. :)
Een hartenjagenspel hangt, net zoals vele kaartspellen, aardig veel van geluk af en is niet zo geschikt vind ik.
Rummikub hing wat minder met geluk af en zag je duidelijk de verschillen tussen de verschillende codes.

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
Van Yahtzee is de totale optimale strategie berekend.
*Ah, hier heb ik hem al weer gevonden*
Oeps daar gaat mijn winkans |:(

Edit: Maar zo'n soort spelletje is wel een goed idee.

[ Voor 18% gewijzigd door Bolukan op 27-09-2010 20:20 ]


Acties:
  • 0 Henk 'm!

Verwijderd

En als we nou eens een soort variant op van die tower defence spellen die je wel eens ziet maken?

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Site.to.Make schreef op maandag 27 september 2010 @ 16:25:
Daarom, alleen maar AI's tegen elkaar :) Stop 20 AI's in 1 veld en ik denk dat je best een leuke uitdaging nog krijgt.
Nee, want de AI die als eerste vuurt wint, dat is het punt dus. Dat is net zoals als een AI schrijven voor boter-kaas-en-eieren.
Rmg schreef op maandag 27 september 2010 @ 16:41:
yathzee is ook een goeie om een AI voor te bedenken :Y)
Nee, als je dat door een AI laat spelen is het puur geluk.

[ Voor 23% gewijzigd door Hydra op 29-09-2010 16:10 ]

https://niels.nu

Pagina: 1 ... 6 7 Laatste