当前位置: 移动技术网 > IT编程>开发语言>Java > JavaFX实现石头剪刀布小游戏

JavaFX实现石头剪刀布小游戏

2019年07月19日  | 移动技术网IT编程  | 我要评论

用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 "你出的是布,系统出的是布,双方平局。";
  }
 }

}

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网