import javafx.application.Application;
import java.util.ArrayList;
import javafx.geometry.*;
import javafx.scene.Scene;
import javafx.scene.input.KeyCode;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.scene.text.*;
import javafx.scene.paint.Color;
import javafx.scene.image.*;
import javafx.scene.media.*;
import javafx.stage.Stage;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.animation.PathTransition;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.util.Duration;
import javax.swing.JOptionPane;
public class SupperzzelFirst extends Application {
int counts;
GridPane gridPane1 = new GridPane();
//创建开始和结束游戏按钮
Button button1 = new Button("开始游戏");
Button button2 = new Button("游戏结束");
TextField text1 = new TextField("400");
Image[] image = new Image[7];
int[] iNumber = new int[1000];
int[] jNumber = new int[1000];
int[] numbers3[] = new int[8][5];
boolean chosen = true;
int m = 0,n = 0;
int x1 = 0,y1 =0,x2 = 0,y2 = 0;
//创建两个图片对象数组,一存储正面,一个存储背面
ImageView[][] imageview = new ImageView[8][5];
ImageView[][] imageview5 = new ImageView[8][5];
Clock clock = new Clock();
Time time = new Time();
@Override
public void start(Stage primaryStage) {
BorderPane pane2 = new BorderPane();
BorderPane pane = new BorderPane();
Button btNS = new Button("开始游戏");
pane2.setTop(getGridPane3());
pane2.setCenter(btNS);
Scene newScene = new Scene(pane2);
Scene scene = new Scene(pane);
primaryStage.setTitle("对对碰游戏");
primaryStage.setScene(newScene);
btNS.setOnMousePressed(e -> {
primaryStage.setScene(scene);
});
pane.setTop(getGridPane());
pane.setCenter(getGridPane2());
initCountDown();
initClock();
initMouseEvent();
primaryStage.setTitle("对对碰游戏");
primaryStage.show();
}
public GridPane getGridPane(){
gridPane1.setHgap(10);
gridPane1.setPadding(new Insets(15,5,5,5));
gridPane1.setStyle("-fx-background-color:white");
gridPane1.add(new Label("时间:"),0,0);
gridPane1.add(new Label("分数:"),2,0);
gridPane1.add(text1,3,0);
text1.setAlignment(Pos.BOTTOM_RIGHT);
gridPane1.add(clock,13,0);
gridPane1.add(button1,15,0);
gridPane1.add(button2,16,0);
//-------------------------------------------------------------------------------
return gridPane1;
}
public GridPane getGridPane2(){
GridPane gridPane2 = new GridPane();
gridPane2.setPadding(new Insets(50,50,50,50));
//创建一个数组存储七个图片对象
image[0] = new Image("1.jpg");
image[1] = new Image("2.jpg");
image[2] = new Image("3.jpg");
image[3] = new Image("4.jpg");
image[4] = new Image("5.jpg");
image[5] = new Image("6.jpg");
image[6] = new Image("7.jpg");
//创建一个数组存储随机的20个随机数数组,由0-6个数产生
int[] numbers1 = new int[20];
for(int i = 0;i < 20;i++){
int randomNumber = (int)(Math.random() * 7);
numbers1[i] = randomNumber;
}
//输入两遍20个对象的数组进入另一个数组用于产生20对图像对象
int[] numbers2 = new int[40];
for(int j = 0;j < 40;j++){
if(j < 20){
numbers2[j] = numbers1[j];
}else{
numbers2[j] = numbers1[j - 20];
}
}
//此处用于数组的打乱-------------------------------------------
for(int k = 0;k < 10;k++){
for(int j = 0;j < 40;j++){
int n = (int)(Math.random() * 40);
int temp = numbers2[j];
numbers2[j] = numbers2[n];
numbers2[n] = temp;
}
}
//------------------------------------------------------------
//创建一个5*8的数组用于存储numbers2的数值
int r = 0;
for(int i = 0;i < 8;i++){
for(int j = 0;j < 5;j++){
numbers3[i][j] = numbers2[r];
r++;
}
}
//将40数字对象生成8*5的ImageView数组中去
int k = 0;
for(int i = 0;i < 8;i++){
for(int j = 0;j < 5;j++){
imageview5[i][j] = new ImageView(image[numbers2[k]]);
imageview5[i][j].setFitHeight(76);
imageview5[i][j].setFitWidth(76);
gridPane2.add(imageview5[i][j],i,j);
k++;
}
}
//将图片背面输入8*5的网格面板中
for(int i = 0;i < 8;i++){
for(int j = 0;j < 5;j++){
imageview[i][j] = new ImageView("haidao00.jpg");
imageview[i][j].setFitHeight(76);
imageview[i][j].setFitWidth(76);
gridPane2.add(imageview[i][j],i,j);
}
}
//设置图片的鼠标触发事件,点击是背面交换成正面,释放是背面交换成正面
gridPane2.setOnMousePressed(e -> {
int y = (int)e.getY();
int x = (int)e.getX();
storeIndex(getXIndex(x),getYIndex(y));
countNumber();
text1.setText(String.valueOf(400 - counts));
gridPane2.getChildren().removeAll(imageview[getXIndex(x)][getYIndex(y)]);
if(isCommon()){
if(iNumber[m - 2] != iNumber[m - 1] || jNumber[m - 2] != jNumber[m - 1]){
gridPane2.getChildren().
removeAll(imageview5[iNumber[m-2]][jNumber[m-2]],imageview5[iNumber[m-1]][jNumber[m-1]]);
numbers3[iNumber[m - 2]][jNumber[m - 2]] = 100;
numbers3[iNumber[m - 1]][jNumber[m - 1]] = 100;
m++;
n++;
chosen = false;
}
}
if(isNotCommon()){
gridPane2.add(imageview[iNumber[m-2]][jNumber[m-2]],iNumber[m-2],jNumber[m-2]);
}
});
gridPane2.setOnMouseReleased(e -> {
int y = (int)e.getY();
int x = (int)e.getX();
gridPane2.add(imageview[getXIndex(x)][getYIndex(y)],getXIndex(x),getYIndex(y));
countNumber();
text1.setText(String.valueOf(400 - counts));
});
return gridPane2;
}
public GridPane getGridPane3(){
GridPane bkGround = new GridPane();
int[] num1 = new int[40];
ImageView bkImage = new ImageView("00.jpg");
Text txt = new Text(" 翻面对对碰");
txt.setFont(Font.font("楷体",FontWeight.BOLD,36));
txt.setFill(new Color(Math.random(), Math.random(), Math.random(), Math.random()));
bkGround.add(txt,0,0);
bkGround.add(bkImage,0,1);
return bkGround;
}
public int getXIndex(int x){
int i = 0;
if(x >=56 && x < 132){
i = 0;
}else if(x >= 132 && x < 208){
i = 1;
}else if(x >= 208 && x < 284){
i = 2;
}else if(x >= 284 && x < 360){
i = 3;
}else if(x >= 360 && x < 436){
i = 4;
}else if(x >= 436 && x < 512){
i = 5;
}else if(x >= 512 && x < 588){
i = 6;
}else if(x >= 588 && x < 664){
i = 7;
}else{
System.out.println("你没有选中任何图标.");
}
return i;
}
public int getYIndex(int y){
int j = 0;
if(y >60 && y < 120){
j = 0;
}else if(y >= 120 && y < 196){
j = 1;
}else if(y >= 196 && y < 272){
j = 2;
}else if(y >= 272 && y < 348){
j = 3;
}else if(y >= 348 && y < 424){
j = 4;
}else{
System.out.println("你没有选中任何图标.");
}
return j;
}
public void initClock(){
//对时钟对象进行初始化设置
EventHandler<ActionEvent> eventHandler = e -> {
clock.setCurrentTime();
};
Timeline animation = new Timeline(
new KeyFrame(Duration.millis(1000),eventHandler));
animation.setCycleCount(Timeline.INDEFINITE);
animation.play();
}
public void countNumber(){
counts++;
}
public boolean isCommon(){
if(m > 1){
if(numbers3[iNumber[m - 2]][jNumber[m - 2]] == numbers3[iNumber[m - 1]][jNumber[m - 1]]){
chosen = true;
return true;
}else{
if(!chosen){
chosen = true;
return false;
}
}
}return false;
}
public boolean isNotCommon(){
if(m > 1){
if(numbers3[iNumber[m - 2]][jNumber[m - 2]] != numbers3[iNumber[m - 1]][jNumber[m -
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计 java游戏开发 小游戏 经典游戏 游戏源码 课程设计
资源推荐
资源详情
资源评论
收起资源包目录
一个简易的对对碰游戏软件,运用Java、Java FX技术.zip (14个子文件)
project_code_0719
src
SupperzzelFirst.java 10KB
2.jpg 8KB
TestShowRandomImage.java 2KB
6.jpg 7KB
1.jpg 8KB
Clock.java 3KB
5.jpg 7KB
短信息铃声-略萌简短短信提示音-铃声.mp3 19KB
3.jpg 8KB
Time.java 721B
7.jpg 8KB
4.jpg 8KB
haidao00.jpg 122KB
00.jpg 174KB
共 14 条
- 1
资源评论
辣椒种子
- 粉丝: 3321
- 资源: 5724
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab实现车牌识别程序,和论文,自己做的,做毕业设计的可以看看 .rar
- Windows系统下安装与配置Neo4j的步骤
- 基于matlab实现潮流计算和最优潮流计算的程序1,对毕业设计有一定用处.rar
- 基于大数据学习资源推荐系统的设计与实现(部署视频)-kaic.mp4
- 哈工大形式语言和自动机2022期末含答案
- Windows系统下安装与配置Neo4j的步骤
- 哈希算法(Hash Algorithm)是一种将任意长度的二进制数据映射为较短的、固定长度的二进制值的函数.txt
- Windows系统下安装与配置Neo4j的步骤
- 在二叉树或更复杂的树形结构中,先序输出叶结点.txt
- 列出所有祖先结点的概念通常与树形结构或图论中的节点相关.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功