From 56a2426b88119fc46abbec135deb3f0a6da37dbf Mon Sep 17 00:00:00 2001 From: Yosuke Mizutani Date: Mon, 19 Jun 2017 00:30:49 -0400 Subject: [PATCH] fixed HtmlBranchWriter#toHtmlString --- .../mogami/core/io/html/HtmlBranchWriter.scala | 13 ++++++++----- .../mogami/core/io/html/HtmlBranchWriterSpec.scala | 3 ++- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/shared/src/main/scala/com/mogproject/mogami/core/io/html/HtmlBranchWriter.scala b/shared/src/main/scala/com/mogproject/mogami/core/io/html/HtmlBranchWriter.scala index bd26746..a2047e3 100644 --- a/shared/src/main/scala/com/mogproject/mogami/core/io/html/HtmlBranchWriter.scala +++ b/shared/src/main/scala/com/mogproject/mogami/core/io/html/HtmlBranchWriter.scala @@ -1,5 +1,6 @@ package com.mogproject.mogami.core.io.html +import com.mogproject.mogami.core.game.Game.{CommentType, HistoryHash} import com.mogproject.mogami.core.move._ import com.mogproject.mogami.core.state.State.{BoardType, HandType} import com.mogproject.mogami.core.state.{State, StateCache} @@ -16,6 +17,8 @@ trait HtmlBranchWriter { def history: Vector[StateHash] + def historyHash: Vector[HistoryHash] + def finalAction: Option[SpecialMove] private[this] def moveToString(move: Move, isJapanese: Boolean): String = @@ -37,13 +40,13 @@ trait HtmlBranchWriter { case _ => "" } - def toHtmlString(isJapanese: Boolean = true, comments: Map[StateHash, String])(implicit stateCache: StateCache): String = { - val stateHistory = history.map(stateCache.get) + def toHtmlString(isJapanese: Boolean = true, comments: CommentType)(implicit stateCache: StateCache): String = { + val stateHistory = history.map(stateCache.get).zip(historyHash) val states = stateHistory.zip(None +: moves.map(Some.apply)).zipWithIndex.map { - case ((Some(st), Some(m)), i) => st.toHtmlString(s"#${offset + i}: ${moveToString(m, isJapanese)}", Some(m.to), comments.get(st.hash)) - case ((Some(st), None), _) => st.toHtmlString(s"Start", None, comments.get(st.hash)) + case (((Some(st), hh), Some(m)), i) => st.toHtmlString(s"#${offset + i}: ${moveToString(m, isJapanese)}", Some(m.to), comments.get(hh)) + case (((Some(st), hh), None), _) => st.toHtmlString(s"Start", None, comments.get(hh)) case _ => "" } - (states :+ finalActionToHtml(stateHistory.last, isJapanese)).mkString("\n") + (states :+ finalActionToHtml(stateHistory.last._1, isJapanese)).mkString("\n") } } diff --git a/shared/src/test/scala/com/mogproject/mogami/core/io/html/HtmlBranchWriterSpec.scala b/shared/src/test/scala/com/mogproject/mogami/core/io/html/HtmlBranchWriterSpec.scala index 9830c24..92b9a4f 100644 --- a/shared/src/test/scala/com/mogproject/mogami/core/io/html/HtmlBranchWriterSpec.scala +++ b/shared/src/test/scala/com/mogproject/mogami/core/io/html/HtmlBranchWriterSpec.scala @@ -9,7 +9,8 @@ class HtmlBranchWriterSpec extends FlatSpec with MustMatchers with GeneratorDriv "HtmlBranchWriter#toHtmlString" must "make html with comments" in { StateCache.withCache { implicit cache => - Branch(State.HIRATE).toHtmlString(isJapanese = true, Map(State.HIRATE.hash -> "")) mustBe + val br = Branch(State.HIRATE) + br.toHtmlString(isJapanese = true, Map(br.historyHash.head -> "")) mustBe "
Start
" + "" + "" +
98765432