Verwendung des CHelper-Plugins in IntelliJ für einen Codierungswettbewerb

8

Ich habe vor kurzem eine Coding-Seite mit Codierungswettbewerben entdeckt: CodinGame , und um die Probleme zu lösen, müssen wir sie nur übergeben eine Datei mit einer Hauptdatei (im folgenden Beispiel die Klasse Player ), und wenn andere Klassen benötigt werden, nehmen wir sie in diese Datei auf.

Zu diesem Zweck (und ich habe gesehen, dass ich für eine andere Coding-Site arbeite) habe ich intelliJ und die Plugin CHelper , um alle Quelldateien in eine Java-Datei zu schreiben (es soll die sein Zweck des CHelper-Plugins). Das Problem ist: Ich verstehe nicht, wie ich dieses Plugin für meine Coding-Site verwenden / einrichten kann. Ich weiß, dass es funktionieren sollte, weil ein anderer Benutzer dieser Seite das Plugin bereits für diesen Zweck benutzt hat.

Was ich will

Für ein detaillierteres Beispiel was ich will, hier ist die Klasse mit einem Haupt:

%Vor%

Und diese Klasse Cell ist in einer anderen Java-Datei:

%Vor%

Und ich möchte, dass das Plugin die zwei (oder mehr) Java-Dateien zusammenführt, um das zu haben:

%Vor%

Was ich erreicht habe

Ich habe IntelliJ korrekt installiert und das CHelper-Plugin heruntergeladen. Ich habe die Symbolleisten-Menüschaltflächen installiert, die mit TopCoder verknüpft sind (der Site, für die dieses Plugin ausdrücklich vorgesehen ist), aber die Schaltfläche Launch TopCoder löst eine RuntimeException aus: Programm kann nicht ausgeführt werden ... / javaws keine solche Datei. Mit einigen Aufgaben, die von TopCoder heruntergeladen wurden, gelang es mir, 2 Dateien zu einer zusammenzufassen: TaskA.java in Main.java (mit heruntergeladenen Vorlagen)

Was wäre ideal

Wenn ein Eclipse -Plugin funktionieren könnte, wie ich es möchte, würde ich mich sehr darüber freuen. Genau das war es, was ich zu Beginn meiner Suche suchte, und ich fand nur ein Plugin für die IntelliJ IDE.

    
OroshiX 20.07.2016, 22:40
quelle

1 Antwort

6

Also habe ich endlich einen Weg gefunden, das zu tun, was ich wollte: Der Typ, der es getan hat, teilte mir einen Link zu die Hilfe brauchte ich.

Ich werde es hier speziell für CodinGame zusammenfassen.

I - Symbolleistenschaltflächen

Die wichtigen Schaltflächen zum Hinzufügen zur Menüleiste sind

  • neue Aufgabe erstellen
  • Ändern Sie die Aufgabe
  • Aufgabe löschen
  • Projekteinstellungen bearbeiten

Jetzt haben wir einige Knöpfe im roten Rechteck:

II - Einstellungen bearbeiten

Dann müssen wir edit project settings :

  • Setzen Sie das Standardverzeichnis auf Ihr Standardpaket
  • Ausgabeverzeichnis ist für die generierte Quelldatei

III- Aufgabe erstellen

Als nächstes müssen wir eine neue Aufgabe erstellen (grüne Schaltfläche "+") und sie mit der Option advanced einrichten. Wir fügen die Testeingabe und die bekannte Ausgabe mit der Schaltfläche Edit tests hinzu. Wir sagen, dass die generierte Datei Solution.java heißen soll und die Klasse, in die wir schreiben wollen, wird CGXFormatter.java

heißen

Wir haben jetzt zwei Dateien, die in unserem Paket .../puzzle :

erschienen sind
  • CGXFormatter.java mit einer Methode solve , wo wir die Eingabe lesen und unsere Antwort in der Ausgabe
  • angeben werden
  • CGXFormatter.task , das die Informationen zu den Testfällen usw. enthält, damit das Plugin die Quelldatei
  • generiert

IV- Schreiben Sie Ihre Lösung

Zum Beispiel drucken wir einfach "Dies ist das Ergebnis" in unserer CGXFormatter -Klasse (aber wir hätten eine andere Klassendatei erstellen und sie aufrufen können, es hätte funktioniert, indem wir die Definition der Klasse in die generierte Lösungsklasse). So:

%Vor%

V- Erzeugen Sie die Lösung

Letzter Schritt: Klicken Sie auf Ausführen. Dann haben wir das Verzeichnis generated , das erstellt wird, und darin haben wir die Solution.java Datei neu generiert. Wir können das lesen:

%Vor%

VI - Letzter Schritt

Okay, es gibt immer noch ein kleines Problem: In CodingGame sollte die Lösungsklasse nicht public davor haben, also setze einfach class Solution anstelle von public class Solution und du bist fertig. Wenn Sie möchten, können Sie es auch in ein Skript einfügen, um es automatisch mit einem multirun (Plugin zur Installation in IDEA, auch) zu tun.

Das ist es, du bist fertig.

Als Randnotiz bemerkte ich, dass out.println nicht so funktionierte, wie ich es vorhatte (ich weiß nicht warum), also habe ich es durch System.out.println ersetzt, anstatt die% vorgeschlagenes Objekt out in der Methode solve .

    
OroshiX 28.07.2016, 10:51
quelle

Tags und Links