From afd7f974194df6384d82ffc445f42e1a2e89b9ee Mon Sep 17 00:00:00 2001 From: loig Date: Tue, 11 May 2021 18:45:11 +0200 Subject: [PATCH] Exercise vertex degree in lists and adjacency matrix --- assets.go | 40 ++++++++++++ assets/ex-degreelist.png | Bin 0 -> 23662 bytes assets/ex-degreematr.png | Bin 0 -> 23191 bytes assets/extitle-degreegraph.png | Bin 6659 -> 9729 bytes assets/extitle-degreelist.png | Bin 0 -> 13302 bytes assets/extitle-degreematr.png | Bin 0 -> 13109 bytes ex-degreelist.go | 115 +++++++++++++++++++++++++++++++++ ex-degreematr.go | 115 +++++++++++++++++++++++++++++++++ exolist.go | 10 +++ 9 files changed, 280 insertions(+) create mode 100644 assets/ex-degreelist.png create mode 100644 assets/ex-degreematr.png create mode 100644 assets/extitle-degreelist.png create mode 100644 assets/extitle-degreematr.png create mode 100644 ex-degreelist.go create mode 100644 ex-degreematr.go diff --git a/assets.go b/assets.go index 2c2e044..5893ba4 100644 --- a/assets.go +++ b/assets.go @@ -210,6 +210,22 @@ var degreeGraphImage *ebiten.Image // should maybe be created only when needed var titleDegreeGraphAsset []byte var titleDegreeGraphImage *ebiten.Image // should maybe be created only when needed +//go:embed assets/ex-degreematr.png +var degreeMatrAsset []byte +var degreeMatrImage *ebiten.Image // should maybe be created only when needed + +//go:embed assets/extitle-degreematr.png +var titleDegreeMatrAsset []byte +var titleDegreeMatrImage *ebiten.Image // should maybe be created only when needed + +//go:embed assets/ex-degreelist.png +var degreeListAsset []byte +var degreeListImage *ebiten.Image // should maybe be created only when needed + +//go:embed assets/extitle-degreelist.png +var titleDegreeListAsset []byte +var titleDegreeListImage *ebiten.Image // should maybe be created only when needed + const spriteSide int = 64 const menuSpriteSide int = 128 @@ -514,6 +530,30 @@ func loadAssets() { log.Fatal(err) } titleDegreeGraphImage = ebiten.NewImageFromImage(decodedAsset) + + decodedAsset, _, err = image.Decode(bytes.NewReader(degreeListAsset)) + if err != nil { + log.Fatal(err) + } + degreeListImage = ebiten.NewImageFromImage(decodedAsset) + + decodedAsset, _, err = image.Decode(bytes.NewReader(titleDegreeListAsset)) + if err != nil { + log.Fatal(err) + } + titleDegreeListImage = ebiten.NewImageFromImage(decodedAsset) + + decodedAsset, _, err = image.Decode(bytes.NewReader(degreeMatrAsset)) + if err != nil { + log.Fatal(err) + } + degreeMatrImage = ebiten.NewImageFromImage(decodedAsset) + + decodedAsset, _, err = image.Decode(bytes.NewReader(titleDegreeMatrAsset)) + if err != nil { + log.Fatal(err) + } + titleDegreeMatrImage = ebiten.NewImageFromImage(decodedAsset) } // split the graphElementsImage diff --git a/assets/ex-degreelist.png b/assets/ex-degreelist.png new file mode 100644 index 0000000000000000000000000000000000000000..842a163b5ec7a3ba6c0ea2be794fcc5ea8d16b81 GIT binary patch literal 23662 zcmdqJRajg>x31fG<23H>F2RB~5Znpccz_T>ut0Ea+#LeJHMmRA2AW{OCAdp)cR2j( z?DcFpH|Kg^OuML2qegvIb3Rq?m=T)l3fLIr7ytkOTS-w)8vsChy#)jSQD4vPe{qHZ z00c)nSy@dxD=PqiHNh=GOa)1XFr=$bp-&%!OOBIXu9lY;!?LWl1|8oL*=+QC46MuMa@eF@opvx*l>hD`$)63l|b z_>JG6f-jSwc5G}5-G>i*n0g4czOLmwTKMK%@CuJLvg-s(Jk@Qrq$8(TUEYw;9j67};@o4%Ba}ay@GkXU5(tG{-}dSlXaJ zO!m^AdWv{*V{BK5IdhX=djQ=@(a;qDz_s|#flw+{Vg~@w0+i%rbUjRuexS|2QF`B` zHA1TCVsI@$n?5L75gtwo7)+eak|s<*(KA;|XAt$b;R|G~>wD^}Ak{?XTPwHxBYI#a z>@PLEnb-EqtJu5PcEz=-yc*raWWDUC4$J#1qN@00AR}UgG=2R4C6^~4gs;a_4Eb2^ zxz(%nnYC6489z{t7Nqz;FPrjfWJPu_CRH!{+?_ee2kHZhTb~X8j|e!u1$iW(KUV>A zk)1lOzrqqL)&Hl3|FRd08_0tLd+ADD^*5_}`3LnU1a!X4o(W1A|DPevl0?Qkw!V7l z7=IjA1<{Vaq#mpeT`f(a=`@M_ua3Q%74bp#TZO*(AKU#YG9ichcRg1)zJ`d_||C-o@2bfKebV#0IUN}a|eFlwA7{i&+Z(jbLu$13w4o@0R1Npz2G%7 zRfOB3z@POp>EpE5s7@e$!VUx}XMmc2oVG%&Q2#+fgBbFpN`qKM8teW#)6^n&g7Z$s zt2WSLy3LXoUc6g@nCi-}rjTUTGSzMsa%u7pz6rn7_&n>hKIcI^aP#R;lQpvWv{+ylb^9{-w(Sy8MgYZk&?SbE;wn~9r%B}$nt#YEGa$uJH08r_M|M}_X|=j z8M{+aMMR3c4uZr%OpfZnuT9aE2UMC+_!|pdb{ezvJ*nOKbZq~Y1l*uzneeR~I%}HP zJs{~p=B!E=a#G(tzW-*y21b`gS22=8l=|=(*a|kQO35~3zy7s-zt^b8d(bG1Y-*qk ze>>{7zVgYr9VPg{-+fMl%2A-+I->iGR(hlp>i_13m_B;55aP(D@8f-*llB5ZZ?RSh z^;SeGa6ti-+f4EUeY6INtrHG}he85Eg#*rdPYSQ-PZ2k9PtlWG8YiDr`gv`fwtY

ZB*M_0N)(N5 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 Hhsgf{8m4)W literal 0 HcmV?d00001 diff --git a/assets/extitle-degreegraph.png b/assets/extitle-degreegraph.png index 653d283b462616901825c013aad5ab7ec2c37aff..904374efd3c665b31919d6c9e946da2f8bbabe6b 100644 GIT binary patch delta 9410 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 JsP2Rv`#&p){0RU6 diff --git a/assets/extitle-degreelist.png b/assets/extitle-degreelist.png new file mode 100644 index 0000000000000000000000000000000000000000..da112e0d708d21c86aab8e34dfe22f67cdf22c65 GIT binary patch literal 13302 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 0 { + answer++ + } + } + } + + if correction { + if answerCode < len(e.answers.clics) && answerCode >= 0 { + e.answers.clics[answerCode] = 1 + } + } + + e.checkResult = func() (bool, bool) { + return e.answers.clics[answer] >= 1, *(e.answers.numClics) >= 1 + } + + e.codeAnswer = func() int { + for answerID, clics := range e.answers.clics { + if clics > 0 { + return answerID + } + } + return 0 + } + + // return exercise + return e, gCode, qCode +} diff --git a/ex-degreematr.go b/ex-degreematr.go new file mode 100644 index 0000000..20b501c --- /dev/null +++ b/ex-degreematr.go @@ -0,0 +1,115 @@ +package main + +import ( + "image" + "math/rand" + + "github.com/hajimehoshi/ebiten/v2" +) + +func initDegreeMatr(correction bool, graphCode, questionCode, answerCode int) (e exo, gCode, qCode int) { + + e.BasicSetup() + e.id = degreeMatr + e.successRequired = 5 + + numNodes := 4 + + elementSpacing := 100 + + // title setup + e.titleImage = titleDegreeMatrImage + xTitleShift, yTitleShift := e.titleImage.Size() + e.titleXPosition = (windowWidth - xTitleShift) / 2 + e.titleYPosition = elementSpacing + e.successCounterY = elementSpacing + yTitleShift + yTitleShift += spriteSide + + // graph setup + e.displayAdjMatr = true + + if correction { + e.g.decode(graphCode, numNodes) + gCode = graphCode + } else { + e.g.genConnectedGraph(numNodes, 4, 12, -1, -1) + gCode = e.g.encode() + } + e.g.linkMatrGraph = false + + matrixSize := matrixCellSize * (numNodes + 1) + e.g.xmatrposition = (windowWidth - matrixSize) / 2 + e.g.ymatrposition = 2*elementSpacing + yTitleShift + + // question setup + var from int + if correction { + from, _ = decodeFromToQuestion(questionCode, numNodes) + qCode = questionCode + } else { + from = rand.Intn(numNodes) + qCode = encodeFromToQuestion(from, from, numNodes) + } + xshift, yshift := degreeMatrImage.Size() + e.drawQuestion = func(screen *ebiten.Image) { + options := ebiten.DrawImageOptions{} + options.GeoM.Translate(float64((windowWidth-xshift)/2), float64(matrixSize+3*elementSpacing+yTitleShift)) + screen.DrawImage( + degreeMatrImage, + &options, + ) + // from label + options.GeoM.Translate(float64(8*spriteSide+5), 8) + xLabel := from % 10 + yLabel := from / 10 + labelSubimage := image.Rect( + xLabel*spriteSide, (yLabel+1)*spriteSide, + (xLabel+1)*spriteSide, (yLabel+2)*spriteSide, + ) + screen.DrawImage( + graphElementsImage.SubImage(labelSubimage).(*ebiten.Image), + &options, + ) + } + + // answers setup + e.hasAnswerSheet = true + answerSize := menuSpriteSide / 2 + e.answers.init((windowWidth-15*answerSize)/2, matrixSize+yshift+3*elementSpacing+20+yTitleShift) + for i := 0; i < 10; i++ { + x := (i % 6) * (menuSpriteSide / 2) + y := (i / 6) * (menuSpriteSide / 2) + e.answers.addButton(i*3*answerSize/2+answerSize/4, 0, menuElementsImage.SubImage(image.Rect(x, y+menuSpriteSide, x+menuSpriteSide/2, y+menuSpriteSide+menuSpriteSide/2)).(*ebiten.Image)) + } + + answer := len(e.g.successorsList[from]) + for i := 0; i < len(e.g.edges); i++ { + if i != from { + if e.g.edges[i][from] > 0 { + answer++ + } + } + } + + if correction { + if answerCode < len(e.answers.clics) && answerCode >= 0 { + e.answers.clics[answerCode] = 1 + } + } + + e.checkResult = func() (bool, bool) { + return e.answers.clics[answer] >= 1, *(e.answers.numClics) >= 1 + } + + e.codeAnswer = func() int { + for answerID, clics := range e.answers.clics { + if clics > 0 { + return answerID + } + } + return 0 + } + + // return exercise + return e, gCode, qCode +} diff --git a/exolist.go b/exolist.go index 3b9bf6c..293e60a 100644 --- a/exolist.go +++ b/exolist.go @@ -26,6 +26,8 @@ const ( isTreeList isTreeMatr degreeGraph + degreeMatr + degreeList globalNumExo ) @@ -78,6 +80,10 @@ func (g *game) initExo(exNum int) { g.e, g.exState.descriptionExo = initMatrToList(g.correctionMode, g.exState.descriptionExo, g.exState.answer) case degreeGraph: g.e, g.exState.descriptionExo, g.exState.descriptionQuestion = initDegreeGraph(g.correctionMode, g.exState.descriptionExo, g.exState.descriptionQuestion, g.exState.answer) + case degreeList: + g.e, g.exState.descriptionExo, g.exState.descriptionQuestion = initDegreeList(g.correctionMode, g.exState.descriptionExo, g.exState.descriptionQuestion, g.exState.answer) + case degreeMatr: + g.e, g.exState.descriptionExo, g.exState.descriptionQuestion = initDegreeMatr(g.correctionMode, g.exState.descriptionExo, g.exState.descriptionQuestion, g.exState.answer) } log.Print(g.exState.encode()) @@ -125,6 +131,10 @@ func getExTitlePerNum(exNum int) *ebiten.Image { return titleMatrToListImage case degreeGraph: return titleDegreeGraphImage + case degreeList: + return titleDegreeListImage + case degreeMatr: + return titleDegreeMatrImage } return nil