大二java课程设计小游戏,Java扫雷游戏设计
大家好,今天小编来为大家解答大二java课程设计小游戏这个问题,Java扫雷游戏设计很多人还不知道,现在让我们一起来看看吧!
java做一些小游戏需要学什么
Java做这些小游戏,可以使用下面几种Java自带的图形界面框架
Awt适合内存较小,配置较低的嵌入式系统等,组件较少,性能好,资源消耗低.
Swing适合PC等,组件较丰富,内存占用较大,但是跨平台性优越
JavaFX这个是比较强大的框架了,组件比Swing更丰富,比如添加了日期选择组件, WebView组件,还支持3D和动画.并且多多媒体支持良好.但是相关资料比Swing等少
既然学过Java Web那么对网页编程还是有了解吧, HTML+CSS+JS也可以开发出小游戏,浏览器可以显示,放入JavaFX的WebView组件也可以显示出来
推荐使用JavaFX或者 Web,因为这两者都很好做到了分离. JavaFX也可以分离出FXML文件,CSS文件,Java文件.当然也可以采用最稳妥的Swing来开发,毕竟Swing的图书教程很多.
推荐书籍
<Java 2D游戏编程入门><Java游戏编程原理与实践教程>
<JavaFX游戏程式设计第三版>
其实游戏算法都一样,在Swing上好了弄透彻了,也可以轻松移植到JavaFX或者网页上
java编程 设计如下图所示的窗口,完成猜数小游戏的设计。
界面不是完全一致,但是可行。
package ex1;
import java.util.Scanner;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class WindowButton extends JFrame implements ActionListener
{
private static final long serialVersionUID= 1L;
int number;
JTextField inputNumber;
JLabel feedBack;
JButton buttonGetNumber,buttonEnter;
WindowButton(String s)
{
super(s);
buttonGetNumber= new JButton("得到一个新的随机数");
feedBack= new JLabel("无反馈信息",JLabel.CENTER);
feedBack.setBackground(Color.red);
inputNumber= new JTextField("0",5);
buttonEnter= new JButton("确定");
buttonEnter.addActionListener(WindowButton.this);
//code 1:按钮buttonEnter增加ActionEvent事件监视器,监视器为当前窗口
buttonGetNumber.addActionListener(WindowButton.this);
//code 2:按钮buttonGetNumber增加ActionEvent事件监视器,监视器为当前窗口
Box boxH1= Box.createHorizontalBox();
boxH1.add(new JLabel("获取1-100之间的随机数:"));
boxH1.add(buttonGetNumber);
Box boxH2= Box.createHorizontalBox();
boxH2.add(new JLabel("输入您的猜测:"));
boxH2.add(inputNumber);
Box boxH3= Box.createHorizontalBox();
boxH3.add(new JLabel("单击确定按钮:"));
boxH3.add(buttonEnter);
Box boxH4= Box.createHorizontalBox();
boxH4.add(new JLabel("反馈信息:"));
boxH4.add(feedBack);
Box baseBox= Box.createVerticalBox();
baseBox.add(boxH1);
baseBox.add(boxH2);
baseBox.add(boxH3);
baseBox.add(boxH4);
Container con= getContentPane();
con.setLayout(new FlowLayout());
con.add(baseBox);
con.validate();
setBounds(230,225,400,200);
setVisible(true);
validate();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()== buttonGetNumber)//code 3:判断事件是否是buttonGetNumber
number=(int)(Math.random()*100)+1;
else if(e.getSource()== buttonEnter)//code 4:判断事件是否是buttonEnter
{
int guess= 0;
try{
guess= Integer.parseInt(inputNumber.getText());
//code 5:返回inputNumber中的文本
if(guess== number)
{
feedBack.setText("猜对了~");
//code 6:feedBack设置提示文本:"猜对了"
}
else if(guess> number)
{
feedBack.setText("猜大了~");
inputNumber.setText(null);
}
else if(guess< number)
{
feedBack.setText("猜小了~");
inputNumber.setText(null);
}
}
catch(NumberFormatException event)
{
feedBack.setText("请输入数字字符");
//code 7:feedBack设置提示文本:"请输入数字字符"
}
}
}
}
public class GuessNumberGame{
public static void main(String[] args){
new WindowButton("猜数子小游戏");
}
}
java小游戏
按照题目要求,人拿完火柴后计算机自动拿火柴,判断胜利者。鼠标点击ok或者键盘按enter键即可提交人拿的火柴个数。图形界面如下,
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Random;
import javax.swing.JOptionPane;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
public class game extends javax.swing.JFrame implements ActionListener{
private JPanel frame;
private JTextField pwd;
private JTextField jLabel1;
private JTextField jLabel2;
private JButton bntOk;
private JLabel l1;
private JLabel l2;
private JLabel l3;
int total;
public static void main(String[] args)
{
game ff=new game();
}
public game(){
initGUI();
Random r=new Random();
total=r.nextInt(51);
while(total<20){
total=r.nextInt(51);
}
jLabel2.setText(String.valueOf(total));
this.setSize(500, 500);
this.setLocation(300, 400);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getRootPane().setDefaultButton(bntOk);
bntOk.addActionListener(this);
}
public void actionPerformed(java.awt.event.ActionEvent evt)
{
int a=Integer.parseInt(jLabel1.getText());
if((a>3)||(a==0)){
JOptionPane.showMessageDialog(game.this,"输入错误
请重新输入");
return;
}
total=total-a;
jLabel2.setText(String.valueOf(total));
if(total<=0){
JOptionPane.showMessageDialog(game.this,"恭喜你,胜利了!");
return;
}
Random r=new Random();
int b=r.nextInt(4);
while(b==0)
b=r.nextInt(4);
pwd.setText(String.valueOf(b));
total=total-b;
jLabel2.setText(String.valueOf(total));
if(total<=0){
JOptionPane.showMessageDialog(game.this,"很遗憾,你输了!");
}
}
private void initGUI(){
frame=new JPanel();
getContentPane().add(frame, BorderLayout.CENTER);
frame.setLayout(null);
bntOk=new JButton();
bntOk.setText("OK");
bntOk.setBounds(150, 200, 66, 30);
frame.add(bntOk);
jLabel2= new JTextField();
jLabel2.setBounds(150, 50, 100, 50);
frame.add(jLabel2);
l1=new JLabel();
l1.setText("火柴数量");
l1.setBounds(90, 50, 100, 50);
frame.add(l1);
jLabel1= new JTextField();
jLabel1.setText("");
jLabel1.setBounds(200,149, 77, 22);
frame.add(jLabel1);
l2=new JLabel();
l2.setText("我拿火柴");
l2.setBounds(100, 149, 77, 22);
frame.add(l2);
l3=new JLabel();
l3.setText("对方拿火柴");
l3.setBounds(100, 249, 77, 22);
frame.add(l3);
pwd= new JTextField();
pwd.setBounds(200, 249, 77, 22);
frame.add(pwd);
bntOk.addMouseListener(new MouseAdapter()
{
@Override
public void mouseClicked(MouseEvent e1){
int a=Integer.parseInt(jLabel1.getText());
if((a>3)||(a==0)){
JOptionPane.showMessageDialog(game.this,"输入错误
请重新输入");
return;
}
total=total-a;
jLabel2.setText(String.valueOf(total));
if(total<=0){
jLabel2.setText("0");
JOptionPane.showMessageDialog(game.this,"恭喜你,胜利了!");
return;
}
Random r=new Random();
int b=r.nextInt(4);
while(b==0)
b=r.nextInt(4);
pwd.setText(String.valueOf(b));
total=total-b;
jLabel2.setText(String.valueOf(total));
if(total<=0){
JOptionPane.showMessageDialog(game.this,"很遗憾,你输了!");
}
}
}
);
}
}
好了,关于大二java课程设计小游戏和Java扫雷游戏设计的问题到这里结束啦,希望可以解决您的问题哈!