সময়-পরীক্ষার রেসের জন্য সফটওয়্যার


11

স্থানীয় সময়-পরীক্ষার রেস পরিচালনা করতে আমি একটি টুকরো সফটওয়্যার খুঁজছি। সেখানে প্রায় 50 জন রাইডার থাকবে: খালি কলম এবং কাগজ দিয়ে বরং কঠোর এবং সময় সাশ্রয়ী মূল্যের সাথে রেস ফলাফল তৈরির কাজ করার পক্ষে যথেষ্ট বড় তবে পূর্ণ-রেস চিপস সিস্টেম ব্যবহার করার পক্ষে খুব ছোট।

রাইডাররা এক মিনিটের ব্যবধানে শুরু করতে চলেছে এবং সমাপ্ত লাইনে অপারেটরকে সময় দেওয়ার জন্য একজন লোক উপস্থিত থাকবে। সুতরাং অপারেটরটিকে প্রোগ্রামে রাইডারের সময়টি প্রবেশ করতে হবে। চালকরা লাইনটি অতিক্রম করার সাথে সাথে প্রোগ্রামটি ফ্লাইতে ফলাফলের সারণী তৈরি করতে সক্ষম হওয়া উচিত।

আমি বুঝতে পারি যে এই ধরণের সফ্টওয়্যার তৈরি করা খুব কঠিন নয়, তবে আমি কেবল আশা করছিলাম যে সহজেই উপলভ্য ফ্রিওয়্যার সমাধান রয়েছে যা আমি আমার ইভেন্টের জন্য ব্যবহার করতে পারি। আপনি যদি কখনও কিছু শুনে থাকেন তবে দয়া করে আমাকে জানান।


1 ঘন্টার মধ্যে, আমি একটি অজগর তৈরি করব :)
টিম

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

4
কেন কেবল একটি স্প্রেডশিট ব্যবহার করবেন না?
200_সাকসেস

1
আমি এই প্রশ্নটিকে অফ-টপিক হিসাবে বন্ধ করতে ভোট দিচ্ছি কারণ সাইক্লিং সম্পর্কিত সফটওয়্যারটি বিষয়বহুল। সফ্টওয়্যারসিএস.স্ট্যাকেক্সচেঞ্জ.কম এ জিজ্ঞাসা করুন এবং সাইক্লিংয়ের জন্য ট্যাগটি ব্যবহার করুন।
ক্রিগগি

উত্তর:


7

এটি অজগরটিতে চালিত হবে (কেবল 3.X, 2.7 নয়), প্রোগ্রামিং ভাষা ইনস্টল করার জন্য নিখরচায়। কেবলমাত্র ফাইলের সমাপ্তি হিসাবে নিম্নলিখিতগুলি সংরক্ষণ করুন .py- যেমন timetrials.py। তারপরে IDLE3 খুলুন (মেনু শুরু করুন), এবং ফাইলটি খুলুন ( Ctrl+ O)। অবশেষে, F5এটি শুরু করতে টিপুন ।

import datetime
from operator import itemgetter

def get_int_input(prompt, min_=0, max_=None):
    """Get a valid integer input."""
    while True:
        try:
            i = int(input(prompt))
        except ValueError:
            print("Please enter an integer.")
        else:
            if min_ is not None and i < min_:
                print("Must be at least {0}.".format(min_))
                continue
            elif max_ is not None and i > max_:
                print("Must be at most {0}.".format(max_))
                continue
            return i

def get_time():
    """"Get a time input as a datetime.time object."""
    h = get_int_input("Hours (0-23): ", max_=23)
    m = get_int_input("Minutes (0-59): ", max_=59)
    s = get_int_input("Seconds (0-59): ", max_=59)
    ms = get_int_input("Milliseconds (0-999): ", max_=999)
    return datetime.time(h, m, s, ms*1000)

def get_results(competitors):
    """Get a dict of finishing times for all competitors."""
    results = {}
    for _ in range(competitors):
        while True:
            competitor = get_int_input("Enter competitor number: ", min_=1, max_=competitors+1)
            if competitor not in results:
                results[competitor] = get_time()
                break
            print("Time already entered.")
        print_results(results)
    return results

def print_results(results):
    """Display the race results in a table, fastest first."""
    linet = '┌' + "─" * 12 + '┬' + '─' * 17 + '┐'
    linec = '├' + "─" * 12 + '┼' + '─' * 17 + '┤'
    lineb = '└' + "─" * 12 + '┴' + '─' * 17 + '┘'
    print(linet)
    print("│ Competitor │ Time (H:M:S)    │")
    for n, t in sorted(results.items(), key=itemgetter(1)):
        print(linec)
        print("│ {0:<10d} │ {1!s:<15} │".format(n, t))
    print(lineb)

def race():
    """Handle race times for a user-specified number of competitors."""
    n = get_int_input("Enter number of competitors (2-): ", min_=2)
    results = get_results(n)

if __name__ == "__main__":
    race()

যখন সবাই সমাপ্ত হয়, তখন এটি এর মতো দেখতে পাবেন:

┌──────────────┬───────────────┐  
│  Con Num     │ Time H:M:S    │  
├──────────────┼───────────────┤  
│  1           │ 5:4:3.2       │  
├──────────────┼───────────────┤  
│  2           │ 8:7:6.5       │  
├──────────────┼───────────────┤  
│  3           │ 2:2:2.2       │  
└──────────────┴───────────────┘  

3
সব ভাল এবং ভাল, কিন্তু একটি বাণিজ্যিক প্যাকেজ কেনা কমপক্ষে আপনাকে কোনও বাগ খুঁজে পেলে একেবারে শোক দেওয়ার জন্য কাউকে দেয়।
পিটএইচ

3
আমাকে নির্দ্বিধায় এখানে নির্দ্বিধায়, আমি সবসময় এসইতে থাকার জন্য যথেষ্ট দু: খিত!
টিম

2
দুর্দান্ত চেষ্টা! আপনার এই অতীত কোডরিভিউ.স্ট্যাকেক্সেক্সঞ্জ.কম.কে চালিয়ে যাওয়া বিবেচনা করা উচিত , যদিও - আপনি শৈলীর গাইডের সাথে পুরোপুরি অনুগত নন এবং প্রচুর পুনরাবৃত্তি রয়েছে (যেমন কোনও ফাংশন যোগ করার বিষয়ে বিবেচনা করুন def get_int_input(prompt, min_=None, max_=None):)। এছাড়াও, strftimeআপনি কিছু কাজ বাঁচাতে হবে।
jonrsharpe

@ জোন এখনই এটি করছেন ... পরিবর্তনের কারণে এটি জটিল ... 15 মিনিট;)
টিম

@ জোন আসলে, 13 মিনিট পরে ... সম্পাদনা ;-)
টিম

3

একটি বিকল্প রেসস্প্লিটার । এটি একটি iOS অ্যাপ্লিকেশন, যার মূল্য $ 35। এটিকে চালানোর জন্য আপনার প্রয়োজন উপযুক্ত আইপ্যাড, আইফোন বা আইপড টাচ।

আপনি আগাম একটি সূচনা তালিকা প্রবেশ করতে পারেন। তারপরে দৌড় চলাকালীন, শেষের রেখাটি অতিক্রম করার সাথে সাথে আপনাকে কেবল রাইডার নম্বরটি প্রবেশ করতে হবে এবং এটি তাদের সময় রেকর্ড করবে। তারপরে আপনি ফলাফলগুলি ওয়েবসাইটে প্রকাশ করতে পারেন এবং এক্সেল ইত্যাদিতে রফতানি করতে পারেন

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


এটি দেখতে আমার ঠিক যেমন প্রয়োজন! ধন্যবাদ!
ক্রাকোভজাক

1

আমরা লিওটো দ্বারা তৈরি অ্যান্ড্রয়েড ফোনগুলির জন্য একটি অ্যাপ্লিকেশন ব্যবহার করেছি। এটি দুর্দান্ত, শিখতে / ব্যবহার করা সহজ এবং সস্তা - কেবলমাত্র $ 1.11 ছিল। মূলত, যখন প্রতিটি রাইডার শুরু নম্বর দিয়ে চলে যায়, আপনি তাদের প্রত্যাবর্তনের সময় তাদের সংশ্লিষ্ট নম্বরটি ট্যাপ করুন এবং সামগ্রিক অতিবাহিত সময়ের তুলনায় তাদের সময়ের গণনা সম্পূর্ণ হবে। স্ন্যাপ!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.