ตอนนี้ปิดรายการแล้ว รายการใหม่หรือการแก้ไขใด ๆ จะไม่ถูกนับในการดำเนินการครั้งสุดท้าย
เข้าร่วมการแชท!
ท้าทาย
พยายามเติมผ้าใบด้วยสีให้ได้มากที่สุด ระวังบอทอื่น ๆ ที่อาจช่วยคุณทำงานหนักได้!
หมายเหตุ:ในคำอธิบายความท้าทายนี้การทาสีหมายถึงการเปลี่ยนสีของตารางบนกริดและไม่ได้ทาสีหมายความว่าสแควร์ในกริดมีสี 0 และไม่ได้มีสาเหตุมาจากบ็อตใด ๆ
อินพุต
ฟังก์ชั่นของคุณจะได้รับสี่ข้อโต้แย้ง: ตัวคุณเองตารางตำแหน่งของบอททั้งหมดในตารางและข้อมูลเกม
ตนเอง
นี่คืออาร์เรย์ 1D [id, xpos, ypos]
ซึ่งหมายถึงสีและตำแหน่งของคุณบนตาราง:
(0, 0)
ที่มุมบนซ้ายของตารางเป็นตำแหน่ง ตำแหน่ง(1,0)
อยู่ทางขวาของตำแหน่ง(0,1)
นั้นและอยู่ด้านล่าง
ID ของคุณเป็นจำนวนเต็มซึ่งมีความหมายเหมือนกันกับสีของคุณ (ดูด้านล่างเพื่อดูว่า ID ของคุณมีผลต่อการวาดตารางอย่างไร) ID ของคุณไม่ซ้ำกับ bot ของคุณ
ตะแกรง
นี่คืออาร์เรย์ 2D ซึ่งมีจำนวนเต็มที่บอกคุณว่าแต่ละเซลล์มีสีใด หากจำนวนของเซลล์กริดคือ0
นั่นหมายความว่าเซลล์ไม่ได้ทาสี ถ้าจำนวนเซลล์ตารางเป็นจำนวนเต็มx
นี้หมายความว่าเซลล์ได้รับการทาสีโดย ธ ปทกับ x
ID
ในการรับสีของตารางที่ตำแหน่ง(x, y)
ให้ใช้อาร์เรย์ดังนี้: grid[x][y]
.
บอท
นี่คืออาร์เรย์ที่มีข้อมูลเกี่ยวกับตำแหน่งของบ็อต องค์ประกอบของอาร์เรย์บอทแต่ละตัวคืออาร์เรย์ที่อธิบายแต่ละบอทและมีลักษณะดังนี้: [id, xpos, ypos]
, ที่ไหนid
คือ ID ของบอท, xpos
คือตำแหน่ง x ของบอทและypos
เป็นตำแหน่ง y ของบอท
อาร์เรย์นี้รวมถึงตำแหน่งและรหัสของบอทของคุณเอง บอตที่ถูกกำจัดจะไม่รวมอยู่ในอาเรย์นี้
ข้อมูลเกม
นี่คืออาร์เรย์ที่มีข้อมูลเกี่ยวกับเกมปัจจุบันและมีลักษณะดังนี้: [roundNum, maxRounds]
โดยที่roundNum
จำนวนรอบปัจจุบัน (ที่มีการจัดทำดัชนี 1 ครั้ง) และmaxRounds
จำนวนรอบในเกมปัจจุบัน
เอาท์พุต
เอาต์พุตควรเป็นสตริงที่ส่งคืนโดยฟังก์ชันของคุณ นี่คือคำสั่งการเคลื่อนไหว
คำสั่งการเคลื่อนไหวเป็นตัวกำหนดการเคลื่อนไหวครั้งต่อไปของคุณ คำสั่งที่ใช้ได้คือ:
up
down
left
right
wait
เมื่อใดก็ตามที่คุณย้ายคุณวาดตารางที่คุณย้ายไป (ดูด้านล่างสำหรับข้อมูลเพิ่มเติม)
ในกรณีที่wait
คุณไม่ย้าย (แต่คุณวาดตารางที่คุณอยู่)
หากคุณพยายามย้ายออกนอกตารางคำสั่งของคุณจะถูกละเว้นและคุณจะอยู่ในที่เดียวกัน
ทาสีตาราง
เมื่อใดก็ตามที่คุณย้ายไปที่สี่เหลี่ยมจัตุรัสคุณวาดมัน แต่มีกฎที่กำหนดว่าสีของสี่เหลี่ยมนั้นจะเป็นอย่างไร
หากสี่เหลี่ยมนั้นไม่ได้ทาสี (0) คุณก็เพียงแค่วาดสีเดียวกับ ID ของคุณเอง อย่างไรก็ตามหากสี่เหลี่ยมจัตุรัสได้รับการทาสีมาก่อนหน้านี้ (ไม่ใช่ศูนย์) สีของสี่เหลี่ยมจัตุรัสจะพบได้ตามรหัส JavaScript ต่อไปนี้:
[botColour, 0, floorColour][Math.abs(botColour - floorColour)%3]
สูตรนี้ทำขึ้นเพื่อให้บอทย้ายสีของตัวเองโดยไม่ต้องทาสีใหม่
การขจัด
หากหลังจากรอบ 5 คุณมีหนึ่งหรือน้อยกว่าสี่เหลี่ยมทาสี (จำนวนสี่เหลี่ยมในตารางที่มีสีเดียวกับคุณ) จากนั้นคุณจะถูกกำจัด ซึ่งหมายความว่าคุณจะไม่อยู่ในเกมอีกต่อไปและจะสูญเสียโดยอัตโนมัติ
กฎระเบียบ
- รหัสของคุณต้องเป็นฟังก์ชันประเภทนั้น
function(myself, grid, bots, gameInfo) {
// Code here
return move;
}
- กริดจะเป็นรูปสี่เหลี่ยมจัตุรัสยาวด้าน
- เพื่อป้องกันบอทเฉพาะจากการกำหนดเป้าหมาย ID ของบอตจะถูกสุ่ม
- เมื่อบอทสองตัวครอบครองพื้นที่เดียวกันสีของพื้นที่นั้นจะไม่ถูกทาสี
- การเคลื่อนไหวเป็นเปิดตามเช่นในช่วงรอบบอตทั้งหมดจะมาพร้อมกับที่เหมือนกัน
grid
,bots
และgameInfo
ข้อโต้แย้ง
- คุณสามารถสร้างได้สูงสุดสามบอท
- บอตอาจทำงานร่วมกัน แต่ต้องไม่สื่อสารซึ่งกันและกันและจะไม่รู้จักรหัสประจำตัวอื่น ๆ ผู้ชนะจะได้รับรางวัลเป็นรายบุคคลมากกว่าเป็นทีม
- คุณต้องไม่สร้างบอทที่มีเป้าหมายเป็นบอทที่เลือกไว้ล่วงหน้าโดยเจตนา อย่างไรก็ตามคุณอาจกำหนดเป้าหมายยุทธวิธีของบอทระดับทั่วไป
- บอทของคุณอาจเก็บข้อมูล
window.localStorage
ไว้ บอทแต่ละตัวต้องใช้วัตถุข้อมูลของตนเอง หากพบว่าบอทกำลังอ่านข้อมูลบอตอื่น (โดยบังเอิญหรือโดยเจตนา) มันจะถูกตัดสิทธิ์จนกว่าปัญหาจะได้รับการแก้ไข - หากบอทของคุณใช้ตัวเลขสุ่มโปรดใช้
Math.random()
ตัวควบคุม
ตัวควบคุมสามารถพบได้ที่นี่:
https://gist.github.com/beta-decay/10f026b15c3babd63c004db1f937eb14
หรือคุณสามารถเรียกใช้ได้ที่นี่: https://beta-decay.github.io/art_attack
หมายเหตุ:ฉันขอแนะนำให้คุณทำการทดสอบแบบออฟไลน์ (ดาวน์โหลดตัวควบคุมจากส่วนสำคัญ) เนื่องจากหน้าเว็บอาจเปลี่ยนแปลงได้ตลอดเวลา
เมื่อเพิ่มบอททั้งหมดแล้วฉันจะรันเกม 10,000 เกมพร้อมคอนโทรลเลอร์แบบแยกส่วนที่ไม่มีส่วนต่อประสานกราฟิก คุณสามารถเรียกใช้ได้ที่นี่: https://beta-decay.github.io/art_attack/fast
การชนะ
ผู้เล่นที่เติมผ้าใบมากที่สุดเป็นผู้ชนะในเกม (เกมคือ 2,000 รอบ) ในกรณีที่เสมอผู้เล่นที่ชนะทุกคนจะชนะ
ผู้เล่นที่ชนะมากที่สุดจาก 10,000 เกมชนะการท้าทาย
เกมประมาณ 10,000 เกมจะเปิดให้เล่นในวันจันทร์หน้า (2018-08-27 เวลา 23:00 UTC + 1)
[botColour, 0, floorColour][Math.abs(botColour - floorColour)%3]
สูตรมากขึ้นไม่ว่าบ็อตจะโชคดีหรือไม่ก็ตามเพื่อทาสีเหนือคู่แข่งรายใหญ่ (หรือทาสีทับ) นอกจากนี้ให้คำนึงถึงโทรลล์ / นักล่าซึ่งสามารถทำลายบอทที่พวกเขาเลือกได้ด้วยตนเอง ไม่ว่าจะด้วยวิธีใดมันจะเฉลี่ยในเกม 10,000 เกม
[botColour, 0, floorColour][Math.abs(botColour - floorColour)%3]
กรุณาแปลเป็นภาษาอังกฤษได้ไหม