การประกวดสิ้นสุดลงแล้ว ขี้ขลาดเป็นผู้ชนะ คุณสามารถรับชมการแข่งขันที่ผ่านมาที่นี่
ทันใดนั้นซอมบี้ก็ปรากฏขึ้น! โอ้โห!
ในการท้าทายที่ท้าทายนี้คุณต้องสร้างบอทเพื่อเอาชีวิตรอดจากซอมบี้วิบัติ หรืออย่างน้อยก็ค้างไว้ให้นานที่สุด
ในช่วงเริ่มต้นของเกม 50 ตัวอย่างของแต่ละรายการจะถูกวางแบบสุ่มในพื้นที่เล่นขนาดใหญ่แบบวงแหวน - นั่นคือดูเหมือนว่าจะเป็นสี่เหลี่ยมจัตุรัส แต่ล้อมรอบ ขนาดของพื้นที่เล่นจะแตกต่างกันไปขึ้นอยู่กับจำนวนของรายการ แต่ในขั้นต้น 6% ของสี่เหลี่ยมจะถูกครอบครอง ผู้แข่งขันแต่ละคนเริ่มด้วยกระสุน 3 นัด
ในตอนต้นของแต่ละตาซอมบี้จะเพิ่มขึ้นจากพื้นดินในตำแหน่งสุ่มทำลายสิ่งที่อยู่เหนือมัน ผู้เล่นที่อยู่ถัดจากซอมบี้ในช่วงเริ่มเทิร์นจะกลายเป็นซอมบี้
สำหรับผู้เล่นที่มีชีวิตแต่ละคนรหัสของพวกเขาจะถูกเรียก จะได้รับวัตถุPlayerContextที่มีข้อมูลเกี่ยวกับสถานะปัจจุบันและสภาพแวดล้อมของพวกเขา ผู้เล่นแต่ละคนสามารถมองเห็น 8 สี่เหลี่ยมในทิศทางใด ๆ
ผู้เล่นจะต้องเลือกที่จะย้าย (เข้าพักยังคงเป็นความเคลื่อนไหวที่ถูกต้อง) โดยกลับหรือยิงคนที่อยู่ใกล้เคียงหรือผีดิบโดยกลับMove
Shoot
ปืนของคุณมีช่วงสูงสุด 5 กำลังสอง เมื่อคุณอยู่ในขอบเขตปืนของคุณคุณสามารถยิงตัวเองได้ถ้าคุณมีกระสุนเหลือ หากผู้เล่นสองคนยิงกันพวกเขาทั้งสองตาย
หากผู้เล่นสองคนพยายามที่จะย้ายไปยังจัตุรัสเดียวกันพวกเขาจะล้มเหลวและจะกลับไปที่จัตุรัสที่พวกเขาเริ่มต้นจาก หากยังมีข้อขัดแย้งอยู่จะมีการทำซ้ำจนกว่าจะไม่มีความขัดแย้งซึ่งอาจหมายถึงทุกคนกลับมาสู่จุดเริ่มต้น
หากผู้เล่นเสียชีวิตจากกระสุนปืนร่างกายที่ตายแล้วจะยังคงอยู่และสร้างสิ่งกีดขวางถาวร สัญลักษณ์แสดงหัวข้อย่อยใด ๆ ที่พวกเขาถืออยู่ยังคงอยู่ในคนของพวกเขาและสามารถถูกผู้เล่นในสี่เหลี่ยมที่อยู่ติดกัน หากมีผู้เล่นหลายคนที่ครอบครองพื้นที่สี่เหลี่ยมที่อยู่ติดกับศพแล้วกระสุนจะถูกใช้ร่วมกันระหว่างพวกเขา แต่ส่วนที่เหลือจะหายไป
หากผู้เล่นกลายเป็นซอมบี้แล้วกระสุนของพวกเขาจะหายไป ซอมบี้จะเดินไปหาผู้เล่นที่มีชีวิตอยู่ใกล้ ๆ อย่างไร้เหตุผล
ผลงานจะถูกทำคะแนนว่าผู้เล่นที่รอดชีวิตมานานที่สุดจะอยู่รอดได้นานแค่ไหน
รายการ
โปรแกรมการควบคุมที่มีอยู่ในhttps://github.com/jamespic/zombies mvn compile exec:java
เพียงแค่โคลนมันและทำงาน
จึงจะมีสิทธิ์เข้าร่วมรายการจะต้องเขียนในภาษา JVM จะต้องพกพาได้และจะต้องสามารถสร้างจาก Maven โดยไม่มีการตั้งค่าพิเศษ นี่คือเพื่อให้แน่ใจว่าคู่แข่งไม่จำเป็นต้องติดตั้งสภาพแวดล้อมแบบรันไทม์หลายแห่งเพื่อทดสอบบอทกับคู่แข่ง
รายการตัวอย่างมีให้บริการในภาษาต่อไปนี้:
- Java 7 - ดูตัวอย่างที่ซับซ้อนมากขึ้นและรหัสสำหรับซอมบี้
- สกาล่า 2.11.1
- Javascript (ผ่าน Rhino)
- Python (ผ่าน Jython 2.7 เบต้า 2)
- ทับทิม (ผ่าน JRuby 1.7.13)
- Clojure 1.5.1
- Frege (เหมือน Haskell - นี่เป็นอีกตัวอย่างหนึ่ง )
หากคุณต้องการแข่งขันในภาษาที่ไม่ได้อยู่ในรายการคุณสามารถโพสต์ความคิดเห็นที่ร้องขอและฉันจะตรวจสอบความเป็นไปได้ของการรวมภาษาที่คุณเลือกไว้ในโปรแกรมควบคุม หรือถ้าคุณใจร้อนคุณสามารถส่งคำขอดึงไปยังโปรแกรมควบคุม
หนึ่งอินสแตนซ์เท่านั้น (ในความหมายของคำว่า Java) จะถูกสร้างขึ้นสำหรับแต่ละรายการ อินสแตนซ์ Java นี้จะถูกเรียกหลายครั้งต่อเทิร์น - หนึ่งครั้งสำหรับผู้เล่นที่รอดชีวิตแต่ละคน
API
package zombie
// You implement this. Your entry should be in package `player`
interface Player {
Action doTurn(PlayerContext context)
}
// These already exist
class PlayerContext {
// A square array, showing the area around you, with you at the centre
// playFields is indexed by x from West to East, then y from North to South
PlayerId[][] getPlayField()
int getBullets() // Current bullets available
int getGameClock() // Current turn number
PlayerId getId() // Id of the current player instance
int getX() // Your current x co-ordinate
int getY() // Your current y co-ordinate
int getBoardSize() // The size of the current playing field
Set<PlayerId> shootablePlayers() // A helper function that identifies players in range.
}
class PlayerId {
String getName() // The name of the entrant that owns this player
int getNumber() // A unique number, assigned to this player
}
// Don't implement this. Use either `Move` or `Shoot`
interface Action {}
enum Move implements Action {
NORTHWEST, NORTH, NORTHEAST,
EAST, STAY, WEST,
SOUTHEAST, SOUTH, SOUTHWEST;
static move randomMove();
}
class Shoot implements Action {
Shoot(PlayerId target);
}
กฎเพิ่มเติม
แต่ละรายการจะต้องมีชื่อที่ไม่ซ้ำกันเพื่อให้สามารถทำงานได้อย่างถูกต้องกับโปรแกรมควบคุม
คอมเมนต์ไม่ควรพยายามที่จะยุ่งเกี่ยวกับผู้เข้าแข่งขันรายอื่นหรือด้วยโปรแกรมควบคุมหรือใช้ประโยชน์จากสภาพแวดล้อมแบบรันไทม์เพื่อ "ทำลายกำแพงที่สี่" และได้รับผลประโยชน์ที่ไม่สามารถหาได้ในการเปิดเผยซอมบี้ "ของจริง" .
อนุญาตการสื่อสารระหว่างผู้เล่น
ผู้ชนะคือผู้เข้าร่วมที่บอทมีคะแนนสูงสุดในการทดสอบฉันจะลงแข่งในวันที่ 3 สิงหาคม 2014
ผลลัพธ์สุดท้าย
ผลลัพธ์สุดท้ายอยู่ใน! ขี้ขลาดเป็นผู้ชนะ!
ในวันที่ 2 สิงหาคมฉันวิ่งโปรแกรมควบคุม 19 รอบและจัดอันดับผู้เล่นแต่ละคนตามคะแนนเฉลี่ย ผลการวิจัยพบว่า
Coward: 4298
Fox: 3214
Shotguneer: 2471
Cocoon: 1834
JohnNash: 1240
HuddleWolf: 1112
Sokie: 1090
SOS: 859
GordonFreeman: 657
Jack: 657
Waller: 366
SuperCoward: 269
MoveRandomly: 259
StandStill: 230
Vortigaunt: 226
ThePriest: 223
Bee: 61
HideyTwitchy: 52
ZombieHater: 31
Gunner: 20
ZombieRightsActivist: 16
SunTzu: 11
EmoWolfWithAGun: 0
รอบสุดท้ายจะพร้อมใช้งานดูที่นี่
ผลลัพธ์แบบ Run-by-run
ผลการแข่งขันแต่ละรายการใน 19 ครั้งนั้น ได้แก่ :
#Run at 03-Aug-2014 14:45:35#
Bee: 21
Cocoon: 899
Coward: 4608
EmoWolfWithAGun: 0
Fox: 3993
GordonFreeman: 582
Gunner: 18
HideyTwitchy: 37
HuddleWolf: 2836
Jack: 839
JohnNash: 956
MoveRandomly: 310
SOS: 842
Shotguneer: 2943
Sokie: 937
StandStill: 250
SunTzu: 3
SuperCoward: 318
ThePriest: 224
Vortigaunt: 226
Waller: 258
ZombieHater: 41
ZombieRightsActivist: 10
#Run at 03-Aug-2014 14:56:48#
Bee: 97
Cocoon: 3073
Coward: 5699
EmoWolfWithAGun: 0
Fox: 4305
GordonFreeman: 1252
Gunner: 24
HideyTwitchy: 25
HuddleWolf: 3192
Jack: 83
JohnNash: 1195
MoveRandomly: 219
SOS: 884
Shotguneer: 3751
Sokie: 1234
StandStill: 194
SunTzu: 69
SuperCoward: 277
ThePriest: 884
Vortigaunt: 564
Waller: 1281
ZombieHater: 10
ZombieRightsActivist: 2
#Run at 03-Aug-2014 15:01:37#
Bee: 39
Cocoon: 2512
Coward: 2526
EmoWolfWithAGun: 0
Fox: 2687
GordonFreeman: 852
Gunner: 21
HideyTwitchy: 91
HuddleWolf: 1112
Jack: 1657
JohnNash: 944
MoveRandomly: 312
SOS: 660
Shotguneer: 1067
Sokie: 1356
StandStill: 169
SunTzu: 8
SuperCoward: 351
ThePriest: 223
Vortigaunt: 341
Waller: 166
ZombieHater: 25
ZombieRightsActivist: 47
#Run at 03-Aug-2014 15:08:27#
Bee: 27
Cocoon: 2026
Coward: 3278
EmoWolfWithAGun: 0
Fox: 2677
GordonFreeman: 611
Gunner: 16
HideyTwitchy: 11
HuddleWolf: 1694
Jack: 600
JohnNash: 1194
MoveRandomly: 48
SOS: 751
Shotguneer: 5907
Sokie: 1233
StandStill: 62
SunTzu: 9
SuperCoward: 252
ThePriest: 173
Vortigaunt: 107
Waller: 276
ZombieHater: 53
ZombieRightsActivist: 38
#Run at 03-Aug-2014 15:14:01#
Bee: 26
Cocoon: 1371
Coward: 5121
EmoWolfWithAGun: 0
Fox: 3878
GordonFreeman: 464
Gunner: 29
HideyTwitchy: 130
HuddleWolf: 955
Jack: 101
JohnNash: 698
MoveRandomly: 269
SOS: 1314
Shotguneer: 2444
Sokie: 3217
StandStill: 233
SunTzu: 10
SuperCoward: 269
ThePriest: 318
Vortigaunt: 266
Waller: 494
ZombieHater: 49
ZombieRightsActivist: 9
#Run at 03-Aug-2014 15:19:43#
Bee: 25
Cocoon: 2098
Coward: 4855
EmoWolfWithAGun: 0
Fox: 4081
GordonFreeman: 227
Gunner: 43
HideyTwitchy: 28
HuddleWolf: 2149
Jack: 1887
JohnNash: 1457
MoveRandomly: 117
SOS: 1068
Shotguneer: 4272
Sokie: 636
StandStill: 53
SunTzu: 9
SuperCoward: 209
ThePriest: 220
Vortigaunt: 227
Waller: 366
ZombieHater: 19
ZombieRightsActivist: 49
#Run at 03-Aug-2014 15:24:03#
Bee: 46
Cocoon: 682
Coward: 3588
EmoWolfWithAGun: 0
Fox: 4169
GordonFreeman: 764
Gunner: 13
HideyTwitchy: 21
HuddleWolf: 842
Jack: 1720
JohnNash: 1260
MoveRandomly: 259
SOS: 636
Shotguneer: 777
Sokie: 586
StandStill: 75
SunTzu: 6
SuperCoward: 390
ThePriest: 189
Vortigaunt: 208
Waller: 334
ZombieHater: 61
ZombieRightsActivist: 20
#Run at 03-Aug-2014 15:29:49#
Bee: 90
Cocoon: 516
Coward: 4298
EmoWolfWithAGun: 0
Fox: 1076
GordonFreeman: 581
Gunner: 8
HideyTwitchy: 87
HuddleWolf: 4298
Jack: 4715
JohnNash: 727
MoveRandomly: 102
SOS: 859
Shotguneer: 2471
Sokie: 2471
StandStill: 427
SunTzu: 24
SuperCoward: 159
ThePriest: 359
Vortigaunt: 94
Waller: 398
ZombieHater: 54
ZombieRightsActivist: 21
#Run at 03-Aug-2014 15:36:50#
Bee: 18
Cocoon: 3127
Coward: 3124
EmoWolfWithAGun: 0
Fox: 5094
GordonFreeman: 255
Gunner: 43
HideyTwitchy: 17
HuddleWolf: 1078
Jack: 272
JohnNash: 1270
MoveRandomly: 55
SOS: 723
Shotguneer: 3126
Sokie: 1388
StandStill: 179
SunTzu: 7
SuperCoward: 45
ThePriest: 519
Vortigaunt: 172
Waller: 200
ZombieHater: 45
ZombieRightsActivist: 8
#Run at 03-Aug-2014 15:40:59#
Bee: 78
Cocoon: 1834
Coward: 4521
EmoWolfWithAGun: 0
Fox: 1852
GordonFreeman: 657
Gunner: 7
HideyTwitchy: 2
HuddleWolf: 969
Jack: 895
JohnNash: 1596
MoveRandomly: 277
SOS: 694
Shotguneer: 1397
Sokie: 844
StandStill: 325
SunTzu: 7
SuperCoward: 192
ThePriest: 148
Vortigaunt: 369
Waller: 232
ZombieHater: 16
ZombieRightsActivist: 17
#Run at 03-Aug-2014 15:44:22#
Bee: 23
Cocoon: 2638
Coward: 2269
EmoWolfWithAGun: 0
Fox: 2067
GordonFreeman: 730
Gunner: 21
HideyTwitchy: 60
HuddleWolf: 763
Jack: 1469
JohnNash: 1494
MoveRandomly: 273
SOS: 3181
Shotguneer: 3181
Sokie: 653
StandStill: 450
SunTzu: 19
SuperCoward: 272
ThePriest: 215
Vortigaunt: 299
Waller: 510
ZombieHater: 62
ZombieRightsActivist: 16
#Run at 03-Aug-2014 15:48:03#
Bee: 97
Cocoon: 2009
Coward: 2798
EmoWolfWithAGun: 0
Fox: 1907
GordonFreeman: 958
Gunner: 22
HideyTwitchy: 93
HuddleWolf: 925
Jack: 288
JohnNash: 476
MoveRandomly: 422
SOS: 3723
Shotguneer: 2076
Sokie: 1090
StandStill: 134
SunTzu: 92
SuperCoward: 141
ThePriest: 470
Vortigaunt: 216
Waller: 340
ZombieHater: 32
ZombieRightsActivist: 20
#Run at 03-Aug-2014 16:03:38#
Bee: 121
Cocoon: 501
Coward: 9704
EmoWolfWithAGun: 0
Fox: 3592
GordonFreeman: 588
Gunner: 20
HideyTwitchy: 54
HuddleWolf: 749
Jack: 1245
JohnNash: 1345
MoveRandomly: 451
SOS: 835
Shotguneer: 1548
Sokie: 589
StandStill: 166
SunTzu: 11
SuperCoward: 158
ThePriest: 93
Vortigaunt: 246
Waller: 1350
ZombieHater: 18
ZombieRightsActivist: 11
#Run at 03-Aug-2014 16:10:24#
Bee: 66
Cocoon: 1809
Coward: 3295
EmoWolfWithAGun: 0
Fox: 3214
GordonFreeman: 1182
Gunner: 15
HideyTwitchy: 52
HuddleWolf: 1514
Jack: 101
JohnNash: 745
MoveRandomly: 211
SOS: 862
Shotguneer: 6335
Sokie: 1504
StandStill: 384
SunTzu: 14
SuperCoward: 259
ThePriest: 244
Vortigaunt: 262
Waller: 1356
ZombieHater: 24
ZombieRightsActivist: 20
#Run at 03-Aug-2014 16:28:05#
Bee: 61
Cocoon: 692
Coward: 11141
EmoWolfWithAGun: 0
Fox: 1955
GordonFreeman: 1234
Gunner: 42
HideyTwitchy: 24
HuddleWolf: 1862
Jack: 609
JohnNash: 1579
MoveRandomly: 167
SOS: 958
Shotguneer: 11141
Sokie: 284
StandStill: 422
SunTzu: 66
SuperCoward: 121
ThePriest: 207
Vortigaunt: 128
Waller: 259
ZombieHater: 22
ZombieRightsActivist: 7
#Run at 03-Aug-2014 16:32:10#
Bee: 207
Cocoon: 4414
Coward: 2670
EmoWolfWithAGun: 0
Fox: 978
GordonFreeman: 620
Gunner: 19
HideyTwitchy: 135
HuddleWolf: 962
Jack: 657
JohnNash: 1200
MoveRandomly: 147
SOS: 687
Shotguneer: 2258
Sokie: 2433
StandStill: 249
SunTzu: 49
SuperCoward: 1056
ThePriest: 602
Vortigaunt: 326
Waller: 593
ZombieHater: 31
ZombieRightsActivist: 10
#Run at 03-Aug-2014 16:38:56#
Bee: 265
Cocoon: 2231
Coward: 4228
EmoWolfWithAGun: 0
Fox: 4737
GordonFreeman: 532
Gunner: 9
HideyTwitchy: 75
HuddleWolf: 2375
Jack: 1237
JohnNash: 1249
MoveRandomly: 109
SOS: 860
Shotguneer: 6470
Sokie: 1096
StandStill: 126
SunTzu: 15
SuperCoward: 393
ThePriest: 133
Vortigaunt: 184
Waller: 257
ZombieHater: 32
ZombieRightsActivist: 12
#Run at 03-Aug-2014 16:52:16#
Bee: 67
Cocoon: 1534
Coward: 9324
EmoWolfWithAGun: 0
Fox: 2458
GordonFreeman: 1019
Gunner: 24
HideyTwitchy: 72
HuddleWolf: 601
Jack: 399
JohnNash: 1366
MoveRandomly: 275
SOS: 506
Shotguneer: 1007
Sokie: 475
StandStill: 230
SunTzu: 135
SuperCoward: 361
ThePriest: 61
Vortigaunt: 112
Waller: 4106
ZombieHater: 12
ZombieRightsActivist: 22
#Run at 03-Aug-2014 17:03:04#
Bee: 26
Cocoon: 1159
Coward: 7796
EmoWolfWithAGun: 0
Fox: 3948
GordonFreeman: 878
Gunner: 3
HideyTwitchy: 17
HuddleWolf: 1490
Jack: 513
JohnNash: 1240
MoveRandomly: 487
SOS: 1460
Shotguneer: 1481
Sokie: 832
StandStill: 457
SunTzu: 8
SuperCoward: 480
ThePriest: 527
Vortigaunt: 171
Waller: 3729
ZombieHater: 30
ZombieRightsActivist: 10