Pazaakเป็นเกมไพ่จากจักรวาล Star Wars มันคล้ายกับ BlackJack โดยมีผู้เล่นสองคนต่อสู้กันเพื่อพยายามเข้าถึงจำนวนยี่สิบโดยไม่ผ่าน ผู้เล่นแต่ละคนมี "เด็คฝั่ง" ของไพ่สี่ใบของตนเองที่พวกเขาสามารถใช้เพื่อปรับเปลี่ยนคะแนนของพวกเขา
ลีดเดอร์บอร์ด
ตั้งแต่ 6/17/2015 @ 16:40 EDT
แก้ไข: Neptor ถูกตัดสิทธิ์เนื่องจากการโกง คะแนนจะได้รับการแก้ไขโดยเร็วที่สุด ...
- NEPTR: ~ 424,000
- The Cincinnati Kid: ~ 422,000
- Nestor: ~ 408,000
- มหาอำนาจออสติน: ~ 405,000
- Bastila: ~ 248,000
- ใบ้ผู้เล่นที่ระมัดระวัง: ~ 107,000
- ผู้เล่นใบ้ตัวหนา: ~ 87,000
รอบตัดเชือกจำลอง Pazaak
จะได้รับการอัปเดตโดยเร็วที่สุด
Round One - Nestor vs Bastila และ Austin Powers กับ The Cincinnati Kid
Round Two - Nestor vs Austin Powers & The Cincinnati Kid กับ Bastila
กลศาสตร์
เกมเพลย์ทำเสร็จแล้ว ผู้เล่นคนหนึ่งแจกไพ่จากเด็คหลัก (เฮ้าส์) สำรับไพ่ในบ้านมีสี่สิบใบ: สี่ใบต่อ 10 ใบหลังจากแจกไพ่พวกเขาสามารถเลือกที่จะจบเทิร์นและรับไพ่ใบใหม่ในเทิร์นถัดไปยืนตามมูลค่าปัจจุบันหรือเล่นการ์ดจากเด็คข้างและ ยืนที่ค่าใหม่ หลังจากผู้เล่นคนหนึ่งตัดสินใจสิ่งที่พวกเขาต้องการจะทำผู้เล่นสองคนจะทำซ้ำกระบวนการ
เมื่อผู้เล่นทั้งสองได้ไปมือจะถูกประเมิน หากผู้เล่นวางระเบิด (เกินยี่สิบ) ผู้เล่นคนอื่นจะชนะหากว่าพวกเขายังไม่ระเบิด หากผู้เล่นเลือกที่จะยืนและผู้เล่นอื่นมีมูลค่ามือที่สูงกว่าผู้เล่นอื่นจะชนะ หากผู้เล่นทั้งสองเลือกที่จะยืนผู้เล่นที่มีมูลค่ามือที่สูงกว่าจะชนะ ในกรณีที่เสมอกันผู้เล่นจะไม่ชนะ
หากไม่มีเงื่อนไขในการชนะการเล่นจะทำซ้ำ หากผู้เล่นเลือกที่จะจบเทิร์นของพวกเขาพวกเขาจะได้รับการ์ดใหม่และสามารถสร้างทางเลือกใหม่ หากพวกเขาเลือกที่จะยืนหรือถ้าพวกเขาเล่นไพ่จากดาดฟ้าด้านข้างพวกเขาจะไม่ได้รับไพ่ใหม่และไม่สามารถเลือกการกระทำใหม่ได้
การเล่นจะดำเนินต่อไปเช่นนี้จนกระทั่งผู้เล่นคนหนึ่งชนะเกม เกมที่เล่นในชุดที่ดีที่สุดสามในห้า
ทำไมต้อง "Simple" Pazaak
ในจักรวาลสตาร์วอร์ส Pazaak เกี่ยวข้องกับการพนัน ในขณะที่การรวมระบบดังกล่าวจะเพิ่มความมีชีวิตชีวาให้กับเกมมากขึ้น แต่มันค่อนข้างซับซ้อนสำหรับการแข่งขัน KoTH เป็นครั้งแรก
"ของจริง" ดาดฟ้าด้าน Pazaak ก็มีให้โดยผู้เล่นเองและอาจรวมถึงตัวเลือกการ์ดที่แตกต่างกันมากมายเช่นบัตรเชิงลบบัตรบวกหรือลบบัตรพลิกการ์ดไพ่คู่และบัตร tiebreaker สิ่งเหล่านี้จะทำให้เกมน่าสนใจยิ่งขึ้น แต่จะต้องมีอินเทอร์เฟซการพนันในสถานที่และจะต้องการคู่แข่งออกไปอีกมาก ในเกม Simple Pazaak นี้ผู้เล่นแต่ละคนจะได้รับไพ่เด็คข้างเดียวกัน: สำเนาสองชุดของหนึ่งถึงห้าจากที่สี่ถูกสุ่มเลือก
ขึ้นอยู่กับความสำเร็จของเกมนี้ฉันอาจใช้ความพยายามในการพัฒนาเวอร์ชั่นขั้นสูงซึ่งการเล่นการพนันและการตกแต่งด้านข้างแบบกำหนดเองเป็นไปได้
ผู้เล่น
ผู้เล่นของเกมนี้จะเป็นบอทที่ออกแบบโดยคุณ บอทแต่ละตัวต้องขยายคลาสผู้เล่นนำเข้าแพ็คเกจกลไกและอยู่ในแพ็คเกจผู้เล่นดังนี้:
package Players;
import java.util.Collection;
import Mechanics.*;
public class DemoPlayer extends Player {
public DemoPlayer() {
name = "Your Name Here";
}
public void getResponse(int wins[], boolean isPlayerOne,
Collection<Card> yourHand, Collection<Card> opponentHand,
Collection<Card> yourSideDeck, int opponentSideDeckCount,
Action opponentAction, boolean opponentDidPlay) {
action = null;
cardToPlay = null;
}
}
ในแต่ละรอบผู้ควบคุมจะเรียกใช้เมธอด getResponse สำหรับบอทของคุณเว้นแต่ว่าบอทของคุณก่อนหน้านี้ระบุว่าต้องการให้ยืน เมธอด getResponse สามารถตั้งค่าคุณสมบัติสองอย่าง: การกระทำและการ์ดเพื่อเล่น การดำเนินการสามารถเป็นหนึ่งในสิ่งต่อไปนี้:
- END: จบเทิร์นและดึงการ์ดใบใหม่เทิร์นถัดไป
- STAND: พักที่ค่ามือปัจจุบัน จะไม่จั่วไพ่
- PLAY: เล่นการ์ดจากเด็คข้างแล้วยืน
เห็นได้ชัดว่าการ์ดที่เล่นมีความสำคัญเท่านั้นหากคุณตั้งค่าการกระทำเป็นเล่น ใช้วัตถุการ์ด หากวัตถุการ์ดที่คุณส่งไปยังวัตถุนั้นไม่มีอยู่ในเด็คข้างของคุณบอทของคุณจะยืนแทน
พารามิเตอร์ที่บอทของคุณได้รับคือ:
- อาร์เรย์ที่มีชัยชนะของผู้เล่นแต่ละคน ชนะ [0] คือผู้เล่น 1 คนชนะ1คือผู้เล่น 2 (int [])
- บ็อตของคุณเป็นผู้เล่นคนหนึ่งหรือไม่ (บูลีน)
- คอลเล็กชันของการ์ดที่คุณได้รับแจกจนถึงปัจจุบัน (คอลเลกชัน)
- คอลเลกชันของการ์ดฝ่ายตรงข้ามของคุณได้รับการจัดการป่านนี้ (ชุด)
- คอลเลกชันของการ์ดในเด็คของคุณ
- จำนวนไพ่ที่เหลือในเด็คฝั่งคู่ต่อสู้ของคุณ (int)
- การกระทำที่ฝ่ายตรงข้ามทำล่าสุด (การกระทำ) [หมายเหตุ: นี่จะเป็น END หรือ STAND, ไม่เคยเล่น]
- ฝ่ายตรงข้ามของคุณเล่นไพ่หรือไม่ (บูลีน)
กฎ ธ ปท
บอทของคุณสามารถใช้ข้อมูลที่ได้รับจากวิธีการ getResponse เท่านั้น พวกเขาไม่ควรพยายามโต้ตอบกับชั้นเรียนอื่น ๆ พวกเขาอาจเขียนเป็นไฟล์เดียวเพื่อเก็บข้อมูลระหว่างรอบ พวกเขาอาจมีวิธีการที่กำหนดเองคุณสมบัติ ฯลฯ ตามที่ต้องการ พวกเขาควรรันในเวลาที่เหมาะสม (หากการรันโปรแกรมไม่ได้เกิดขึ้นทันทีฉันจะสังเกตเห็นว่ามีอะไรผิดปกติ)
หากคุณพบการโกงในโค้ดคุณจะได้รับรางวัล "เปิดตัวเอง" ถ้าฉันสังเกตเห็นการหาประโยชน์ก่อนฉันจะแก้ไขและคุณจะไม่ได้รับรางวัล
สาธิตการใช้งาน
คอนโทรลเลอร์ไม่จำเป็นต้องเขียนบอทเนื่องจากทุกอย่างได้อธิบายไว้แล้วในโพสต์นี้ อย่างไรก็ตามหากคุณต้องการทดสอบสามารถพบได้ที่นี่: https://github.com/PhantomJedi759/simplepazaak รวม สองบอทพื้นฐาน ไม่ควรสู้กับคู่แข่งที่ "ฉลาด" ได้ดีเพราะพวกเขาเลือกได้เฉพาะระหว่าง END และ STAND นี่คือตัวอย่างการรันของสิ่งที่พวกเขาทำ:
New Game!
The standings are 0 to 0
Dumb Bold Player's Hand: []
Dumb Bold Player's new Hand: [2]
Dumb Bold Player has chosen to END
Dumb Cautious Player's Hand: []
Dumb Cautious Player's new Hand: [8]
Dumb Cautious Player has chosen to END
Dumb Bold Player's Hand: [2]
Dumb Bold Player's new Hand: [2, 8]
Dumb Bold Player has chosen to END
Dumb Cautious Player's Hand: [8]
Dumb Cautious Player's new Hand: [8, 3]
Dumb Cautious Player has chosen to END
Dumb Bold Player's Hand: [2, 8]
Dumb Bold Player's new Hand: [2, 8, 7]
Dumb Bold Player has chosen to END
Dumb Cautious Player's Hand: [8, 3]
Dumb Cautious Player's new Hand: [8, 3, 6]
Dumb Cautious Player has chosen to STAND
Dumb Bold Player's Hand: [2, 8, 7]
Dumb Bold Player's new Hand: [2, 8, 7, 6]
Dumb Bold Player has chosen to STAND
Dumb Cautious Player's Hand: [8, 3, 6]
Dumb Cautious Player has chosen to STAND
Dumb Bold Player has bombed out! Dumb Cautious Player wins!
เนื่องจากบอทเหล่านี้พึ่งพาโชคของการเสมอสัดส่วนการชนะที่ขาดทุนอาจแตกต่างกันอย่างมาก มันจะน่าสนใจเพื่อดูว่าทักษะสามารถต่อสู้กับโชคของเกมได้อย่างไร
นี่ควรเป็นทุกสิ่งที่คุณต้องการ! ไปสร้างบอทกัน!
ชี้แจงกฎ
สำรับหลักคือไพ่สี่สิบใบ: 4x1-10 มันถูกเปลี่ยนใหม่ในตอนเริ่มต้นของแต่ละมือ
เด็คฝั่งผู้เล่นมีไพ่สี่ใบเลือกสุ่มจาก 2x1-5 ดาดฟ้าด้านข้างยังคงอยู่ระหว่างมือ
มือจะเล่นในเกมที่ดีที่สุดสามในห้า บอตจะได้คะแนนตามจำนวนเกมทั้งหมดที่ชนะและจากจำนวนทั้งหมดของมือ
การจับคู่ถูกจัดการเพื่อให้ผู้เล่นแต่ละคนจะต้องเล่น 100,000 เกมกับผู้เล่นคนอื่น ๆ
ใน Pazaak Cup รอบการกำจัดสไตล์จะแคบลงว่าใครเป็นบอท Pazaak ที่ดีที่สุดจริงๆ การจับคู่บอตแต่ละคู่จะเล่นให้ดีที่สุดถึงสี่ชุดจากทั้งหมดเจ็ดเกมจำนวน 100,000 เกม ผู้ชนะสี่คนจะเลื่อนขึ้นบันไดไปยังคู่ต่อสู้คนถัดไปและผู้แพ้จะอยู่ในการต่อสู้เพื่อการจัดอันดับต่อเนื่อง รูปแบบการเล่นเกมนี้มีความยุติธรรมที่สุดเนื่องจากบอทไม่สามารถ "ชนะฟาร์ม" คู่ต่อสู้บางรายเพื่อชดเชยการขาดความสามารถกับผู้อื่น Pazaak Cup จะจัดขึ้นในวันศุกร์ที่ 3 กรกฎาคมหากมีบอทที่ส่งอย่างน้อยแปด ผู้ชนะจะได้รับสถานะคำตอบที่ถูกต้องและโบนัสเริ่มต้นใน Advanced Pazaak ซึ่งหวังว่าจะพร้อมในเวลาเดียวกันกับที่ Pazaak Cup จัดขึ้น