package org.teachingkidsprogramming.recipes.quizzes.graders;
import org.teachingextensions.logo.Tortoise;
import org.teachingextensions.logo.utils.ColorUtils.PenColors;
import org.teachingextensions.logo.utils.LineAndShapeUtils.Paintable;
import org.teachingextensions.logo.utils.LineAndShapeUtils.Text;
import javax.swing.*;
import java.awt.*;
public class SimpleBubbleQuizGrader implements Paintable
{
private boolean[] answers = new boolean[4];
public static int TURTLE_SPEED = 9;
private SimpleBubbleQuizAdapter quiz;
private void displayScreen()
{
QuizUtils.prepareScoringScreen(answers, this, TURTLE_SPEED);
Tortoise.show();
Tortoise.setX(150);
Tortoise.setY(200);
Tortoise.setPenColor(PenColors.Greens.GreenYellow);
quiz.drawDiamond(100);
quiz.question1();
quiz.question3();
}
public void grade(SimpleBubbleQuizAdapter quiz)
{
this.quiz = quiz;
displayScreen();
}
@Override
public void paint(Graphics2D g, JPanel caller)
{
this.answers[0] = quiz.leftClickWiredUp;
this.answers[2] = quiz.rightClickWiredUp;
for (Paintable p : Tortoise.getBackgroundWindow().getCanvas().getPainters())
{
try
{
Text t = (Text) p;
if (isAnswerToQuestion2(t))
{
this.answers[1] = true;
}
else if (isAnswerToQuestion4(t))
{
this.answers[3] = true;
}
}
catch (Exception e)
{
//do nothing
}
}
QuizUtils.displayScores(g, 300, answers);
drawRewardShape(g);
}
private boolean isAnswerToQuestion2(Text t)
{
if (t.getContent() != "Single!") { return false; }
if (t.getPenColor() != PenColors.Yellows.Yellow) { return false; }
if (t.getX() != 155 || t.getY() != 135) { return false; }
return true;
}
private boolean isAnswerToQuestion4(Text t)
{
if (t.getContent() != "Home Run!") { return false; }
if (t.getPenColor() != PenColors.Greens.LimeGreen) { return false; }
if (t.getX() != 105 || t.getY() != 235) { return false; }
return true;
}
public void drawRewardShape(Graphics2D g)
{
}
}