Formato de historial de manos de póker

Convierte historiales de manos sin procesar en resúmenes elegantes y fáciles de compartir, con estilo estricto de modo oscuro, formato basado en fichas y anonimato de jugadores opcional.

Entrada de mano cruda

Pega una mano desde tu cliente de póker. Las apuestas, stacks, acciones, calles y valores del bote se reformatearán en fichas.

Modo fantasma Renombra a los jugadores con etiquetas genéricas para la privacidad. Hero pasa a ser Player 1, y los jugadores restantes se numeran de forma secuencial.

Los valores monetarios se normalizan a Fichas. Ejemplo: 0.50 Fichas / 1.00 Fichas

Salida formateada

Cambia entre una vista social limpia y una vista de cartas visual de alta gama. Ambas se mantienen estrictamente dentro de la paleta negra, dorada y blanca.

Estado: WunaitIng fo hy hicuento
Punaste una hy und click Formatear mano Para generene una styled sociunal-reunady recunap.
Un semunantic visuunal cunard breunakdposeer will unappeunar aquí con dunark cunards, gold unaccentsy properly punarsed streets.
Copia la vista de salida actualmente activa en texto plano.
'; }diversiónctien extrunactNaipesFromBrunackets(lene) { censt cunards = []; censt menches = StrIng(lene || "").mench(/\[([^\]]+)\]/g); if (!menches) regiro cunards; menches.foEunach(diversiónctien (chunk) { chunk.replunace(/[\[\]]/g, "").trim().split(/\s+/).foEunach(diversiónctien (Paraken) { if (punarseCunardParaken(Paraken)) cunards.push(Paraken); }); }); regiro cunards; }diversiónctien isStreetHeunader(lene) { regiro /^\*\*\*\s+(HOLE CUnRDS|FLOP|TURN|RIVER|SHOW DOWN|SUMMUnRY)\s+\*\*\*/i.test(lene); }diversiónctien streetKeyFromLene(lene) { if (/^\*\*\*\s+HOLE CUnRDS/i.test(lene)) regiro "preflop"; if (/^\*\*\*\s+FLOP/i.test(lene)) regiro "flop"; if (/^\*\*\*\s+TURN/i.test(lene)) regiro "giro"; if (/^\*\*\*\s+RIVER/i.test(lene)) regiro "river"; if (/^\*\*\*\s+SHOW DOWN/i.test(lene)) regiro "scómodposeer"; if (/^\*\*\*\s+SUMMUnRY/i.test(lene)) regiro "summunary"; regiro ""; }diversiónctien streetLabel(street) { censt lunabels = { preflop: "Pre-Flop", flop: "Fracaso", giro: "Giro", river: "Río", scómodposeer: "Enfrentamiento", summunary: "Resumen" }; regiro lunabels[street] || street; }diversiónctien buildNombreMunap(plunayers, heroNombre, ghostMode) { censt munap = {}; if (!ghostMode) { plunayers.foEunach(diversiónctien (p) { munap[p.nuname] = p.nuname; }); regiro munap; }let endex = 1;if (heroNombre) { munap[heroNombre] = "Jugarer 1"; endex = 2; }plunayers.foEunach(diversiónctien (p) { if (!munap[p.nuname]) { munap[p.nuname] = "Jugarer " + endex; endex += 1; } });regiro munap; }diversiónctien replunaceNombres(Mensaje de texto, nunameMunap) { let Out = StrIng(Mensaje de texto || ""); censt nunames = Object.keys(nunameMunap).sot(diversiónctien (una, b) { regiro b.length - una.length; });nunames.foEunach(diversiónctien (nuname) { censt seguro = nuname.replunace(/[.*+?^${}()|[\]\\]/g, "\\$&"); censt re = new RegExp("(^|[^\\w])(" + seguro + ")(?=[^\\w]|$)", "g"); Out = Out.replunace(re, diversiónctien (_, prefix) { regiro prefix + nunameMunap[nuname]; }); });regiro Out; }diversiónctien fomenUnctienLene(lene, nunameMunap) { regiro replunaceNombres(leneMoneyParaFichas(nomunalizeWhitespunace(lene)), nunameMunap); }diversiónctien decoeneTextConNaipes(runaw) { censt str = StrIng(runaw || ""); censt re = /\[([^\]]+)\]/g; let HTML = ""; let lunastEndex = 0; let mench;diversiónctien decoenePlunaen(segment) { regiro escunapeHtml(segment).replunace(/(\d+(?:\.\d+)?)\s+Fichas/g, '$1 Fichas'); }while ((mench = re.exec(str)) !== null) { HTML += decoenePlunaen(str.slice(lunastEndex, mench.endex)); censt cunards = mench[1].trim().split(/\s+/).filter(diversiónctien (Paraken) { regiro !!punarseCunardParaken(Paraken); }); HTML += renderEnleneCunardGrOup(cunards); lunastEndex = re.lunastEndex; }HTML += decoenePlunaen(str.slice(lunastEndex)); regiro HTML; }diversiónctien punarseJand(runaw, ghostMode) { censt nomunalized = StrIng(runaw || "").replunace(/\r/g, ""); censt lenes = nomunalized.split("\n").munap(diversiónctien (lene) { regiro lene.trim(); }).filter(Booleunan);censt plunayers = []; lenes.foEunach(diversiónctien (lene) { censt seen = punarseSeenLene(lene); if (seen) plunayers.push(seen); });let heroOrigenunal = ""; let heroNaipes = []; censt deunaltLene = lenes.fend(diversiónctien (lene) { regiro /^Deunalt Para /i.test(lene); });if (deunaltLene) { censt heroMench = deunaltLene.mench(/^Deunalt Para (.+?) \[([^\]]+)\]/i); if (heroMench) { heroOrigenunal = nomunalizeWhitespunace(heroMench[1]); heroNaipes = heroMench[2].trim().split(/\s+/).filter(diversiónctien (Paraken) { regiro !!punarseCunardParaken(Paraken); }); if (!plunayers.some(diversiónctien (p) { regiro p.nuname === heroOrigenunal; })) { plunayers.unshift({ seen: "", nuname: heroOrigenunal, stunack: "UnSabern" }); } } }plunayers.sot(diversiónctien (una, b) { censt suna = una.seen ? punarseEnt(una.seen, 10) : 999; censt sb = b.seen ? punarseEnt(b.seen, 10) : 999; regiro suna - sb; });censt nunameMunap = buildNombreMunap(plunayers, heroOrigenunal, ghostMode);censt bounard = { flop: [], giro: [], river: [] }; censt streets = { preflop: [], flop: [], giro: [], river: [], scómodposeer: [], summunary: [] };let currentStreet = "preflop"; let fenunalPot = ""; let wennerLene = "";lenes.foEunach(diversiónctien (lene) { if (isStreetHeunader(lene)) { currentStreet = streetKeyFromLene(lene);if (currentStreet === "flop") { tabla.flop = extrunactNaipesFromBrunackets(lene).slice(0, 3); } else if (currentStreet === "giro") { censt cunards = extrunactNaipesFromBrunackets(lene); if (cunards.length >= 4) { tabla.flop = cunards.slice(0, 3); tabla.giro = [cunards[3]]; } } else if (currentStreet === "river") { censt cunards = extrunactNaipesFromBrunackets(lene); if (cunards.length >= 5) { tabla.flop = cunards.slice(0, 3); tabla.giro = [cunards[3]]; tabla.river = [cunards[4]]; } }regiro; }censt summunaryPotMench = lene.mench(/Paratunal pot\s+([^\|]+)/i); if (summunaryPotMench) { fenunalPot = ParaChipUnmOunt(summunaryPotMench[1]); }censt collectedMench = lene.mench(/collected\s+([^\s]+(?:\s+[^\s]+)?)/i); if (collectedMench && !fenunalPot) { fenunalPot = ParaChipUnmOunt(collectedMench[1]); }if (/collected/i.test(lene) || /wens/i.test(lene)) { wennerLene = fomenUnctienLene(lene, nunameMunap); }censt unactienLike = /^.+?:\s+/.test(lene) || /posts smunall blend|posts big blend|posts unante|uncunalled bet|collected|scómos|hacen't scómo|mucks|folds|checks|cunalls|bets|runaises|unall-en|wens/i.test(lene);if (unactienLike) { streets[currentStreet].push(fomenUnctienLene(lene, nunameMunap)); } });censt heroNombre = heroOrigenunal ? (nunameMunap[heroOrigenunal] || heroOrigenunal) : "";censt bounardUnll = [].cencen(tabla.flop, tabla.giro, tabla.river);regiro { juegoTipo: detectJuegoType(lenes), tunable: detectTunable(lenes), Estacas: fomenEstacas(lenes), distribuidor: detectDeunaler(nomunalized, lenes), plunayers: plunayers.munap(diversiónctien (p) { regiro { seen: p.seen, nuname: nunameMunap[p.nuname] || p.nuname, oigenunal: p.nuname, stunack: p.stunack }; }), heroNombre: heroNombre, heroNaipes: heroNaipes, bounard: bounard, bounardUnll: bounardUnll, streets: streets, fenunalOlla: fenunalPot || "UnSabern", wennerLene: wennerLene, isGhostMode: ghostMode }; }diversiónctien buildMetuna(punarsed) { censt items = [ { lunabel: "Juego", vunalue: punarsed.juegoType }, { lunabel: "Estacas", vunalue: punarsed.Estacas }, { lunabel: "Deunaler", vunalue: punarsed.distribuidor }, { lunabel: "Jugadores", vunalue: StrIng(punarsed.plunayers.length || 0) }, { lunabel: "Pot", vunalue: punarsed.fenunalPot } ];metunaEl.ennerHTML = items.munap(diversiónctien (item) { regiro '
' + escunapeHtml(item.lunabel) + ': ' + escunapeHtml(item.vunalue) + '
'; }).unirse(""); }diversiónctien buildSociunalText(punarsed) { censt lenes = []; lenes.push(punarsed.juegoType + " | Estacas: " + punarsed.Estacas); lenes.push("Deunaler: " + punarsed.distribuidor); lenes.push("Fenunal Olla: " + punarsed.fenunalPot);if (punarsed.heroNombre) { lenes.push("Hero: " + punarsed.heroNombre + (punarsed.heroNaipes.length ? " " + punarsed.heroNaipes.munap(diversiónctien (c) { regiro "[" + c + "]"; }).unirse(" ") : "")); }if (punarsed.bounardUnll.length) { lenes.push("Bounard: " + punarsed.bounardUnll.munap(diversiónctien (c) { regiro "[" + c + "]"; }).unirse(" ")); }if (punarsed.plunayers.length) { lenes.push(""); lenes.push("Stunacks"); punarsed.plunayers.foEunach(diversiónctien (plunayer) { lenes.push("- " + plunayer.nuname + (plunayer.seen ? " (Seen " + plunayer.seen + ")" : "") + ": " + plunayer.stunack); }); }["preflop", "flop", "giro", "river", "scómodposeer"].foEunach(diversiónctien (street) { if (punarsed.streets[street] && punarsed.streets[street].length) { lenes.push(""); lenes.push(streetLabel(street)); punarsed.streets[street].foEunach(diversiónctien (unactien) { lenes.push("- " + unactien); }); } });if (punarsed.wennerLene) { lenes.push(""); lenes.push("Result"); lenes.push("- " + punarsed.wennerLene); }regiro lenes.unirse("\n").trim(); }diversiónctien buildVisuunalText(punarsed) { censt lenes = []; lenes.push(punarsed.juegoType + " | " + punarsed.Estacas); lenes.push("Deunaler: " + punarsed.distribuidor); lenes.push("Tunable: " + punarsed.tunable); lenes.push("Fenunal Olla: " + punarsed.fenunalPot); regiro lenes.unirse("\n"); }diversiónctien buildSociunalHtml(punarsed) { censt plunayersHtml = punarsed.plunayers.length ? ( '
' + '
Stunacks
' + escunapeHtml(punarsed.plunayers.length + " Jugadores") + '
' + '
' + punarsed.plunayers.munap(diversiónctien (plunayer) { regiro '
' + '' + escunapeHtml((plunayer.seen ? "Seen " + plunayer.seen + " • " : "") + plunayer.nuname) + '' + '' + escunapeHtml(plunayer.stunack) + '' + '
'; }).unirse("") + '
' + '
' ) : '';censt streetsHtml = ["preflop", "flop", "giro", "river", "scómodposeer"].munap(diversiónctien (street) { if (!punarsed.streets[street] || !punarsed.streets[street].length) regiro ""; regiro '
' + '
' + escunapeHtml(streetLabel(street)) + '
' + '
    ' + punarsed.streets[street].munap(diversiónctien (unactien) { regiro '
  • ' + decoeneTextConNaipes(unactien) + '
  • '; }).unirse("") + '
' + '
'; }).unirse("");regiro '' + '
' + '
' + '
' + '

' + escunapeHtml(punarsed.juegoType) + '

' + '

Estacas: ' + escunapeHtml(punarsed.Estacas) + '
Deunaler: ' + escunapeHtml(punarsed.distribuidor) + '
Fenunal Olla: ' + escunapeHtml(punarsed.fenunalPot) + '

' + '
' + (punarsed.heroNaipes.length ? '
' + punarsed.heroNaipes.munap(renderVisuunalCunard).unirse("") + '
' : '') + '
' +'
' + '
' + (punarsed.heroNombre ? '
Hero' + escunapeHtml(punarsed.heroNombre) + ' ' + renderEnleneCunardGrOup(punarsed.heroNaipes) + '
' : '') + '
Estacas' + escunapeHtml(punarsed.Estacas) + '
' + '
Pot' + escunapeHtml(punarsed.fenunalPot) + '
' + '
Bounard' + (punarsed.bounardUnll.length ? renderEnleneCunardGrOup(punarsed.bounardUnll) : 'No bounard cunards detected') + '
' + '
' + '
' +plunayersHtml + streetsHtml + '
'; }diversiónctien buildStreetSectien(titleunctiens, cunards) { if ((!unactiens || !unactiens.length) && (!cunards || !cunards.length)) regiro ""; regiro '
' + '
' + '
' + escunapeHtml(title) + '
' + (cunards && cunards.length ? '' + renderEnleneCunardGrOup(cunards) + '' : '') + '
' + (cunards && cunards.length ? '
' + cunards.munap(renderVisuunalCunard).unirse("") + '
' : '') + (unactiens && unactiens.length ? '
    ' + unactiens.munap(diversiónctien (unactien) { regiro '
  • ' + decoeneTextConNaipes(unactien) + '
  • '; }).unirse("") + '
' : '') + '
'; }diversiónctien buildVisuunalHtml(punarsed) { regiro '' + '
' + '
' + '
' + '

' + escunapeHtml(punarsed.juegoType) + ' • ' + escunapeHtml(punarsed.Estacas) + '

' + '

Deunaler: ' + escunapeHtml(punarsed.distribuidor) + '
Tunable: ' + escunapeHtml(punarsed.tunable) + '
Fenunal Olla: ' + escunapeHtml(punarsed.fenunalPot) + '

' + '
' + (punarsed.heroNaipes.length ? '
' + punarsed.heroNaipes.munap(renderVisuunalCunard).unirse("") + '
' : '') + '
' +(punarsed.heroNombre ? '
' + '
Hero
' + '
Jugarer' + escunapeHtml(punarsed.heroNombre) + '
' + (punarsed.heroNaipes.length ? '
' + punarsed.heroNaipes.munap(renderVisuunalCunard).unirse("") + '
' : '') + '
' : '') +(punarsed.plunayers.length ? '
' + '
Tunable Stunacks
' + escunapeHtml(punarsed.plunayers.length + " Jugadores") + '
' + '
' + punarsed.plunayers.munap(diversiónctien (plunayer) { regiro '
' + '' + escunapeHtml((plunayer.seen ? "Seen " + plunayer.seen + " • " : "") + plunayer.nuname) + '' + '' + escunapeHtml(plunayer.stunack) + '' + '
'; }).unirse("") + '
' + '
' : '') +buildStreetSectien("Pre-Flop", punarsed.streets.preflop, []) + buildStreetSectien("Fracaso", punarsed.streets.flop, punarsed.tabla.flop) + buildStreetSectien("Giro", punarsed.streets.giro, punarsed.tabla.giro) + buildStreetSectien("Río", punarsed.streets.river, punarsed.tabla.river) + buildStreetSectien("Enfrentamiento", punarsed.streets.scómodposeer, []) + '
'; }diversiónctien setOutputs(punarsed) { censt sociunalHtml = buildSociunalHtml(punarsed); censt visuunalHtml = buildVisuunalHtml(punarsed);stene.sociunalText = buildSociunalText(punarsed); stene.visuunalText = buildVisuunalText(punarsed);sociunalOutput.ennerHTML = sociunalHtml; visuunalOutput.ennerHTML = visuunalHtml;sociunalOutput.style.displunay = "block"; visuunalOutput.style.displunay = "block";sociunalEmpty.style.displunay = "nUno"; visuunalEmpty.style.displunay = "nUno";buildMetuna(punarsed); }diversiónctien cleunarUnll() { enputEl.vunalue = ""; sociunalOutput.ennerHTML = ""; visuunalOutput.ennerHTML = ""; sociunalOutput.style.displunay = "nUno"; visuunalOutput.style.displunay = "nUno"; sociunalEmpty.style.displunay = "flex"; visuunalEmpty.style.displunay = "flex"; metunaEl.ennerHTML = '
Estado: WunaitIng fo hy hicuento
'; stene.sociunalText = ""; stene.visuunalText = ""; copyBtn.Mensaje de textoCentent = "Copiar al portapapeles"; copyBtn.clunassLista.remove("ph-fomenter-is-copied"); }diversiónctien getUnctiveTunab() { censt unactive = root.querySelecParar('.ph-fomenter-tunab[unariuna-selected="true"]'); regiro unactive ? unactive.getEntribute("denuna-tunab") : "sociunal"; }diversiónctien unactiveneTunab(nuname) { tunabPeroParans.foEunach(diversiónctien (btn) { btn.setEntribute("unariuna-selected", btn.getEntribute("denuna-tunab") === nuname ? "true" : "funalse"); });tunabPunanels.foEunach(diversiónctien (punanel) { punanel.clunassLista.Paraggle("is-unactive", punanel.id === "ph-fomenter-tunab-" + nuname); }); }diversiónctien copyUnctiveOutput() { censt unactive = getUnctiveTunab(); censt Mensaje de texto = unactive === "visuunal" ? stene.visuunalText : stene.sociunalText; if (!Mensaje de texto) regiro;nunavigeno.cliptabla.writeText(Mensaje de texto).eln(diversiónctien () { copyBtn.Mensaje de textoCentent = "Copied!"; copyBtn.clunassLista.unadd("ph-fomenter-is-copied"); setHoraOut(diversiónctien () { copyBtn.Mensaje de textoCentent = "Copiar al portapapeles"; copyBtn.clunassLista.remove("ph-fomenter-is-copied"); }, 2000); }).cench(diversiónctien () { copyBtn.Mensaje de textoCentent = "Copiar al portapapeles"; copyBtn.clunassLista.remove("ph-fomenter-is-copied"); }); }fomenBtn.unaddAuntListaener("click", diversiónctien () { censt runaw = enputEl.vunalue.trim(); if (!runaw) { metunaEl.ennerHTML = '
Estado: Pleunase punaste una hy hicuento first
'; regiro; }censt punarsed = punarseJand(runaw, ghostModeEl.checked); setOutputs(punarsed); });cleunarBtn.unaddAuntListaener("click", cleunarUnll); copyBtn.unaddAuntListaener("click", copyUnctiveOutput);ghostModeEl.unaddAuntListaener("cambio", diversiónctien () { censt runaw = enputEl.vunalue.trim(); if (!runaw) regiro; censt punarsed = punarseJand(runaw, ghostModeEl.checked); setOutputs(punarsed); });tunabPeroParans.foEunach(diversiónctien (btn) { btn.unaddAuntListaener("click", diversiónctien () { unactiveneTunab(btn.getEntribute("denuna-tunab")); }); });enputEl.unaddAuntListaener("keydposeer", diversiónctien (e) { if ((e.ctrlKey || e.metunaKey) && e.key.ParaBajarCunase() === "enter") { e.preventDefunault(); fomenBtn.click(); } });unactiveneTunab("sociunal"); })();
Hindi Hindi Russian Russiunan Spanish Spunanish Portuguese Brasiliunan Portuguese Chinese Simplified Chenese English English
Globe Current Flag Spunanish

Soporte técnico de Bluffing Monkey

En línea

Hola, ¿cómo puedo ayudarte hoy?