To moje 17 urodziny i jesteś zaproszony na moje przyjęcie!
I jak zawsze na przyjęciach będzie ciasto.
Jedno ciasto ...
Potrzebujesz jej jak najwięcej.
Ponieważ jest to uczciwa impreza, każdy z nas powie, ile chce mojego ciasta, i osoba, która powiedziała, że najmniejszą ilość, dostanie. Następnie wszyscy inni będą powtarzać proces, aż ciasto zniknie.
Wyzwanie
- Biorąc pod uwagę wejście za pomocą argumentów wiersza poleceń w postaci
total-degrees degrees-left total-people people-left
, wyjście na standardowe wyjścieinteger-bid-in-degrees
. - Jeśli twoja oferta była najniższa, otrzymasz taką ilość ciasta i jesteś poza rundą.
- Jeśli Twoja oferta nie była najniższa, Twój bot może licytować pozostałe ciasto.
- W przypadku, gdy najniższe oferty są takie same, osoba usunięta zostanie wybrana losowo.
- Pod koniec rundy, gdy wszystkie ciasto zniknie lub nie będzie już nikogo, kto mógłby licytować, wygrywa osoba z największą ilością ciast!
- W przypadku, gdy na końcu rundy dwie osoby mają największy plasterek o tej samej wielkości, zwycięzca jest wybierany losowo z wpisów losowania.
Rozgrywka
- Odbędzie się 17 rund, a zwycięzcą zostanie zwycięzca z największą liczbą wygranych.
- W przypadku remisu rundy będą rozgrywane do momentu wyłonienia wyraźnego zwycięzcy.
- Każdego dnia będę aktualizować bieżące wyniki, aby ludzie mogli ulepszyć swój wpis.
Uległość
Powinieneś napisać swój wpis jako
Nazwa bota, język
Insert Code Here
Wyjaśnienie / Losowe rzeczy tutaj
Jeśli twój wpis nie jest sformatowany w ten sposób, kontroler NIE będzie mógł go uruchomić. Jeśli stwierdzę, że tak się stało z twoim wpisem, powiadomię cię w komentarzu i / lub edytuję odpowiedź w odpowiednim formacie.
Twój wpis i przechowywanie plików
- Twój bot może przechowywać pliki w
./data/
katalogu i nigdzie indziej.- Nie wymagane, ale przechowuj pliki jako
botname*
- Nie możesz zapisywać plików w tym formacie, jeśli
botname
nie jest to nazwa twojego wpisu. - Oznacza to, że możesz zastąpić inne znalezione pliki, które nie pojawiają się w tym formacie. Nie powinieneś robić tego celowo, proszę, bądź sportowy.
- Twój bot nie może zakładać, że wymagane pliki są obecne, ale może założyć
./data/
, że istnieje. - To dlatego, że od czasu do czasu przetrzeć
./data
katalogu, to będzie to zrobić, gdy rund zacząć. (Ale nie między nimi)
- Nie wymagane, ale przechowuj pliki jako
- Twój bot może w ogóle nie usuwać plików
- Twój bot może tylko czytać pliki w
./data/
katalogu- Oznacza to, że możesz przeglądać inne pliki wpisów
Wyniki:
Meek wygrał konkurs! Dobra robota @ Cabbie407
A teraz kilka losowych statystyk:
Lista pozycji, w których pojawił się każdy bot: (Dobra robota dla każdego bota pojawiającego się na tej liście, przynajmniej raz znalazłeś się w pierwszej piątce!)
Cichy, Cichy, Eidetyczny, Eidetyczny, Cichy, Eidetyczny, Eidetyczny, Cichy, Cichy, Cichy, Pyskaty, Cichy, Givemethecake, Givemethecake, Givemethecake, Meek, Eidetic
Eidetic, Eidetic, Meek, AlCakeSurfer, Eidetic, AlCakeSurfer, Meek, MyFairPlusAThird, Eidetic, Eidetic, Eidetic, Eidetic, MyFairPlusAThird, MyFairPlusAThird, Meek, MyFairPlusAThird, AlCakeSurfer
Reallythecake, AlCakeSurfer, AlCakeSurfer, Meek, AlCakeSurfer, Meek, AlCakeSurfer, AlCakeSurfer, Reallythecake, AlCakeSurfer, Meek, MyFairPlusAThird, Eidetic, Eidetic, Eidetic, Eidetic, Reallythecake
AlCakeSurfer, Reallythecake, MyFairPlusAThird, MyFairPlusAThird, MyFairPlusAThird, MyFairPlusAThird, MyFairPlusAThird, Eidetic, AlCakeSurfer, MyFairPlusAThird, MyFairPlusAThird, Relinquisher, Myślisz
rachunek, MyFairPlusAThird, rachunek, rachunek, rachunek, rachunek, Relinquisher, Relinquisher, MyFairPlusAThird, Relinquisher, rachunek, Reallythecake, rachunek, ALittleOffTheTop, ALittleOffTheTop, rachunek, rachunek
Pełny plik dziennika komety podczas działania można znaleźć tutaj . Przepraszamy za zmianę formatu w trakcie.
Nie będę ponownie organizować konkursu, jeśli chcesz opublikować więcej wpisów, możesz to zrobić, kontroler można znaleźć na moim repozytorium github dla tego konkursu .
źródło
{u'StatelyImitator': 719, u'Dieter': 4, u'Reallythecake': 0, u'Greedy': 0, u'Meek': 2, u'FlamingChainsaw': 0, u'Slim': 0, u'CharityBot': 0, u'Gentleman': 297, u'ALittleOffTheTop': 256, u'EatThe\u03c0': 0, u'Pig': 0, u'CakeEater': 330, u'BobBarker': 0, u'FloorBot': 5, u'Fatbot5000': 296, u'Moses': 360, u'Magician': 720, u'Hungry': 257, u'Imitator': 354} [u'Magician']
. Jeśli twój bot ma wynik 0, robi coś złego.Odpowiedzi:
Cicho, awk
Widziałem to raz w symulacji.
źródło
Magik, Java
Liczba 720 jest magiczna.
To
jestmiał przetestować kontroler i jestniepoważna pozycja.źródło
Slim, Python 2
Ten bot jest na diecie.
źródło
SadBot :(, C ++
Dawniej FairBot
FairBot chce tylko równej części :(
Chce równomiernie podzielić ciasto między wszystkich uczestników.
(W pełni oczekuje, że inne boty go zdzierają, ponieważ wie, że są wredne)
(Naprawdę. Jest samotny, chce tylko, żeby inne boty go polubiły)
(Właśnie wyszedł ze złego związku i przechodzi naprawdę trudną sytuację, więc jeśli mógłbyś po prostu poklepać go po plecach i uśmiechnąć się, aby poczuł się lepiej, to naprawdę wiele by znaczyło).
EDIT zmienił program, aby pobierał dane z argv / c zamiast stdin (uczciwy bot wciąż jest smutny ... Chce zmienić nazwę na sadbot (dlatego trochę chce ciasta))
źródło
Halver, Ruby
Skrupulatnie, nienagannie uczciwy. Połowa ciasta dla mnie, połowa ciasta dla wszystkich innych.
źródło
CharityBot, Python 2
Dodaje kolejne ciasto do miksu!
(Kontroler zobaczy to jako prośbę o 0 ciastek, tak naprawdę nie zwiększy rozmiaru ciasta)
źródło
Okazały naśladowca, Ruby
Wariant naśladowcy (jeśli wolisz tylko jeden wpis na gracza, to zastępuje ten). Utrzymuje dokładny ślad największego już wykonanego wycinka i zawsze licytuje wystarczająco dużo, aby pokonać ten wycinek. Nigdy też nie będzie licytować niżej niż jego uczciwa część pozostałych. Zakłada, że katalog „./data” do odczytu / zapisu już istnieje; pliki mogą już tam być lub nie.
źródło
Dieter, Java
Nie chce licytować za dużo ciasta, więc wybiera mały, ale gwarantowany losowy plasterek.
źródło
Flaming Chainsaw, Java
Czy kiedykolwiek próbowałeś zorganizować konkurs cięcia ciasta piłą łańcuchową? Cóż, teraz masz. To raczej destrukcyjne.
źródło
Dżentelmen, Java
Czeka na ludzi, którzy jedzą uczciwie lub mniej, zanim zje jakiekolwiek ciasto. Aby zapobiec chciwemu zdobyciu dodatkowego ciasta, bierze tak dużą porcję, jak to możliwe.
źródło
Bob Barker, Java
Prawdopodobnie zostanie to później zastąpione bardziej przemyślanym rozwiązaniem, ale jestem ciekawy, czy to zadziała. Ma to na celu złapanie botów, które starają się osiągnąć maksimum i wykonać zmodyfikowaną strategię Price is Right, aby ukraść ich odpowiedź. Może to prowadzić do eskalacji wraz ze wzrostem odejmowania liczb całkowitych, co byłoby fajne.
EDYCJA: Rozpoczęcie eskalacji, kontr-posting przeciwko FloorBot
źródło
args[1]
Przed odjęciem musisz też przekonwertować na int.Eidetic, Python 2
Uruchomiłem tego bota w kontrolerze kilka razy, aby go trochę wytrenować, pamięta oferty wymagane do wygrania każdej rundy, a następnie po szkoleniu wychodzi do prawdziwego świata i głosuje z resztą.
źródło
AlCakeBot, Python
To mój pierwszy post na PCG; Mam nadzieję, że zadziała to zgodnie z przeznaczeniem…
Kocham ciasto. Nie ważne jaki rodzaj. Moi koledzy wiedzą. Podobnie mój bot. Jeśli całe ciasto nadal tam będzie, będzie licytować za prawie połowę, mając nadzieję, że natychmiast zdobędzie największy kawałek. Jeśli nie, powinien licytować o połowę między pozostałym ciastem a pozostałym ciastem, używając sinusoidy jako funkcji ważenia (
½ + sin² (fraction gone) / 2
). Powodem jest to, że na początku gry powinna istnieć szansa na większy (ale ułamkowo mniejszy) kawałek i nie ma sensu starać się być dżentelmenem w późnej fazie gry.Ponieważ nie interesuję się programowaniem, docenię każdy wskazany błąd. Teraz zjemy trochę ciasta = D
źródło
Saucy, Ruby
Saucy jest gotów przyjąć nieco mniej niż połowę pozostałego ciasta, o ile jest to więcej niż ktokolwiek inny dostał lub prawdopodobnie dostanie (na podstawie tajnego sosu).
źródło
CoffeeJunkie, Coffeescript
Czym dokładnie jest ciasto bez dobrej filiżanki kawy?
CoffeeJunkie woli kawę niż kawałek ciasta, ale mimo to chce spróbować. Zawsze będzie uczciwy wobec innych uczestników i spróbuje przypomnieć sobie, co stało się z ostatnim ciastem. Jednak nadmierne spożywanie kawy osłabiło jego wspomnienia ...
źródło
npm install -g coffee-script; coffee CoffeeJunkie.coffee
Okazały Sabotaż, Ruby
Ten bot zdecydował, że aby wyeliminować rywalizację, nie powinno być sportu.
Jest to klon programu Stately Imitator, z tym wyjątkiem, że ten pomieszał pliki uporczywości Stately Imitator (ponieważ nie są one poprzedzone nazwą bota), aby podejmował złe decyzje i był wybierany jako ostatni.
źródło
Trader, R.
Śledzi ewolucję pozostawionych stopni w stosunku do liczby pozostawionych osób, a gdy stosunek ten zaczyna się obniżać, prosi o dość uczciwy kawałek, w przeciwnym razie prosi o całe pozostałe ciasto. Wywołano przy użyciu
Rscript trader.r total-degrees degrees-left total-people people-left
.źródło
IWMBAICBIWT, Python
IWMBAICBIWT (To były moje urodziny i płakałem, bo chciałem) zakłada, że istnieje związek między pozostałymi stopniami naukowymi a liczbą pozostałych osób. Miejmy nadzieję, że to zadziała!
Powinien działać we wszystkich pytonach.
Edytować:
Przechowywanie
sys.argv
danych wejściowych było trochę marnotrawstwem ...źródło
degreesleft = int(inputs[2]); peopleleft = int(inputs[4])
i licytuje cały czas 1gość, Python 2
źródło
rachunek, Python 2
Fairy bet.
źródło
AlCakeSurfer, Python
Ponieważ AlCakeBot zrobił to źle (i spodziewam się, że będzie gorzej w zawodach), oto mój drugi wpis. Nazwałem go Surfer, ponieważ ma on bardzo przyjemną funkcję falowania w górę i w dół, która sprawia, że czuje się jak surfer.
Zasadniczo licytuje według
cos² (x * pi)
, gdziex
jest ułamek ujętego ciasta. Ta fala surfingu jest modyfikowana za pomocą funkcji ważenia, która powoduje, że zaczyna od mniej niż sprawiedliwego udziału mniej niż połowy ciasta, zmniejsza swoje oferty do nieco powyżej uczciwego udziału około, gdy połowa ciasta zniknie, a następnie przyspiesza z powrotem do licytacji całego ciasta później. Nigdy nie będzie licytował mniej niż sprawiedliwego udziału w pozostałym cieście plus 5% (czyli procent całego ciasta).Zauważ, że chociaż mogą być braćmi, jeśli dostanie znacznie większy kawałek niż AlCakeBot, ten drugi nawet nie dostanie okruchów. Dzielą się czekoladą lub ciastkami, ale nie ciastem!
źródło
Hungry, Java
Zawsze chce mieć sprawiedliwy udział w pozostałym cieście.
źródło
Imitator, Ruby
Celem jest zdobycie więcej ciasta niż ktokolwiek inny, a nie maksymalizacja tortu. Tak więc ten bot nie zadowoli się niczym innym, niż poprzednimi botami. (Ta wersja używa heurystyki do tego sprawdzania, właśnie zauważyłem, że faktycznie możemy zapisać stan, więc prawdopodobnie opublikuję później stanowy wariant).
źródło
Naprawdę ciasto, Bash
A oto zdjęcie prawdziwego ciasta.
źródło
Cake Eater, Java
Zjada ciasto. O to chodzi.
źródło
Relinquisher, Java
Podstawowy wariant mojego drugiego bota, Niecierpliwy. Ten na początku stara się wziąć całość, ale w miarę jak coraz więcej gości otrzymuje swój udział, jego pragnienie, aby uzyskać jak najwięcej, powoli maleje. Nie przepadam za tym; chcę tylko zobaczyć, jak dobrze sobie radzi.
źródło
ALittleExtra, sh
Chcę tylko trochę więcej, staje się mniej chciwy, gdy ciasto się kurczy
źródło
MyFairPlusAThird, sh
źródło
EatTheπ, Node.js
Naprawdę lubi π i myśli, że to ciasto
znaczyjest π.źródło
var totalπ=process.argv[2], πLeft=process.argv[3], totalPeople=process.argv[4], peopleLeft=process.argv[5];
aby działał ze sterownikiem. Otrzymał 97 z 3600 w dziedzinie 41 botów.A Little Off The Top, Python 2
Ponieważ „idealny” algorytm stara się równomiernie rozdzielić ciasto między botami, weźmiemy tylko kawałek mniej. Domaga się pełnego, sprawiedliwego udziału w całym cieście, nawet w kolejnych rundach, ale przekrzywiają tę liczbę w górę, ponieważ zależy to od liczby osób, które pozostały.
Dawno nie programowałem w Pythonie , więc daj mi znać, jeśli mój kod jest uszkodzony ...
źródło