欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaFX实现石头剪刀布小游戏

程序员文章站 2023-11-27 08:02:15
用javafx写一个石头剪刀布的小游戏,供大家参考,具体内容如下 课程上布置的作业,其实java很少用来写这种程序的 - gui界面部分 - 石头剪刀布的逻辑部分...

用javafx写一个石头剪刀布的小游戏,供大家参考,具体内容如下

课程上布置的作业,其实java很少用来写这种程序的

- gui界面部分
- 石头剪刀布的逻辑部分

书上教的是javafx,其实还有很多方法,书上说awt和swing基本上淘汰了,但事实上…

代码

myjavafx.java

package cn.homework;

import javafx.application.application;
import javafx.event.actionevent;
import javafx.event.eventhandler;
import javafx.geometry.pos;
import javafx.scene.scene;
import javafx.scene.control.button;
import javafx.scene.control.label;
import javafx.scene.layout.borderpane;
import javafx.scene.layout.gridpane;
import javafx.scene.image.image;
import javafx.scene.image.imageview;
import javafx.scene.layout.stackpane;
import javafx.scene.text.*;
import javafx.scene.text.font;
import javafx.stage.stage;

import java.awt.*;


public class myjavafx extends application {

 lablepane lablepane=new lablepane();
// string str1;
//
// public void setstr1(string str1) {
//  this.str1 = str1;
// }

 @override
 public void start(stage primarystage) throws exception {
  gridpane pane = new gridpane();
  pane.setalignment(pos.center);
  pane.sethgap(5);

  label label = new label("开始游戏:");
  label.setfont(font.font("times new roman", fontweight.bold, fontposture.italic, 30));
  pane.add(label, 0, 0);
  //布
  image image1 = new image("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1521291025265&di=a0bc9a448dfcaac150e064577e6dabfd&imgtype=0&src=http%3a%2f%2fimg1.ali213.net%2fshouyou%2fcover%2fc%2f48302.jpg");
  imageview imageview1 = new imageview(image1);
  imageview1.setfitheight(150);
  imageview1.setfitwidth(150);
  pane.add(imageview1, 0, 1);
  image1handerclass image1handerclass = new image1handerclass();
  button btok1 = new button("布");
  pane.add(btok1, 0, 2);
  btok1.setonaction(image1handerclass);
  //石头
  image image2 = new image("https://ss1.bdstatic.com/70cfvxsh_q1ynxgkpowk1hf6hhy/it/u=1419901674,657140521&fm=27&gp=0.jpg");
  imageview imageview2 = new imageview(image2);
  imageview2.setfitheight(150);
  imageview2.setfitwidth(150);
  pane.add(imageview2, 1, 1);
  image2handerclass image2handerclass = new image2handerclass();
  button btok2 = new button("石头");
  pane.add(btok2, 1, 2);
  btok2.setonaction(image2handerclass);
  //剪刀
  image image3 = new image("https://ss2.bdstatic.com/70cfvnsh_q1ynxgkpowk1hf6hhy/it/u=2460250897,3788214935&fm=27&gp=0.jpg");
  imageview imageview3 = new imageview(image3);
  imageview3.setfitheight(150);
  imageview3.setfitwidth(150);
  pane.add(imageview3, 2, 1);
  image3handerclass image3handerclass = new image3handerclass();
  button btok3 = new button("剪刀");
  pane.add(btok3, 2, 2);
  btok3.setonaction(image3handerclass);


  borderpane borderpane=new borderpane();
  borderpane.setcenter(pane);
  borderpane.setbottom(lablepane);
  borderpane.setalignment(pane,pos.center);


//  游戏结束
//  label label1 = new label("111");
//  label1.setfont(font.font("times new roman", fontweight.bold, fontposture.italic, 30));
//  pane.add(label1, 0, 3);

  pane.setstyle("-fx-background-color: #0effb8");

  scene scene = new scene(borderpane, 800, 500);
  primarystage.settitle("石头剪刀布");
  primarystage.setscene(scene);
  primarystage.show();
 }


 class image1handerclass implements eventhandler<actionevent> {

  //布2
  @override
  public void handle(actionevent event) {
   game game = new game();
   string str = game.playgame(2);
   //setstr1(str);
   lablepane.show(str);
   system.out.println(str);

  }
 }

 class image2handerclass implements eventhandler<actionevent> {

  //石头0
  @override
  public void handle(actionevent event) {
   game game = new game();
   string str = game.playgame(0);
   //setstr1(str);
   lablepane.show(str);
   system.out.println(str);
  }
 }

 class image3handerclass implements eventhandler<actionevent> {

  //剪刀1
  @override
  public void handle(actionevent event) {
   game game = new game();
   string str = game.playgame(1);
   //setstr1(str);
   lablepane.show(str);
   system.out.println(str);
  }
 }
 class lablepane extends stackpane{
  private label label=new label("结果");
  public lablepane(){
   getchildren().add(label);
   label.setfont(font.font("times new roman", fontweight.bold, fontposture.italic, 30));
  }
  public void show(string str){
   label.settext(str);
  }
 }

}

代码

game.java

package cn.homework;
import java.util.random;
import java.util.scanner;
public class game {
 public static void main(string []args){
  string result=playgame(0);
  system.out.println(result);
 }
 public static string playgame(int user){
  //用户输入
  //system.out.println("请输入您要出的:如果出石头请输入0 如果出剪刀请输入1 如果出布请输入2");
  //系统生成
  random xx = new random(); //声明随机数
  int number = xx.nextint(3); //赋值随机数给number
  //比较
  if(user==0 && number==0){
   return "你出的是石头,系统出的是石头,双方平局。";
  }
  else if(user==1 && number==0){
   return "你出的是剪刀,系统出的是石头,你输了。";
  }
  else if(user==2 && number==0){
   return "你出的是布,系统出的是石头,你赢了。";
  }
  else if(user==0 && number==1){
   return "你出的是石头,系统出的是剪刀,你赢了。";
  }
  else if(user==1 && number==1){
   return "你出的是石头,系统出的是石头,双方平局。";
  }
  else if(user==2 && number==1){
   return "你出的是布,系统出的是剪刀,你输了。";
  }
  else if(user==0 && number==2){
   return "你出的是石头,系统出的是布,你输了。";
  }
  else if(user==1 && number==2){
   return "你出的是剪刀,系统出的是布,你赢了。";
  }
  else{
   return "你出的是布,系统出的是布,双方平局。";
  }
 }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。