দাবা দুনিয়ায় বেশ কাজ হয়েছে। উদাহরণস্বরূপ, একটি মানকযুক্ত ফাইল ফর্ম্যাট .pgn
রয়েছে, যা চালের তালিকা সহ দাবা খেলার বর্ণনা দেয়। অতিরিক্তভাবে, আরও একটি ফাইল ফর্ম্যাট রয়েছে .fen
যা বোর্ডের অবস্থানের বর্ণনা দেয়। আজকের চ্যালেঞ্জ হ'ল দাবা চালগুলির একটি তালিকা ( বীজগণিত স্বরলিপিতে ) একটি বোর্ড অবস্থানে রূপান্তর করা ।
সংজ্ঞা
- অবস্থান
[a-h][1-8]
: সারি (ফাইল) এবং কলাম (র্যাঙ্ক) যুক্ত করে দেওয়া। বোর্ডে possible৪ টি সম্ভাব্য অবস্থানের একটি নির্ধারণ করে। - টুকরা
[KQRBNP]?
: কে ইনগ, কিউ ইউন, আর ইউক , বি আইশপ, কে এন ight, পি ওএন এর প্রতিনিধিত্ব করে । বীজগণিত স্বরলিপিP
ব্যবহার করা হয় না। বোর্ডে ব্যবহার করার সময়, অক্ষরগুলি সাদা হলে অন্যথায় বড় হয়, অন্যথায় ছোট হাতের অক্ষর case - সরান
[KQRBN]?[a-h]?[1-8]?x?[a-h][1-8](=[KQRBN])?(+*?)?|O-O(-O)
: একটি টুকরো যার পরে এটি স্থানান্তরিত হয়।- যদি টুকরোটি অস্পষ্ট হয় তবে সারি বা কলাম বা উভয়ই দেওয়া হয়।
- যদি টুকরাটি কোনও টুকরো ধরে ফেলছে
x
তবে টুকরো এবং অবস্থানের মধ্যে স্থাপন করা হবে। - যদি পদক্ষেপটি একটি কাস্টলিং হয়, তবে
O-O
কিং-সাইডের জন্য দেওয়া হয়, অন্যথায়O-O-O
। - যদি কোনও মহিমা প্রচার করা হয়, তবে পদক্ষেপটি এতে প্রচারিত
=
টুকরোটির পরে যুক্ত হবে। - যদি কোনও পদক্ষেপ বাদশাহকে পরীক্ষা করে দেখায় তবে এটি একটি দিয়ে সংযুক্ত করা হয়
+
। - যদি কোনও পদক্ষেপ বাদশাহকে শান্তিতে ফেলে দেয় তবে তা এতে যুক্ত হয়
#
। - টুকরোটির রঙটি টার্ন নম্বর দ্বারা নির্ধারিত হয় (সাদা এবং কালো বিকল্প ঘুরিয়ে, কালো দিয়ে শুরু করে))
- বোর্ড
(([1-8]|[KQRBNPkqrbnp])*\/){8}
: সারিগুলি ক্রমের ক্রমে টুকরাগুলি তালিকা করে দেওয়া হয়। যদি খালি স্কোয়ার থাকে তবে খালি স্কোয়ারের প্রতিটি রান রানের দৈর্ঘ্য ব্যবহার করে দেওয়া হয়। সারিগুলি ব্যবহার করে পৃথক করা হয়/
একটি বোর্ডের প্রাথমিক অবস্থানটি rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR
যা প্রতিনিধিত্ব করে:
rnbqkbnr
pppppppp
PPPPPPPP
RNBQKBNR
আপনার মুভগুলির একটি তালিকা নেওয়া এবং একটি বোর্ড ফেরত দেওয়া দরকার। আপনি অনুমান করতে পারেন যে আপনার ইনপুটটি বৈধ।
উদাহরণ
-> rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR
e4 -> rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR
e4,c5 -> rnbqkbnr/pp1ppppp/8/2p5/4P3/8/PPPP1PPP/RNBQKBNR
e4,d5,exd5,e5 -> rnbqkbnr/ppp2ppp/8/3Pp3/8/8/PPPP1PPP/RNBQKBNR
e4,d5,exd5,e5,dxe6 -> rnbqkbnr/ppp2ppp/4P3/8/8/8/PPPP1PPP/RNBQKBNR
e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4 -> r1bqk2r/ppp2pp1/4Pn2/2P4p/6nP/8/PPP2PPN/RNBQKB1R
e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4,g3,Nxf2,Qd4,N6g4 -> r1bqk2r/ppp2pp1/4P3/2P4p/3Q2nP/6P1/PPP2n1N/RNB1KB1R
e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4,g3,Nxf2,Qd4,N6g4,Bf4,O-O -> r1bq1rk1/ppp2pp1/4P3/2P4p/3Q1BnP/6P1/PPP2n1N/RN2KB1R
e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4,g3,Nxf2,Qd4,N6g4,Bf4,O-O,Na3,Nxh1,O-O-O,Qg5,exf7+ -> r1b2rk1/ppp2Pp1/8/2P3qp/3Q1BnP/N5P1/PPP4N/2KR1B1n
e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4,g3,Nxf2,Qd4,N6g4,Bf4,O-O,Na3,Nxh1,O-O-O,Qg5,exf7+,Kh7,Bxg5,Rd8,f8=Q -> r1br1Q2/ppp3pk/8/2P3Bp/3Q2nP/N5P1/PPP4N/2KR1B1n
e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4,g3,Nxf2,Qd4,N6g4,Bf4,O-O,Na3,Nxh1,O-O-O,Qg5,exf7+,Kh7,Bxg5,Rd8,f8=Q,Ngf2,c6,Rd7,cxd7,b6,d8=Q,c6,Q4d6,Ba6,Qd8f6 -> r4Q2/p5pk/bppQ1Q2/6Bp/7P/N5P1/PPP2n1N/2KR1B1n
e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4,g3,Nxf2,Qd4,N6g4,Bf4,O-O,Na3,Nxh1,O-O-O,Qg5,exf7+,Kh7,Bxg5,Rd8,f8=Q,Ngf2,c6,Rd7,cxd7,b6,d8=Q,c6,Q4d6,Ba6,Qd8f6,Rb8,Qdd8,b5,Qc5,b4,Qxb8,bxa3,Rd3,Nxd3+,Kd1,axb2,Bh3,b1=Q+,Kd2,Qxa2,Qh6+,gxh6,Qcd6,Qa1,Qbc7+,Kh8,Qdd8# -> 3Q3k/p1Q5/b1p4p/6Bp/7P/3n2PB/2PK3N/q6n
এটি একটি কোড-গল্ফ , সুতরাং আপনার উত্তরগুলি যত তাড়াতাড়ি সংক্ষিপ্ত করুন!
e.p.
।