Utilisateur:Amqui/programmes/WNNHL
WNNHL est un logiciel écrit en Java par Amqui permettant la création automatique des pages de résultats de la ligue nationale de hockey (LNH) à partir des résultats sur le site officiel de la LNH[1]. La dernière modification au programme a été apportée le 17 octobre 2010. L'abréviation du nom est pour « WikiNews - National Hockey League ». Ce programme a été utilisé pour développer huit autres logiciels pour d'autres ligues de hockey.
Utilisation
modifierLe programme doit être lancé à partir de ou dans un émulateur de terminal communément appelé console. Ensuite, il suffit de répondre aux questions. À la question du jour, il faut écrire la journée de la semaine en débutant par une minuscule. Pour le nom des équipes gagnantes et perdantes, il faut entrer leur abréviation respective telle qu'affichée sur le site officiel de la LNH composée de trois lettres majuscules. Généralement, on écrit le pointage finale sour la forme « # - # » (ex: 3 - 2); on peut aussi ajouter entre parenthèses à côté si la partie s'est terminée en prolongation ou en fusillade. La sortie du programme est créée dans le même dossier dans lequel il est lancé sous le nom de « page.txt ». Il suffit ensuite de copier le contenu de ce fichier dans un article sur WikiNews.
Code source
modifierpackage wnnhl; import java.io.BufferedReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; /** * * @author leplusbeau */ enum Equipes { ANA, ATL, BOS, BUF, CAR, CBJ, CGY, CHI, COL, DAL, DET, EDM, LAK, OTT, MIN, MTL, NJD, NSH, NYI, NYR, PHI, PHX, PIT, SJS, STL, TBL, TOR, VAN, WSH, FLA } enum Mois { janvier, février, mars, avril, mai, juin, juillet, août, septembre, octobre, novembre, décembre } public class Main { public static void main(String[] args) throws IOException { int n; int i; int NombreParties; String[][] Tableau; String GagnantAbv = null; String PerdantAbv = null; String Score; String Gagnant; String Perdant; String Date; String Jour; String DateNo; String MoisLettres; String MoisNo; String PartiesLettres = null; PrintWriter texte = new PrintWriter (new FileWriter("page.txt")); BufferedReader console = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Date?"); Date = console.readLine(); System.out.println("Jour?"); Jour = console.readLine(); System.out.println("Nombre de parties?"); String input = console.readLine(); NombreParties = Integer.parseInt(input); DateNo = Date.substring(0, 2); MoisLettres = Date.substring(3, Date.length()-5); MoisNo = getMois(Mois.valueOf(MoisLettres)); switch (NombreParties){ case 2 : PartiesLettres = "deux"; break; case 3 : PartiesLettres = "trois"; break; case 4 : PartiesLettres = "quatre"; break; case 5 : PartiesLettres = "cinq"; break; case 6 : PartiesLettres = "six"; break; case 7 : PartiesLettres = "sept"; break; case 8 : PartiesLettres = "huit"; break; case 9 : PartiesLettres = "neuf"; break; case 10 : PartiesLettres = "dix"; break; case 11 : PartiesLettres = "onze"; break; case 12 : PartiesLettres = "douze"; break; case 13 : PartiesLettres = "treize"; break; case 14 : PartiesLettres = "quatorze"; break; case 15 : PartiesLettres = "quinze"; break; default : System.out.println("Plus de quinze parties"); } texte.println("{{date|{{subst:#ifeq:{{subst:#time:j}}|1|1er|{{subst:#time:j}}}} {{subst:#time:F Y}}}}"); if (NombreParties==1){ texte.println("Ce " + Jour + ", une seule partie se déroulait au sein de la [[w:Ligue nationale de hockey|ligue nationale de hockey]] (LNH)."); } else { texte.println("Ce " + Jour + ", " + PartiesLettres + " parties se déroulaient au sein de la [[w:Ligue nationale de hockey|ligue nationale de hockey]] (LNH)."); } texte.println(" "); texte.println("==Résultats=="); texte.println("<center>"); texte.println("{| border=\"1px\" width=\"75%\" class=\"wikitable\" align=\"center\" cellspacing=\"3px\""); texte.println("!colspan=12| Résultats du " + Date); texte.println("|- style=\"border:1px solid #889999; background-color:#F0F0F0;\""); texte.println("! Équipe gagnante!! Équipe perdante!! Pointage final"); i=0; while (i!=NombreParties) { i=i+1; System.out.println(i + "e partie"); System.out.println("Équipe gagnante?"); GagnantAbv = console.readLine(); System.out.println("Équipe perdante?"); PerdantAbv = console.readLine(); System.out.println("Pointage final?"); Score = console.readLine(); Gagnant = getEquipe(Equipes.valueOf(GagnantAbv)); Perdant = getEquipe(Equipes.valueOf(PerdantAbv)); texte.println("|-"); texte.println("|[[w:" + Gagnant + "|" + Gagnant + "]]"); texte.println("|[[w:" + Perdant + "|" + Perdant + "]]"); texte.println("|" + Score); if (Gagnant.equals("Ducks d'Anaheim") || Perdant.equals("Ducks d'Anaheim")){ texte.println("[[Catégorie:Californie]]"); texte.println("[[Catégorie:Anaheim]]"); } if (Gagnant.equals("Thrashers d'Atlanta") || Perdant.equals("Thrashers d'Atlanta")){ texte.println("[[Catégorie:Géorgie (USA)]]"); texte.println("[[Catégorie:Atlanta]]"); } if (Gagnant.equals("Bruins de Boston") || Perdant.equals("Bruins de Boston")){ texte.println("[[Catégorie:Massachusetts]]"); texte.println("[[Catégorie:Boston]]"); } if (Gagnant.equals("Sabres de Buffalo") || Perdant.equals("Sabres de Buffalo")){ texte.println("[[Catégorie:New York]]"); texte.println("[[Catégorie:Buffalo]]"); } if (Gagnant.equals("Hurricanes de la Caroline") || Perdant.equals("Hurricanes de la Caroline")){ texte.println("[[Catégorie:Caroline du Nord]]"); texte.println("[[Catégorie:Raleigh]]"); } if (Gagnant.equals("Blue Jackets de Columbus") || Perdant.equals("Blue Jackets de Columbus")){ texte.println("[[Catégorie:Ohio]]"); texte.println("[[Catégorie:Columbus (Ohio, USA)]]"); } if (Gagnant.equals("Flames de Calgary") || Perdant.equals("Flames de Calgary")){ texte.println("[[Catégorie:Alberta]]"); texte.println("[[Catégorie:Calgary]]"); } if (Gagnant.equals("Blackhawks de Chicago") || Perdant.equals("Blackhawks de Chicago")){ texte.println("[[Catégorie:Illinois]]"); texte.println("[[Catégorie:Chicago]]"); } if (Gagnant.equals("Avalanche du Colorado") || Perdant.equals("Avalanche du Colorado")){ texte.println("[[Catégorie:Colorado]]"); texte.println("[[Catégorie:Denver]]"); } if (Gagnant.equals("Stars de Dallas") || Perdant.equals("Stars de Dallas")){ texte.println("[[Catégorie:Texas]]"); texte.println("[[Catégorie:Dallas]]"); } if (Gagnant.equals("Red Wings de Détroit") || Perdant.equals("Red Wings de Détroit")){ texte.println("[[Catégorie:Michigan]]"); texte.println("[[Catégorie:Détroit]]"); } if (Gagnant.equals("Oilers d'Edmonton") || Perdant.equals("Oilers d'Edmonton")){ texte.println("[[Catégorie:Alberta]]"); texte.println("[[Catégorie:Edmonton]]"); } if (Gagnant.equals("Panthers de la Floride") || Perdant.equals("Panthers de la Floride")){ texte.println("[[Catégorie:Floride]]"); texte.println("[[Catégorie:Miami]]"); } if (Gagnant.equals("Kings de Los Angeles") || Perdant.equals("Kings de Los Angeles")){ texte.println("[[Catégorie:Californie]]"); texte.println("[[Catégorie:Los Angeles]]"); } if (Gagnant.equals("Sénateurs d'Ottawa") || Perdant.equals("Sénateurs d'Ottawa")){ texte.println("[[Catégorie:Ontario]]"); texte.println("[[Catégorie:Ottawa]]"); } if (Gagnant.equals("Wild du Minnesota") || Perdant.equals("Wild du Minnesota")){ texte.println("[[Catégorie:Minnesota]]"); texte.println("[[Catégorie:Saint Paul (Minnesota)]]"); } if (Gagnant.equals("Canadiens de Montréal") || Perdant.equals("Canadiens de Montréal")){ texte.println("[[Catégorie:Québec]]"); texte.println("[[Catégorie:Montréal]]"); } if (Gagnant.equals("Devils du New Jersey") || Perdant.equals("Devils du New Jersey")){ texte.println("[[Catégorie:New Jersey]]"); texte.println("[[Catégorie:Newark]]"); } if (Gagnant.equals("Predators de Nashville") || Perdant.equals("Predators de Nashville")){ texte.println("[[Catégorie:Tennessee]]"); texte.println("[[Catégorie:Nashville]]"); } if (Gagnant.equals("Islanders de New York") || Perdant.equals("Islanders de New York")){ texte.println("[[Catégorie:New York]]"); texte.println("[[Catégorie:New York City]]"); } if (Gagnant.equals("Rangers de New York") || Perdant.equals("Rangers de New York")){ texte.println("[[Catégorie:New York]]"); texte.println("[[Catégorie:New York City]]"); } if (Gagnant.equals("Flyers de Philadelphie") || Perdant.equals("Flyers de Philadelphie")){ texte.println("[[Catégorie:Pennsylvanie]]"); texte.println("[[Catégorie:Philadelphie]]"); } if (Gagnant.equals("Coyotes de Phoenix") || Perdant.equals("Coyotes de Phoenix")){ texte.println("[[Catégorie:Arizona]]"); texte.println("[[Catégorie:Phoenix]]"); } if (Gagnant.equals("Penguins de Pittsburgh") || Perdant.equals("Penguins de Pittsburgh")){ texte.println("[[Catégorie:Pennsylvanie]]"); texte.println("[[Catégorie:Pittsburgh]]"); } if (Gagnant.equals("Sharks de San José") || Perdant.equals("Sharks de San José")){ texte.println("[[Catégorie:Californie]]"); texte.println("[[Catégorie:San José]]"); } if (Gagnant.equals("Blues de Saint-Louis") || Perdant.equals("Blues de Saint-Louis")){ texte.println("[[Catégorie:Missouri]]"); texte.println("[[Catégorie:Saint-Louis]]"); } if (Gagnant.equals("Lightning de Tampa Bay") || Perdant.equals("Lightning de Tampa Bay")){ texte.println("[[Catégorie:Floride]]"); texte.println("[[Catégorie:Tampa]]"); } if (Gagnant.equals("Maple Leafs de Toronto") || Perdant.equals("Maple Leafs de Toronto")){ texte.println("[[Catégorie:Ontario]]"); texte.println("[[Catégorie:Toronto]]"); } if (Gagnant.equals("Canucks de Vancouver") || Perdant.equals("Canucks de Vancouver")){ texte.println("[[Catégorie:Colombie-Britannique]]"); texte.println("[[Catégorie:Vancouver]]"); } if (Gagnant.equals("Capitals de Washington") || Perdant.equals("Capitals de Washington")){ texte.println("[[Catégorie:Washington]]"); } } texte.println("|}"); texte.println("</center>"); texte.println(" "); texte.println("== Source =="); texte.println("*{{source|langue=en"); texte.println("|url=http://www.nhl.com/ice/schedulebyday.htm?date=" + MoisNo + "%2F" + DateNo + "%2F2010"); texte.println("|titre=Schedule"); texte.println("|auteur="); texte.println("|publication=National Hockey League"); texte.println("|date=" + Date + "}}"); texte.println(" "); texte.println("{{Publication}}"); texte.println(" "); texte.println("{{Page|Hockey sur glace|Canada|USA}}"); texte.println(" "); texte.println("[[Catégorie:Amérique]]"); texte.println("[[Catégorie:Amérique du Nord]]"); texte.println("[[Catégorie:Canada]]"); texte.println("[[Catégorie:États-Unis d'Amérique]]"); texte.println("[[Catégorie:Sport]]"); texte.println("[[Catégorie:Hockey sur glace]]"); texte.println("[[Catégorie:Ligue nationale de hockey]]"); texte.close(); } public static String getEquipe(Equipes Equipes) { switch (Equipes) { case ANA : return "Ducks d'Anaheim"; case ATL : return "Thrashers d'Atlanta"; case BOS : return "Bruins de Boston"; case BUF : return "Sabres de Buffalo"; case CAR : return "Hurricanes de la Caroline"; case CBJ : return "Blue Jackets de Columbus"; case CGY : return "Flames de Calgary"; case CHI : return "Blackhawks de Chicago"; case COL : return "Avalanche du Colorado"; case DAL : return "Stars de Dallas"; case DET : return "Red Wings de Détroit"; case EDM : return "Oilers d'Edmonton"; case FLA : return "Panthers de la Floride"; case LAK : return "Kings de Los Angeles"; case OTT : return "Sénateurs d'Ottawa"; case MIN : return "Wild du Minnesota"; case MTL : return "Canadiens de Montréal"; case NJD : return "Devils du New Jersey"; case NSH : return "Predators de Nashville"; case NYI : return "Islanders de New York"; case NYR : return "Rangers de New York"; case PHI : return "Flyers de Philadelphie"; case PHX : return "Coyotes de Phoenix"; case PIT : return "Penguins de Pittsburgh"; case SJS : return "Sharks de San José"; case STL : return "Blues de Saint-Louis"; case TBL : return "Lightning de Tampa Bay"; case TOR : return "Maple Leafs de Toronto"; case VAN : return "Canucks de Vancouver"; case WSH : return "Capitals de Washington"; default: return "Mauvaise abréviation"; } } public static String getMois(Mois Mois) { switch (Mois) { case janvier : return "01"; case février: return "02"; case mars: return "03"; case avril: return"04"; case mai: return "05"; case juin: return "06"; case juillet: return "07"; case août: return "08"; case septembre: return "09"; case octobre: return "10"; case novembre: return "11"; case décembre: return "12"; default: return "Pas un mois"; } } }
Exemple
modifierDérivés
modifierCinq dérivés de ce programme ont été créés par Amqui pour d'autres ligues :
- WNLHJMQ : Ligue de hockey junior majeur du Québec
- WNOHL : Ligue de hockey de l'Ontario
- WNWHL : Ligue de hockey de l'Ouest
- WNAHL : Ligue américaine de hockey
- WNKHL : Ligue continentale de hockey