summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/.DS_Storebin0 -> 6148 bytes
-rw-r--r--src/main/java/kahootgui/.DS_Storebin0 -> 6148 bytes
-rw-r--r--src/main/java/kahootgui/App.java25
-rw-r--r--src/main/java/kahootgui/Controller.java97
-rw-r--r--src/main/java/kahootgui/Main.java9
-rw-r--r--src/main/java/kahootgui/Questions.java25
-rw-r--r--src/main/resources/META-INF/MANIFEST.MF3
-rw-r--r--src/main/resources/kahootgui/images/list.pngbin0 -> 15390 bytes
-rw-r--r--src/main/resources/kahootgui/images/logo.pngbin0 -> 22534 bytes
-rw-r--r--src/main/resources/kahootgui/images/search.pngbin0 -> 17770 bytes
-rw-r--r--src/main/resources/kahootgui/main.fxml164
-rw-r--r--src/main/resources/kahootgui/styles/main.css10
12 files changed, 333 insertions, 0 deletions
diff --git a/src/main/java/.DS_Store b/src/main/java/.DS_Store
new file mode 100644
index 0000000..5008ddf
--- /dev/null
+++ b/src/main/java/.DS_Store
Binary files differ
diff --git a/src/main/java/kahootgui/.DS_Store b/src/main/java/kahootgui/.DS_Store
new file mode 100644
index 0000000..09747aa
--- /dev/null
+++ b/src/main/java/kahootgui/.DS_Store
Binary files differ
diff --git a/src/main/java/kahootgui/App.java b/src/main/java/kahootgui/App.java
new file mode 100644
index 0000000..5dae92b
--- /dev/null
+++ b/src/main/java/kahootgui/App.java
@@ -0,0 +1,25 @@
+package kahootgui;
+
+import javafx.application.Application;
+import javafx.fxml.FXMLLoader;
+import javafx.scene.Parent;
+import javafx.scene.Scene;
+import javafx.stage.Stage;
+
+import java.util.Objects;
+
+public class App extends Application {
+
+ @Override
+ public void start(Stage primaryStage) throws Exception {
+ Parent root = FXMLLoader.load(Objects.requireNonNull(getClass().getResource("main.fxml")));
+ primaryStage.setTitle("Тесты по языка программирования");
+ primaryStage.setScene(new Scene(root, 747, 460));
+ primaryStage.show();
+ }
+
+ public static void main(String[] args) {
+ launch(args);
+ }
+
+}
diff --git a/src/main/java/kahootgui/Controller.java b/src/main/java/kahootgui/Controller.java
new file mode 100644
index 0000000..476f9f1
--- /dev/null
+++ b/src/main/java/kahootgui/Controller.java
@@ -0,0 +1,97 @@
+package kahootgui;
+
+import javafx.fxml.FXML;
+import javafx.scene.control.Button;
+import javafx.scene.control.RadioButton;
+import javafx.scene.control.ToggleGroup;
+import javafx.scene.text.Text;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+public class Controller {
+
+ @FXML
+ private ToggleGroup answers;
+
+ @FXML
+ private Text question_text;
+
+ @FXML
+ private RadioButton radio_btn_1;
+
+ @FXML
+ private RadioButton radio_btn_2;
+
+ @FXML
+ private RadioButton radio_btn_3;
+
+ @FXML
+ private RadioButton radio_btn_4;
+
+ @FXML
+ private Button answerBtn;
+
+ private final Questions[] questions = new Questions[] {
+ new Questions("В каком из вариантов представлен корректный формат вывода информации на экран?", new String[] {"Console.Write()", "console.log()", "print()", "System.out.println()"}),
+ new Questions("Какой тип данных отвечает за целые числа?", new String[] {"String", "Float", "Boolean", "Integer"}),
+ new Questions("Где правильно присвоено новое значение к многомерному массиву?", new String[] {"a(0)(0) = 1;", "a[0 0] = 1;", "a{0}{0} = 1;", "a[0][0] = 1;"}),
+ new Questions("Какой метод позволяет запустить программу на Java?", new String[] {"Основного метода нет", "С класса, что был написан первым и с методов что есть внутри него", "Любой, его можно задавать в настройках проекта", "С метода main в любом из классов"}),
+ new Questions("Каждый файл должен называется...", new String[] {"по имени первой библиотеки в нём", "по имени названия пакета", "как вам захочется", "по имени класса в нём"}),
+ new Questions("Сколько параметров может принимать функция?", new String[] {"5", "10", "20", "неограниченное количество"})
+ };
+
+ private int nowQuestion = 0, correctAnswers;
+ private String nowCorrectAnswer;
+
+ @FXML
+ public void initialize() {
+ nowCorrectAnswer = questions[nowQuestion].correctAnswer();
+
+ answerBtn.setOnAction(e -> {
+ RadioButton selectedRadioButton = (RadioButton) answers.getSelectedToggle();
+ if(selectedRadioButton != null) {
+ String toogleGroupValue = selectedRadioButton.getText();
+
+ if(toogleGroupValue.equals(nowCorrectAnswer)) {
+ System.out.println("Верный ответ");
+ correctAnswers++;
+ } else {
+ System.out.println("Не верный ответ");
+ }
+
+ // Это был последний вопрос
+ if(nowQuestion + 1 == questions.length) {
+ radio_btn_1.setVisible(false);
+ radio_btn_2.setVisible(false);
+ radio_btn_3.setVisible(false);
+ radio_btn_4.setVisible(false);
+ answerBtn.setVisible(false);
+
+ question_text.setText("Вы ответили корректно на " + correctAnswers + " из " + questions.length + " вопросов!");
+ } else {
+ nowQuestion++;
+ nowCorrectAnswer = questions[nowQuestion].correctAnswer();
+
+ question_text.setText(questions[nowQuestion].getQuestion());
+ String[] answers = questions[nowQuestion].getAnswers();
+
+
+ List<String> intList = Arrays.asList(answers);
+
+ Collections.shuffle(intList);
+
+ radio_btn_1.setText(intList.get(0));
+ radio_btn_2.setText(intList.get(1));
+ radio_btn_3.setText(intList.get(2));
+ radio_btn_4.setText(intList.get(3));
+
+ selectedRadioButton.setSelected(false);
+ }
+
+ }
+ });
+ }
+
+}
diff --git a/src/main/java/kahootgui/Main.java b/src/main/java/kahootgui/Main.java
new file mode 100644
index 0000000..bbcccb1
--- /dev/null
+++ b/src/main/java/kahootgui/Main.java
@@ -0,0 +1,9 @@
+package kahootgui;
+
+public class Main {
+
+ public static void main(String[] args) {
+ App.main(args);
+ }
+
+}
diff --git a/src/main/java/kahootgui/Questions.java b/src/main/java/kahootgui/Questions.java
new file mode 100644
index 0000000..44bbe34
--- /dev/null
+++ b/src/main/java/kahootgui/Questions.java
@@ -0,0 +1,25 @@
+package kahootgui;
+
+public class Questions {
+
+ private String question;
+ private String[] answers;
+
+ public Questions(String question, String[] answers) {
+ this.question = question;
+ this.answers = answers;
+ }
+
+ public String correctAnswer() {
+ return this.answers[answers.length - 1];
+ }
+
+ public String getQuestion() {
+ return question;
+ }
+
+ public String[] getAnswers() {
+ return answers;
+ }
+
+}
diff --git a/src/main/resources/META-INF/MANIFEST.MF b/src/main/resources/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..69fbd7c
--- /dev/null
+++ b/src/main/resources/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Main-Class: kahootgui.Main
+
diff --git a/src/main/resources/kahootgui/images/list.png b/src/main/resources/kahootgui/images/list.png
new file mode 100644
index 0000000..abdde73
--- /dev/null
+++ b/src/main/resources/kahootgui/images/list.png
Binary files differ
diff --git a/src/main/resources/kahootgui/images/logo.png b/src/main/resources/kahootgui/images/logo.png
new file mode 100644
index 0000000..ddef2cf
--- /dev/null
+++ b/src/main/resources/kahootgui/images/logo.png
Binary files differ
diff --git a/src/main/resources/kahootgui/images/search.png b/src/main/resources/kahootgui/images/search.png
new file mode 100644
index 0000000..00400c6
--- /dev/null
+++ b/src/main/resources/kahootgui/images/search.png
Binary files differ
diff --git a/src/main/resources/kahootgui/main.fxml b/src/main/resources/kahootgui/main.fxml
new file mode 100644
index 0000000..1bae894
--- /dev/null
+++ b/src/main/resources/kahootgui/main.fxml
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.Cursor?>
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.control.RadioButton?>
+<?import javafx.scene.control.Separator?>
+<?import javafx.scene.control.TextField?>
+<?import javafx.scene.control.ToggleGroup?>
+<?import javafx.scene.effect.DropShadow?>
+<?import javafx.scene.image.Image?>
+<?import javafx.scene.image.ImageView?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.text.Font?>
+<?import javafx.scene.text.Text?>
+
+
+<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="460.0" prefWidth="747.0" style="-fx-background-color: #F4F7FB;" xmlns="http://javafx.com/javafx/10.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="kahootgui.Controller">
+ <children>
+ <AnchorPane layoutX="200.0" prefHeight="68.0" prefWidth="548.0" style="-fx-background-color: #fff;">
+ <effect>
+ <DropShadow color="#0000001f" />
+ </effect>
+ <children>
+ <ImageView fitHeight="53.0" fitWidth="43.0" layoutX="491.0" layoutY="13.0" pickOnBounds="true" preserveRatio="true" rotate="53.7">
+ <image>
+ <Image url="@images/search.png" />
+ </image>
+ </ImageView>
+ <TextField focusTraversable="false" layoutX="327.0" layoutY="20.0" prefHeight="29.0" prefWidth="155.0" promptText="Поиск в программе" style="-fx-background-color: #fff; -fx-border-color: #fff;">
+ <font>
+ <Font name="Montserrat Regular" size="13.0" />
+ </font>
+ </TextField>
+ <ImageView fitHeight="69.0" fitWidth="60.0" layoutX="24.0" layoutY="5.0" pickOnBounds="true" preserveRatio="true">
+ <image>
+ <Image url="@images/list.png" />
+ </image>
+ </ImageView>
+ </children>
+ </AnchorPane>
+ <AnchorPane prefHeight="460.0" prefWidth="200.0" style="-fx-background-color: #fff;">
+ <effect>
+ <DropShadow color="#00000040" />
+ </effect>
+ <children>
+ <Button layoutX="14.0" layoutY="130.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-color: #ccc; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Тесты по Java">
+ <font>
+ <Font name="Montserrat Regular" size="13.0" />
+ </font>
+ <cursor>
+ <Cursor fx:constant="HAND" />
+ </cursor>
+ </Button>
+ <ImageView fitHeight="97.0" fitWidth="82.0" layoutX="14.0" layoutY="15.0" pickOnBounds="true" preserveRatio="true">
+ <image>
+ <Image url="@images/logo.png" />
+ </image>
+ </ImageView>
+ <Text fill="#b2b2b2" layoutX="99.0" layoutY="75.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Программа с тестами" textAlignment="CENTER" wrappingWidth="82.00000447034836">
+ <font>
+ <Font name="Montserrat Bold" size="11.0" />
+ </font>
+ </Text>
+ <Text fill="#3c3c3c" layoutX="107.0" layoutY="52.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Testify">
+ <font>
+ <Font name="Panton Black Caps" size="17.0" />
+ </font>
+ </Text>
+ <Separator focusTraversable="false" layoutX="14.0" layoutY="110.0" prefHeight="3.0" prefWidth="175.0" style="-fx-background-color: #ccc; -fx-border-style: solid; -fx-border-color: #333;">
+ <opaqueInsets>
+ <Insets />
+ </opaqueInsets>
+ </Separator>
+ <Button layoutX="14.0" layoutY="169.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-color: #ccc; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Тесты по C#">
+ <font>
+ <Font name="Montserrat Regular" size="13.0" />
+ </font>
+ <cursor>
+ <Cursor fx:constant="HAND" />
+ </cursor>
+ </Button>
+ <Button layoutX="14.0" layoutY="209.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-color: #ccc; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Тесты по C++">
+ <font>
+ <Font name="Montserrat Regular" size="13.0" />
+ </font>
+ <cursor>
+ <Cursor fx:constant="HAND" />
+ </cursor>
+ </Button>
+ <Button layoutX="14.0" layoutY="252.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-color: #ccc; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Тесты по Python">
+ <font>
+ <Font name="Montserrat Regular" size="13.0" />
+ </font>
+ <cursor>
+ <Cursor fx:constant="HAND" />
+ </cursor>
+ </Button>
+ <Button layoutX="14.0" layoutY="294.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-color: #ccc; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Тесты по JS">
+ <font>
+ <Font name="Montserrat Regular" size="13.0" />
+ </font>
+ <cursor>
+ <Cursor fx:constant="HAND" />
+ </cursor>
+ </Button>
+ <Button layoutX="14.0" layoutY="410.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #f7746a; -fx-border-color: #f7746a; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Закрыть программу" textFill="WHITE">
+ <font>
+ <Font name="Montserrat Regular" size="13.0" />
+ </font>
+ <cursor>
+ <Cursor fx:constant="HAND" />
+ </cursor>
+ </Button>
+ <Separator focusTraversable="false" layoutX="14.0" layoutY="396.0" prefHeight="3.0" prefWidth="175.0" style="-fx-background-color: #fafafa; -fx-border-style: solid; -fx-border-color: #ccc; -fx-border-width: 0;">
+ <opaqueInsets>
+ <Insets />
+ </opaqueInsets>
+ </Separator>
+ </children>
+ </AnchorPane>
+ <Text fill="#434343" layoutX="313.0" layoutY="116.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Тесты по языку Java">
+ <font>
+ <Font name="Montserrat Bold" size="29.0" />
+ </font>
+ </Text>
+ <RadioButton fx:id="radio_btn_1" layoutX="237.0" layoutY="198.0" mnemonicParsing="false" text="Console.Write()" textFill="#5e5e5e">
+ <font>
+ <Font name="Montserrat Regular" size="13.0" />
+ </font>
+ <toggleGroup>
+ <ToggleGroup fx:id="answers" />
+ </toggleGroup>
+ </RadioButton>
+ <Text fx:id="question_text" fill="#727272" layoutX="237.0" layoutY="159.0" strokeType="OUTSIDE" strokeWidth="0.0" text="В каком из вариантов представлен корректный формат вывода информации на экран?" wrappingWidth="494.8199462890625">
+ <font>
+ <Font name="Montserrat Regular" size="14.0" />
+ </font>
+ </Text>
+ <RadioButton fx:id="radio_btn_2" layoutX="237.0" layoutY="230.0" mnemonicParsing="false" text="System.out.println()" textFill="#5e5e5e" toggleGroup="$answers">
+ <font>
+ <Font name="Montserrat Regular" size="13.0" />
+ </font>
+ </RadioButton>
+ <RadioButton fx:id="radio_btn_3" layoutX="237.0" layoutY="263.0" mnemonicParsing="false" text="console.log()" textFill="#5e5e5e" toggleGroup="$answers">
+ <font>
+ <Font name="Montserrat Regular" size="13.0" />
+ </font>
+ </RadioButton>
+ <RadioButton fx:id="radio_btn_4" layoutX="237.0" layoutY="299.0" mnemonicParsing="false" text="print()" textFill="#5e5e5e" toggleGroup="$answers">
+ <font>
+ <Font name="Montserrat Regular" size="13.0" />
+ </font>
+ </RadioButton>
+ <Button fx:id="answerBtn" layoutX="387.0" layoutY="384.0" mnemonicParsing="false" prefHeight="29.0" prefWidth="175.0" style="-fx-background-color: #f7746a; -fx-border-color: #f7746a; -fx-border-radius: 5px;" stylesheets="@styles/main.css" text="Ответить" textFill="WHITE">
+ <font>
+ <Font name="Montserrat Regular" size="13.0" />
+ </font>
+ <cursor>
+ <Cursor fx:constant="HAND" />
+ </cursor>
+ </Button>
+ </children>
+</AnchorPane>
diff --git a/src/main/resources/kahootgui/styles/main.css b/src/main/resources/kahootgui/styles/main.css
new file mode 100644
index 0000000..90a7c9f
--- /dev/null
+++ b/src/main/resources/kahootgui/styles/main.css
@@ -0,0 +1,10 @@
+.button:hover {
+ -fx-background-color: #383838!important;
+ -fx-border-color: #383838!important;
+ -fx-text-fill: #fff!important;
+}
+
+.button:pressed {
+ -fx-scale-y: 0.95;
+ -fx-scale-x: 0.95;
+} \ No newline at end of file