কোপস পয়েন্টগুলির সাথে চপস্টিকগুলি পরিবর্তন হয়েছে


13

প্রাথমিক নিয়ম (খনি থেকে পৃথক)

গল্প

এটি 4579 বছর, মানুষের এখন প্রতিটি হাতে 1001 আঙ্গুলের সাথে 2 হাত রয়েছে। চপস্টিকস পয়েন্ট অফ অফ হয়ে গেছে। এবং @ ডেনিসের কাছে @ মার্টিনের আরও প্রতিনিধি রয়েছে ... হাতে আঁকা লাল বৃত্তগুলি এখন হ্রাস পেয়েছে ... জন স্কিটি প্রতি এসই সাইটে 2 ট্রিলিয়ন রেপ মেরেছে ... হ্যাঁ ভীতু আমি জানি

চপস্টিকস হ্যান্ড গেম যা সমাধান হয়ে গেছে। সুতরাং এটি প্রায়শই পেতে আমি এটিকে রূপান্তরিত করে তৈরি করেছি। আমি আঙ্গুলের পরিমাণ বাড়িয়েছি।

খেলার নিয়ম

এটি যেভাবে খেলেছে

প্রত্যেকে 2 হাত দিয়ে শুরু করে। প্রতিটি হাতে 1001 আঙ্গুল রয়েছে। সঙ্গে 1 (এক) আঙুল আপ প্রতিটি হাত শুরু প্রতিটি হাত। আপনার পালা চলাকালীন আপনি অন্য খেলোয়াড়দের হাত "হিট" করতে পারেন। আঘাত করতে আপনি আঘাত করতে আপনার 1 হাত এবং আঘাতের জন্য তাদের 1 টি চয়ন করুন। যে হাতটি এখন আঘাত করা হয়েছিল তার হাতে প্রথমে যে পরিমাণ আঙুল ছিল এবং যে হাতটি আপনি আঘাত করেছিলেন তার হাতে আপনি যে পরিমাণ আঙ্গুল রেখেছিলেন has

গো EX

P1: 1,1 P2: 1,1P1[0]হিট P2[1]। এখন আঙ্গুল হয় P1:1,1 P2:1,2। এখন P2[1]হিট p1[0]। আঙ্গুলগুলি এখন পি 1: 3,1পি 2 1,2

যদি এক হাত 1001 টি আঙুল উপরে বা তার বেশি হয় তবে সেই হাতটি বাইরে। তারপরে প্লেয়ার যিনি হাত পেলেন (তাদের পালা) তারা "বিভক্ত" হতে পারেন। বিভক্ত হ'ল যখন আপনি যে হাতটি রেখেছেন এবং আঙ্গুলের পরিমাণ অর্ধেক করে রাখবেন (বৃত্তাকার) এবং সেই আঙ্গুলগুলি অন্য হাতে ফিরিয়ে এনে দেয়।

গো EX

পি 1: 1000,2পি 2 7,7P2[0]হিট P1[0]। স্কোর পি 1: 0,2পি 2 1,1P1[1]তার পালা জন্য বিভক্ত হয় এবং স্কোর P1: 1,1এবং P2 হয় 7,7

যখন খেলোয়াড়ের দুই হাত বাইরে যায় তখন খেলাটি শেষ হয়। পয়েন্টগুলি বিজয়ীর যে পরিমাণ আঙুল রয়েছে তার দ্বারা স্কোর করা হয়। আরও পয়েন্ট = আরও ভাল। হেরে কোন লাভ নেই।

এখানে অন্যান্য নিয়ম ব্যবহার করা হয় তবে এগুলি এখানে ব্যবহার করা হয়।

প্রত্যেকে সবাই খেলেন (রাউন্ড রবিন)

যুদ্ধের

আপনি জয় প্রতিটি রাউন্ড থেকে আপনার পয়েন্ট মোট। তারপরে গড় সবার পয়েন্ট আপ করুন। আপনার সামগ্রিক গড় পয়েন্ট দ্বারা ভাগ করুন এবং আপনার চূড়ান্ত স্কোর পান। বেশিরভাগ পয়েন্ট জিতেছে।

আসল বিধি

মান ফাঁক

গেমটি সমাধান করার চেষ্টা করবেন না দয়া করে । আমি আসলে এটি চালাতে সক্ষম হতে হবে: পি

বটটি দ্রুত চালাতে পারে তা নিশ্চিত করুন। রাউন্ডগুলির বিচারের দৈর্ঘ্যের সাথে এটি কিছুটা সময় নেবে

আপনার প্রোগ্রামে প্রয়োজনীয় সমস্ত লাইব্রেরি অবশ্যই ডিফল্ট পাইথন লাইব্রেরিতে থাকতে হবে। আপনার যেগুলি আমদানি করা প্রয়োজন তার তালিকাও দিন। আমদানি কেবলমাত্র মূল আমদানি হবে (গণিতের জন্য import math:)

উত্তরগুলি পাইথন ৩.x এ কাজ করতে হবে

ক্রীড়াশিক্ষক

আপনার বট একটি playফাংশন সহ নিজস্ব পাইথন 3 ফাইল হবে।

playপ্রতিটি দুটি সংখ্যার দুটি তালিকা পাস করা হবে। এই সংখ্যাটি প্রতিটি হাতে কত আঙ্গুলের উপরে রয়েছে তা নির্দেশ করে। প্রথম তালিকাটি আপনার নিজের হাত।

আপনি যদি অন্য খেলোয়াড়ের হাতে আঘাত করা চয়ন করেন তবে দুটি বিটের একটি তালিকা ফিরিয়ে দিন। প্রথম বিটটি আপনি যে হাতটি আঘাত করতে ব্যবহার করছেন তা সূচক ( 0প্রথমটির 1জন্য, শেষের জন্য), এবং দ্বিতীয় বিটটি যে হাতটি আপনি প্রতিপক্ষকে আঘাত করছেন তার সূচক।

যদি আপনি বিভাজন চয়ন করেন, তবে অন্য কোনও সত্য মান দিন return

Tada!

নিয়ামক এখানে পাওয়া যাবে । প্রতিটি বটকে তার নিজের ফাইলে সংরক্ষণ করুন এবং প্রতিটি বটের ফাইলের নাম (ভিতরে .py) তালিকাভুক্ত করুন botnames

চূড়ান্ত দ্রষ্টব্য:

আপনি এবং অন্যান্য বট প্রথমে ফিরে যাবেন। গেমটি যদি এক লক্ষ (এক লক্ষ) রাউন্ডে শেষ না হয় তবে গেমটি সমাপ্ত হবে এবং বট জিতবে না।

নিয়ামক চিরতরে পদক্ষেপ নেওয়ার বিরুদ্ধে সুরক্ষিত নয়, তবে অপ্রয়োজনীয় ওভারহেড দৃ strongly়ভাবে নষ্ট হবে।



"স্ট্যান্ডার্ড KOTH নিয়ম" একটি লিঙ্ক হতে পারে? এবং সম্ভবত "স্ট্যান্ডার্ড লুফোলস"।
ট্রিকোপলাক্স

My handler is very simple, your bot must do it's logic then adjust the the finger scores as needed, remember!কি, সুতরাং আমরা কোথের জন্য গণনাগুলি করছি?
হাইপারনিউটারিনো

@ হাইপারনিউট্রিনো অপস ফিক্সিং।
ক্রিস্টোফার

4
ডেনিসের এখন মার্টিনের চেয়ে বেশি প্রতিনিধি রয়েছে । ওহে আল্লাহ, এই অতিরিক্ত 996 টি আঙ্গুলগুলি কোথা থেকে এসেছে ?!
23 শে

উত্তর:


6

CodingAndAlgorithms

এই উত্তরটি এখন পর্যন্ত অন্যদের থেকে পৃথকভাবে কোডিং এবং অ্যালগরিদম ব্যবহার করে! তথ্যসূত্র: ইমগুর (এর আগে পোস্ট করা সমস্ত উত্তরকেও মারধর করে)

def play(A, B):
    if sum(A) == 1:
        return [A.index(1), B.index(max(B))]
    elif max(A) + max(B) > 1000:
        return [A.index(max(A)), B.index(max(B))]
    elif 0 in A:
        return 1
    elif 0 in B:
        return [A.index(min(A)), 1-B.index(0)]
    else:
        return [A.index(min(A)), B.index(min(B))]

আমি সেই রেফারেন্স পেয়েছি এক্সডি
ক্রিস্টোফার

এই মাত্র জিতেছে। এটি কখনও হারেনি।
ক্রিস্টোফার

অভিনন্দন! আমার ধারণা আমি দ্বিতীয় স্থানে বসতে হবে। আপনার কোডিং এবং অ্যালগরিদমগুলি আমার চেয়ে শক্তিশালী ছিল
মান কালি

3

CautionBot

def play(s,o):
 if max(s)+max(o)>1000 and (all(s) or max(s)+min(o)<1001):
  return [s.index(max(s)),o.index(max(o))]
 else:
  return [s.index(min(s)),o.index(min(filter(bool,o)))]if all(s) else 'split'

সাবধানবাট খুব বেশি সমস্যা সৃষ্টি করতে চায় না, সুতরাং প্রতিপক্ষের হাতের ছোট হাতটি যদি তার উভয় হাত থাকে এবং অন্যথায় বিভক্ত হয় তবে তা আঘাত করে। তবে, সাবধানবাট কোনও বোকা নয়, সুতরাং যদি তাৎক্ষণিকভাবে পরবর্তী মোড় না হারিয়ে কোনও বিরোধীদের হাত তুলতে পারে তবে এটি তার স্বাভাবিক পদক্ষেপের পরিবর্তে এটি করবে।


আনুষ্ঠানিকভাবে এটি
ক্রিস্টোফার

শান্ত! আমরা কীভাবে জিনিসগুলি এখান থেকে চলে তা দেখব কারণ কেউ যখন আরও ভাল কৌশল বিকাশ করে তখন আমি অবাক হব না। আমি ভ্যানিলা চপস্টিক কৌশল হিসাবে বুঝতে পেরেছি তা প্রয়োগ করেছিলাম (একটি কাপুরুষ হতে হবে এবং প্রায়শই মারা যাওয়া এড়ানোর জন্য বিভক্ত হয়ে পড়ুন) যাতে নতুন নিয়মকে সবচেয়ে উপযুক্ত করে দেওয়া হয় (কাপুরুষ হতে হবে এবং নিহত হওয়া এড়ানোর জন্য কম আঘাত করুন, যেহেতু আপনি বিভক্ত / মার্জ হওয়ার সময় আপনার উভয় হাত অবৈধ) লওল
মান কালি

3

ইকুয়ালাইজার

def play(s, o):
    if not all(s):
        return 1
    else:
        return [s.index(max(s)), o.index(min(filter(bool, o)))]

ইক্যুয়ালাইজার যদি কোনও হাত মিস করে তবে এটি বিভক্ত হবে। অন্যথায়, এটি তার নিজের বৃহত্তম হাত দিয়ে বিরোধীদের সবচেয়ে ছোট হাতকে আঘাত করে।


এই পরিবর্তিত নিয়ম অনুসারে, এএফএইকে কেবল এক হাত বাইরে থাকলে আপনি বিভক্ত হতে পারেন।
মানটি কালি করুন

হ্যাঁ, আমি এটি ঠিক করব।
LyricLy

"যদি ইক্যুয়ালাইজারের কোনও হাত না থাকে ..." ভাল বলতে চাইছি এর যদি কোনও হাত না থাকে তবে এটি ইতিমধ্যে কি হারিয়েছে? তবে এটি কেবল নিটপিকিং, ক্ষতিপূরণ করতে আমার +1 নিন
মান ইঙ্ক

3

আক্রমণকারী

def play(s, o):
    return [s.index(max(s)),o.index(max(o))]if all(s)else 1

আর একটি স্টার বট, আগ্রাসী তার উভয় হাত খালি না থাকলে প্রতিপক্ষের হাতের বৃহতটি নিজের হাতের সাথে আঘাত করবে; অন্যথায়, এটি বিভক্ত হয়।


2

RandomBot

import random

def play(s, o):
    return [random.randint(0,1)for i in'  ']if all(s)else 1

কেবল জিনিস শুরু করার জন্য, এখানে একটি বট দেওয়া যা এলোমেলো আঘাত করে যদি এর হাত দু'টি খালি না থাকে; অন্যথায়, বিভক্ত।

গল্ফড কারণ নেই: 3


আমি এটি ঠিক করছিলাম
ক্রিস্টোফার

ক্রিস্টোফার দুঃখিত, আপনার মন্তব্যটি দেখেনি। --- আপনি একবার ঠিক করে দিলে আমি এটিকে মুছে
ফেলব -----

@ ক্রিস্টোফার নোট: আমি এটিকে বৈধ জমা দেওয়ার জন্য সম্পাদনা করেছি। আমি আরও একটি সমাধান যোগ করব; কন্ট্রোলার সঠিকভাবে কাজ না করে থাকলে আমাকে বলুন :)
হাইপারনিউটারিনো

তাদের চেষ্টা করে খুব ভালো
ক্রিস্টোফার 21

ক্রিস্টোফার কি নিয়ামক সঠিকভাবে কাজ করে?
হাইপারনিউটারিনো

2

ত্রুটি

হ্যাঁ, এটি বটটির নাম।

def play(s, o):
    if max(s)+max(o)>1000:
        return [s.index(max(s)),o.index(max(o))]
    if 0 in s:return ''
    return [s.index(max(s)),o.index(min(o))]

অন্যান্য বটগুলির সাথে পরীক্ষা করে আমি এটিতে পৌঁছেছি। তবে এটি আমার অনুকরণে ধারাবাহিকভাবে দ্বিতীয়-শেষ। সুতরাং আমি শেষ পর্যন্ত অন্য বট করা হবে।

সম্পাদনা: আমি এমন কোনও বট লিখতে যাচ্ছি না যা সাবধানবাটকে পরাজিত করে এবং আমার অতিরিক্ত পরীক্ষায় মনে হয় যে এটি দ্বিতীয় সবচেয়ে খারাপ, দ্বিতীয়টি নয়।


1

ম্যারাথন

"হাইপার নিউট্রিনো" দ্বারা সরবরাহ করা আগ্রাসীর কোডটি আমি খুব সামান্যভাবে দু'পক্ষের হাতের সাথে দুটি হাতকে আঘাত করার জন্য টুইট করেছি। এটি অবশ্যই একটি অত্যন্ত নির্বোধ কৌশল কিন্তু আমি কোনও চার্টের শীর্ষে থাকা সরিয়ে রাখতে পারি না! (যদিও সেই চার্টটি লোকসান হবে)

আমি নিশ্চিত নই যে এই কোডটি ত্রুটি ছাড়াই চলবে কিনা কারণ আমি কর্মে থাকার কারণে এটি পরীক্ষা করতে পারিনি was তবে এটি নির্দোষভাবে চালানো উচিত run

def play(s, o):
     return [s.index(min(s)),o.index(min(o))]if all(s)else 1

প্রথম উত্তর! আপনি একটি দুর্দান্ত প্রশ্ন চয়ন করেছেন: পি (কোনও পক্ষপাত নেই)
ক্রিস্টোফার

ধন্যবাদ :) আমি বেশ নার্ভাস ছিলাম কারণ আমার মতো কারও কোডের কোড টুইট করার অনুমতি দেওয়া হয়েছে কিনা তা আমি নিশ্চিত নই। আমি ধরে নিচ্ছি এটি যতক্ষণ আপনি এটিকে সুস্পষ্ট করে তুলেছেন is এবং আমি এমন একটি তৈরি করার চেষ্টা করছিলাম যা প্রতিপক্ষের বিরুদ্ধে সবচেয়ে বড় হাতের খেলতে পারে তবে হাইপার নিউট্রিনো আমাকে ঠিক তার কাছে পরাজিত করেছিল! হা হা
জর্ডান

হ্যাঁ। এই এসই তে টুইঙ্কিং কোডটি প্রায়শই ব্যবহৃত হয়: পি
ক্রিস্টোফার

শীতল উত্তর! একটি জিনিস যা নিয়ে আমি চিন্তিত (এখনই এটি পরীক্ষা করতে পারছি না) তা হ'ল আমি জানি না যে আপনি যদি খালি হাতে আঘাত করার চেষ্টা করেন তবে নিয়ন্ত্রণকারী কীভাবে প্রতিক্রিয়া জানাবে, বা কীভাবে নিয়মগুলিতে এই কারণগুলি জন্মাবে।
মূল্য কালি

1
এটি ইকুয়ালাইজারের সাথে খুব মিল তবে ইক্যুয়ালাইজার উপস্থিত থাকলে প্রতিপক্ষের খালি হাতে এটি আঘাত না করে তা নিশ্চিত করে নিন। @ লিরিকলি
হাইপারনিউটারিনো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.