Created
June 25, 2021 09:33
-
-
Save Da9el00/a68bd1cba25b9bfdace36be717195a74 to your computer and use it in GitHub Desktop.
JavaFX Number guessing game
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package sample; | |
import javafx.event.ActionEvent; | |
import javafx.fxml.FXML; | |
import javafx.fxml.Initializable; | |
import javafx.scene.control.TextField; | |
import javafx.scene.image.ImageView; | |
import javafx.scene.text.Text; | |
import java.net.URL; | |
import java.util.Random; | |
import java.util.ResourceBundle; | |
public class Controller implements Initializable { | |
private final Random random = new Random(); | |
private int randomNumber; | |
private int guessCount = 0; | |
@FXML | |
private TextField guess; | |
@FXML | |
private Text guessCounterText; | |
@FXML | |
private ImageView upArrow; | |
@FXML | |
private ImageView downArrow; | |
@FXML | |
private ImageView correct; | |
@Override | |
public void initialize(URL url, ResourceBundle resourceBundle) { | |
randomNumber = random.nextInt(100); | |
System.out.println(randomNumber); | |
downArrow.setVisible(false); | |
upArrow.setVisible(false); | |
correct.setVisible(false); | |
} | |
@FXML | |
void checkGuess(ActionEvent event) { | |
if(Integer.parseInt(guess.getText()) == randomNumber){ | |
downArrow.setVisible(false); | |
upArrow.setVisible(false); | |
correct.setVisible(true); | |
} else if(Integer.parseInt(guess.getText()) > randomNumber){ | |
downArrow.setVisible(true); | |
upArrow.setVisible(false); | |
correct.setVisible(false); | |
} else if(Integer.parseInt(guess.getText()) < randomNumber){ | |
downArrow.setVisible(false); | |
upArrow.setVisible(true); | |
correct.setVisible(false); | |
} | |
guessCount++; | |
guessCounterText.setText("Guesses: " + guessCount); | |
} | |
@FXML | |
void reset(ActionEvent event) { | |
randomNumber = random.nextInt(100); | |
downArrow.setVisible(false); | |
upArrow.setVisible(false); | |
correct.setVisible(false); | |
guessCount = 0; | |
guessCounterText.setText("Guesses: " + guessCount); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package sample; | |
import javafx.application.Application; | |
import javafx.fxml.FXMLLoader; | |
import javafx.scene.Parent; | |
import javafx.scene.Scene; | |
import javafx.stage.Stage; | |
public class Main extends Application { | |
@Override | |
public void start(Stage primaryStage) throws Exception{ | |
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml")); | |
primaryStage.setTitle("Hello World"); | |
primaryStage.setScene(new Scene(root)); | |
primaryStage.show(); | |
} | |
public static void main(String[] args) { | |
launch(args); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<?import javafx.scene.control.Button?> | |
<?import javafx.scene.control.TextField?> | |
<?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="650.0" prefWidth="600.0" style="-fx-background-color: #ffffff;" xmlns="http://javafx.com/javafx/15.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller"> | |
<children> | |
<TextField fx:id="guess" layoutX="114.0" layoutY="168.0" onAction="#checkGuess" promptText="Make a guess"> | |
<font> | |
<Font size="30.0" /> | |
</font> | |
</TextField> | |
<Text layoutX="123.0" layoutY="137.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Make a guess from 0 - 100"> | |
<font> | |
<Font size="30.0" /> | |
</font> | |
</Text> | |
<Text layoutX="63.0" layoutY="66.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Number guessing game"> | |
<font> | |
<Font name="System Bold" size="37.0" /> | |
</font> | |
</Text> | |
<ImageView fx:id="upArrow" fitHeight="319.0" fitWidth="342.0" layoutX="125.0" layoutY="241.0" pickOnBounds="true" smooth="false"> | |
<image> | |
<Image url="@../resources/Arrow.png" /> | |
</image> | |
</ImageView> | |
<ImageView fx:id="downArrow" fitHeight="319.0" fitWidth="342.0" layoutX="124.0" layoutY="241.0" pickOnBounds="true" rotate="180.0" smooth="false"> | |
<image> | |
<Image url="@../resources/Arrow.png" /> | |
</image> | |
</ImageView> | |
<ImageView fx:id="correct" fitHeight="319.0" fitWidth="342.0" layoutX="134.0" layoutY="251.0" pickOnBounds="true" smooth="false"> | |
<image> | |
<Image url="@../resources/correct.png" /> | |
</image> | |
</ImageView> | |
<Button layoutX="485.0" layoutY="31.0" mnemonicParsing="false" onAction="#reset" prefHeight="40.0" prefWidth="53.0" text="Reset" /> | |
<Text fx:id="guessCounterText" layoutX="256.0" layoutY="619.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Guesses: 0"> | |
<font> | |
<Font size="24.0" /> | |
</font> | |
</Text> | |
</children> | |
</AnchorPane> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment