Das Erstellen einer Bowlingbahn-Auszahlungstabelle ist mühsam. Okay, lass es __PC machen __.
Eine unerfahrene Person, die mit Informationssystemen nicht vertraut ist, versuchte zum ersten Mal, ein Tool zu implementieren. Ich hoffe, dass dies als Beispiel für die Verbesserung der Arbeitseffizienz hilfreich sein wird, die selbst Anfänger erreichen können.
Bei Wettkämpfen im Bowling ist ein Tisch erforderlich, um die Spieler auf die Bahnen zu verteilen. In dieser Auszahlungstabelle heißt es: "Ein Spieler wird nicht mehr als einmal an dieselbe Box ausgezahlt" und "zwei Personen werden nicht mehr als einmal gleichzeitig an dieselbe Box ausgezahlt (kurz:" Ist es dieselbe Box wie Sie? "). "Tritt nicht auf)" ist erforderlich. Ich glaube nicht, dass jemand außerhalb des Bowlingbereichs es gut weiß, also können Sie es überspringen. Wie auch immer, es ist ziemlich schwierig, dies manuell zu erstellen + überprüfen Sie es mit Ihren Augen (es dauert mehr als eine Stunde, bis Menschen es tun), also lassen Sie es uns mit einem Werkzeug automatisieren. Ich habe das fertige Produkt am Ende der Seite platziert. Wenn Sie möchten, gibt es eine Nachfrage?
① Weisen Sie Spielern mit Zufallszahlen Bahnen zu ② Suchen Sie ein Teil, das die Bedingungen nicht erfüllt ③ Mische nur den Problembereich ④ Wiederholen Sie ②③, bis der Problembereich 0 wird ⑤ Erforderliche Informationen ausgeben
Vorerst habe ich manuell eine Spurauszahlungstabelle mit Zufallszahlen in Excel erstellt und nur die Erkennung von Problembereichen automatisiert. Da ich von einer Situation ausgegangen bin, in der ich die Excel-Funktionen nicht einmal verstanden habe, habe ich einen Überprüfungsmechanismus implementiert, während ich auf verschiedene Weise gegoogelt habe. Ich bin dankbar, dass es im Internet viele Excel-bezogene Informationen gibt. Problem
Es ist ein Ärger, also wollte ich mit der Automatisierung weiter gehen. Okay, lass es uns mit der Programmierung machen. Sie können jedoch keine Programmiersprache verwenden. So lernen Sie Python3 [^ 1]. Python ist visuell wahnsinnig leicht zu verstehen, daher empfehle ich es als Ihre Muttersprache. Ich habe auch Excel VBA (sogenanntes "Makro") in Betracht gezogen, aber aufgehört, weil es umständlich und nicht vielseitig zu sein scheint. Die Implementierung wurde gerade durchgeführt, war aber ziemlich schwierig (in AtCoder scheint es, als würden die Implementierungen von etwa Diff800 miteinander verbunden). Am Ende waren es ungefähr 400 Zeilen. Mir wurde auch klar, wie schwierig es ist, den Eckkasten zu zerquetschen. Problem
Von hier aus wollten wir die Eingabe- / Ausgabemethode verbessern. Dieses Mal habe ich das openpyxl-Modul verwendet, das Excel-Dateien in Python verarbeiten kann. Ein Modul ist wie eine Toolbox, und durch das Importieren wird die Funktionalität von Python erweitert. Python ist besonders reich an Modulen, daher bin ich sehr dankbar. Mit diesem Modul können Ein- und Ausgaben in Excel erfolgen. openpyxl ist besonders nützlich, daher möchte ich es auch in Zukunft positiv nutzen. Problem ・ Dieses Tool kann nicht für Personen freigegeben werden, auf denen Python nicht installiert ist.
Wir wollten es weiterentwickeln und zu einer GUI-Anwendung machen, die Zeichen in den Frame eingibt und die Lane-Dividend-Tabelle als Excel-Datei ausgibt. Eigentlich habe ich Pythons tkinter-Modul verwendet (nicht Zunder). Ich hatte keine Vorkenntnisse, also fühlte ich mich nur gegoogelt, aber ich habe viel gelernt. Es wurde als GUI-Anwendung abgeschlossen, indem der geschriebene Python-Quellcode mit pyinstaller in eine exe-Datei konvertiert wurde. Jetzt können auch Leute, die Python nicht verwenden können, das Tool verwenden. ↑ Wenn Sie so eintreten ... ↑ Es wird wie folgt als Excel-Datei ausgegeben.
Die Namensliste stammt aus der PBA-Preisliste 2019. Es ist ein traumhaftes Turnier.
Die ausgefüllte Anwendung kann von hier (Dropbox) heruntergeladen werden. Bitte spielen Sie damit.
Vielen Dank für das Lesen bis zum Ende. Eigentlich habe ich darüber nachgedacht, dieses Tool in eine WEB-Anwendung umzuwandeln, aber ich habe vorerst aufgegeben, weil ich keine HTML-Kenntnisse hatte. Ich werde wieder berichten, wenn ich HTML herausfordere.
Parallel zur Implementierung dieses Tools haben wir auch Atcoder gestartet, einen Programmierwettbewerb. Wettbewerbsfähige Programmierung war nützlich! Ich höre so etwas, aber es ist nützlich, um sich an den grundlegenden Umgang mit Listen usw. zu gewöhnen, und ich bin der Meinung, dass der Inhalt bis zur ersten Hälfte von Grün auch für das wirkliche Leben von Menschen ohne Informationen nützlich ist.
[^ 1]: Easy Python (Mana Takahashi, SB Creative). Dieses Buch war trotz seines Namens leicht zu verstehen und ich empfehle es.
Recommended Posts