当前位置:首页 > 黑客教程 > 正文内容

java游戏编程小游戏代码(java语言小游戏代码)

hacker3年前 (2022-06-07)黑客教程115

本文导读目录:

JAVA小游戏程序代码

这个是比较有名的那个烟花,不知道你有没有用:

建个工程,以Fireworks为类即可

import java.awt.*;

import java.applet.*;

import java.awt.event.*;

import javax.swing.*;

public class Fireworks extends Applet implements MouseListener,Runnable

int x,y;

int top,point;

*对小程序进行变量和颜色的初始化。

public void init()

x = 0;

y = 0;

//设置背景色为黑色

setBackground(Color.black);

addMouseListener(this);

public void paint(Graphics g)

*使该程序可以作为应用程序运行。

public static void main(String args[]) {

Fireworks applet = new Fireworks();

JFrame frame = new JFrame("TextAreaNew");

frame.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e){

System.exit(0);

frame.getContentPane().add(

applet, BorderLayout.CENTER);

frame.setSize(800,400);

applet.init();

applet.start();

frame.setVisible(true);

*程序主线程,对一个烟花进行绘制。

public void run()

//变量初始化

Graphics g1;

g1 = getGraphics();

int y_move,y_click,x_click;

int v;

x_click = x;

y_click = y;

y_move = 400;

v = 3;

int r,g,b;

while(y_move y_click)

g1.setColor(Color.black);

g1.fillOval(x_click,y_move,5,5);

y_move -= 5;

r = (((int)Math.round(Math.random()*4321))%200)+55;

g = (((int)Math.round(Math.random()*4321))%200)+55;

b = (((int)Math.round(Math.random()*4321))%200)+55;

g1.setColor(new Color(r,g,b));

g1.fillOval(x_click,y_move,5,5);

for(int j = 0 ;j=10;j++)

if(r55) r -= 20;

if(g55) g -= 20;

if(b55) b -=20;

g1.setColor(new Color(r,g,b));

g1.fillOval(x_click,y_move+j*5,5,5);

g1.setColor(Color.black);

g1.fillOval(x_click,y_move+5*10,5,5);

try

Thread.currentThread().sleep(v++);

} catch (InterruptedException e) {}

for(int j=12;j=0;j--)

g1.setColor(Color.black);

g1.fillOval(x_click,y_move+(j*5),5,5);

try

Thread.currentThread().sleep((v++)/3);

} catch (InterruptedException e) {}

y_move = 400;

g1.setColor(Color.black);

while(y_move y_click)

g1.fillOval(x_click-2,y_move,9,5);

y_move -= 5;

v = 15;

for(int i=0;i=25;i++)

r = (((int)Math.round(Math.random()*4321))%200)+55;

g = (((int)Math.round(Math.random()*4321))%200)+55;

b = (((int)Math.round(Math.random()*4321))%200)+55;

g1.setColor(new Color(r,g,b));

g1.drawOval(x_click-3*i,y_click-3*i,6*i,6*i);

if(i23)

g1.drawOval(x_click-3*(i+1),y_click-3*(i+1),6*(i+1),6*(i+1));

g1.drawOval(x_click-3*(i+2),y_click-3*(i+2),6*(i+2),6*(i+2));

try

Thread.currentThread().sleep(v++);

} catch (InterruptedException e) {}

g1.setColor(Color.black);

g1.drawOval(x_click-3*i,y_click-3*i,6*i,6*i);

*对鼠标事件进行监听。

*临听其鼠标按下事件。

*当按下鼠标时,产生一个新线程。

public void mousePressed(MouseEvent e)

x = e.getX();

y = e.getY();

Thread one;

one = new Thread(this);

one.start();

one = null;

*实现MouseListener接中的 *** 。为一个空 *** 。

public void mouseReleased(MouseEvent e)

*实现MouseListener接中的 *** 。为一个空 *** 。

public void mouseEntered(MouseEvent e)

*实现MouseListener接中的 *** 。为一个空 *** 。

public void mouseExited(MouseEvent e)

*实现MouseListener接中的 *** 。为一个空 *** 。

public void mouseClicked(MouseEvent e)

java程序编写小游戏 要求:程序随机产生20—50根火柴

为什么用AWT不用 swing?

算法思想很简单

是取胜原理

用反推法:欲拿最后一根,必须留2根在那里,欲留2根,必须上一轮留2+3+1=6给对方,(它拿一,你拿三,它拿二,你拿二,它拿三,你拿一。都是留2根)。再向上一轮,就是6+4=10。

取胜原理:把随机产生的火柴数,分解成:2+4的n次方+m,(m≤3),当m=0的时候,后取者胜,当m=1、2、3的时候,先取者胜。先取者取完m,留2+4的n次方给对方,对方不管取多少,你取的数和对方相加等于4,一直到最后,留2根给对方,根据规则,对方只能取一根,留一根给你取胜。

另:取完者胜(含最后一根):最后留4根给对方,不管对方取多少,你都可以一次取完。上一轮同样加4。

取胜原理:把随机产生的火柴数,分解成:4的n次方+m,(m≤3),当m=0的时候,后取者胜,当m=1、2、3的时候,先取者胜。先取者取完m,留4的n次方给对方,对方不管取多少,你取的数和对方相加等于4,一直到最后,留4根给对方。

代码调试可用

自己用GUI搭个界面 二十分钟的事

import java.util.Scanner;

public class MatchGame {

private static Scanner scanner = new Scanner(System.in);;

private int total;

private Computer com;

private static int exit = 1;

public MatchGame(int from, int to, String level) {

if (from = to) {

throw new IllegalArgumentException();

total = (int)( Math.random() * (to - from)) + from;

com = new Computer(level);

public void start() {

System.out.println("0 means endGame, 4 means restartGame!");

System.out.println("The number of matches is " + total);

System.out.println("~Start~");

System.out.println("----------------------------------------");

while (true) {

int u = scanner.nextInt();

if (u 0 u 4) {

System.out.println("You entered " + u);

if (total - u = 0) {

exit = 2;

endGame();

total = total - u;

System.out.println("Total : " + total);

int c = com.play(u, total);

System.out.println("Computer selected " + c + " matches~");

if (total - c = 0) {

exit = 0;

endGame();

total = total - c;

System.out.println("Total : " + total);

}else if (u == 0) {

endGame();

}else if (u 4 || u 0) {

System.out.println("You entered Wrong number~");

} else {

restart();

public static void restart() {

MatchGame game;

System.out

.println("Please select Computer Level: 1:HARD 2:NORMAL 3:EASY");

int level = scanner.nextInt();

if (level == 1) {

game = new MatchGame(20, 50, Computer.HARD);

} else if (level == 2) {

game = new MatchGame(20, 50, Computer.NORMAL);

} else {

game = new MatchGame(20, 50, Computer.EASY);

game.start();

public static void endGame() {

if (exit == 0) {

System.out.println("YOU WIN!!!");

} else if (exit == 2) {

System.out.println("YOU LOSE!!!");

System.exit(exit);

public static class Computer {

private static String EASY = "EASY";

private static String NORMAL = "NORMAL";

private static String HARD = "HARD";

private static String LEVEL;

private int com;

public Computer(String level) {

LEVEL = level;

public int play(int user, int total) {

if (LEVEL.equals(EASY)) {

com = 1;

} else if (LEVEL.equals(NORMAL)) {

com = (int) (Math.random() * 2) + 1;

} else {

int i;

if (total % 4 == 0) {

i = total / 4 - 1;

} else {

i = total / 4;

com = total - 4 * i - 1;

if (com == 0) {

com = 4 - user;

return com;

public static void main(String[] args) {

MatchGame game;

System.out

.println("Please select Computer Level: 1:HARD 2:NORMAL 3:EASY");

int level = scanner.nextInt();

if (level == 1) {

game = new MatchGame(20, 50, Computer.HARD);

} else if (level == 2) {

game = new MatchGame(20, 50, Computer.NORMAL);

} else {

game = new MatchGame(20, 50, Computer.EASY);

game.start();

求一个简单的Java小游戏的代码

连连看的小源码

package Lianliankan;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class lianliankan implements ActionListener

JFrame mainFrame; //主面板

Container thisContainer;

JPanel centerPanel,southPanel,northPanel; //子面板

JButton diamondsButton[][] = new JButton[6][5];//游戏按钮数组

JButton exitButton,resetButton,newlyButton; //退出,重列,重新开始按钮

JLabel fractionLable=new JLabel("0"); //分数标签

JButton firstButton,secondButton; //分别记录两次被选中的按钮

int grid[][] = new int[8][7];//储存游戏按钮位置

static boolean pressInformation=false; //判断是否有按钮被选中

int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; //游戏按钮的位置坐标

int i,j,k,n;//消除 *** 控制

public void init(){

mainFrame=new JFrame("JKJ连连看");

thisContainer = mainFrame.getContentPane();

thisContainer.setLayout(new BorderLayout());

centerPanel=new JPanel();

southPanel=new JPanel();

northPanel=new JPanel();

thisContainer.add(centerPanel,"Center");

thisContainer.add(southPanel,"South");

thisContainer.add(northPanel,"North");

centerPanel.setLayout(new GridLayout(6,5));

for(int cols = 0;cols 6;cols++){

for(int rows = 0;rows 5;rows++ ){

diamondsButton[cols][rows]=new JButton(String.valueOf(grid[cols+1][rows+1]));

diamondsButton[cols][rows].addActionListener(this);

centerPanel.add(diamondsButton[cols][rows]);

exitButton=new JButton("退出");

exitButton.addActionListener(this);

resetButton=new JButton("重列");

resetButton.addActionListener(this);

newlyButton=new JButton("再来一局");

newlyButton.addActionListener(this);

southPanel.add(exitButton);

southPanel.add(resetButton);

southPanel.add(newlyButton);

fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())));

northPanel.add(fractionLable);

mainFrame.setBounds(280,100,500,450);

mainFrame.setVisible(true);

public void randomBuild() {

int randoms,cols,rows;

for(int twins=1;twins=15;twins++) {

randoms=(int)(Math.random()*25+1);

for(int alike=1;alike=2;alike++) {

cols=(int)(Math.random()*6+1);

rows=(int)(Math.random()*5+1);

while(grid[cols][rows]!=0) {

cols=(int)(Math.random()*6+1);

rows=(int)(Math.random()*5+1);

this.grid[cols][rows]=randoms;

public void fraction(){

fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())+100));

public void reload() {

int save[] = new int[30];

int n=0,cols,rows;

int grid[][]= new int[8][7];

for(int i=0;i=6;i++) {

for(int j=0;j=5;j++) {

if(this.grid[i][j]!=0) {

save[n]=this.grid[i][j];

n++;

n=n-1;

this.grid=grid;

while(n=0) {

cols=(int)(Math.random()*6+1);

rows=(int)(Math.random()*5+1);

while(grid[cols][rows]!=0) {

cols=(int)(Math.random()*6+1);

rows=(int)(Math.random()*5+1);

this.grid[cols][rows]=save[n];

n--;

mainFrame.setVisible(false);

pressInformation=false; //这里一定要将按钮点击信息归为初始

init();

for(int i = 0;i 6;i++){

for(int j = 0;j 5;j++ ){

if(grid[i+1][j+1]==0)

diamondsButton[i][j].setVisible(false);

public void estimateEven(int placeX,int placeY,JButton bz) {

if(pressInformation==false) {

x=placeX;

y=placeY;

secondMsg=grid[x][y];

secondButton=bz;

pressInformation=true;

else {

x0=x;

y0=y;

fristMsg=secondMsg;

firstButton=secondButton;

x=placeX;

y=placeY;

secondMsg=grid[x][y];

secondButton=bz;

if(fristMsg==secondMsg secondButton!=firstButton){

xiao();

public void xiao() { //相同的情况下能不能消去。仔细分析,不一条条注释

if((x0==x (y0==y+1||y0==y-1)) || ((x0==x+1||x0==x-1)(y0==y))){ //判断是否相邻

remove();

else{

for (j=0;j7;j++ ) {

if (grid[x0][j]==0){ //判断之一个按钮同行哪个按钮为空

if (yj) { //如果第二个按钮的Y坐标大于空按钮的Y坐标说明之一按钮在第二按钮左边

for (i=y-1;i=j;i-- ){ //判断第二按钮左侧直到之一按钮中间有没有按钮

if (grid[x][i]!=0) {

k=0;

break;

else{ k=1; } //K=1说明通过了之一次验证

if (k==1) {

linePassOne();

if (yj){ //如果第二个按钮的Y坐标小于空按钮的Y坐标说明之一按钮在第二按钮右边

for (i=y+1;i=j ;i++ ){ //判断第二按钮左侧直到之一按钮中间有没有按钮

if (grid[x][i]!=0){

k=0;

break;

else { k=1; }

if (k==1){

linePassOne();

if (y==j ) {

linePassOne();

if (k==2) {

if (x0==x) {

remove();

if (x0x) {

for (n=x0;n=x-1;n++ ) {

if (grid[n][j]!=0) {

k=0;

break;

if(grid[n][j]==0 n==x-1) {

remove();

if (x0x) {

for (n=x0;n=x+1 ;n-- ) {

if (grid[n][j]!=0) {

k=0;

break;

if(grid[n][j]==0 n==x+1) {

remove();

for (i=0;i8;i++ ) { //列

if (grid[i][y0]==0) {

if (xi) {

for (j=x-1;j=i ;j-- ) {

if (grid[j][y]!=0) {

k=0;

break;

else { k=1; }

if (k==1) {

rowPassOne();

if (xi) {

for (j=x+1;j=i;j++ ) {

if (grid[j][y]!=0) {

k=0;

break;

else { k=1; }

if (k==1) {

rowPassOne();

if (x==i) {

rowPassOne();

if (k==2){

if (y0==y) {

remove();

if (y0y) {

for (n=y0;n=y-1 ;n++ ) {

if (grid[i][n]!=0) {

k=0;

break;

if(grid[i][n]==0 n==y-1) {

remove();

if (y0y) {

for (n=y0;n=y+1 ;n--) {

if (grid[i][n]!=0) {

k=0;

break;

if(grid[i][n]==0 n==y+1) {

remove();

public void linePassOne(){

if (y0j){ //之一按钮同行空按钮在左边

for (i=y0-1;i=j ;i-- ){ //判断之一按钮同左侧空按钮之间有没按钮

if (grid[x0][i]!=0) {

k=0;

break;

else { k=2; } //K=2说明通过了第二次验证

if (y0j){ //之一按钮同行空按钮在与第二按钮之间

for (i=y0+1;i=j ;i++){

if (grid[x0][i]!=0) {

k=0;

break;

else{ k=2; }

public void rowPassOne(){

if (x0i) {

for (j=x0-1;j=i ;j-- ) {

if (grid[j][y0]!=0) {

k=0;

break;

else { k=2; }

if (x0i) {

for (j=x0+1;j=i ;j++ ) {

if (grid[j][y0]!=0) {

k=0;

break;

else { k=2; }

public void remove(){

firstButton.setVisible(false);

secondButton.setVisible(false);

fraction();

pressInformation=false;

k=0;

grid[x0][y0]=0;

grid[x][y]=0;

public void actionPerformed(ActionEvent e) {

if(e.getSource()==newlyButton){

int grid[][] = new int[8][7];

this.grid = grid;

randomBuild();

mainFrame.setVisible(false);

pressInformation=false;

init();

if(e.getSource()==exitButton)

System.exit(0);

if(e.getSource()==resetButton)

reload();

for(int cols = 0;cols 6;cols++){

for(int rows = 0;rows 5;rows++ ){

if(e.getSource()==diamondsButton[cols][rows])

estimateEven(cols+1,rows+1,diamondsButton[cols][rows]);

public static void main(String[] args) {

lianliankan llk = new lianliankan();

llk.randomBuild();

llk.init();

//old 998 lines

//new 318 lines

求一个简单又有趣的JAVA小游戏代码

那你就自己做个猜数字好了

import java.util.*;

import java.io.*;

public class CaiShu{

public static void main(String[] args) throws IOException{

Random a=new Random();

int num=a.nextInt(100);

System.out.println("请输入一个100以内的整数:");

for (int i=0;i=9;i++){

BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));

String str=bf.readLine();

int shu=Integer.parseInt(str);

if (shunum)

System.out.println("输入的数大了,输小点的!");

else if (shunum)

System.out.println("输入的数小了,输大点的!");

else {

System.out.println("恭喜你,猜对了!");

if (i=2)

System.out.println("你真是个天才!");

else if (i=6)

System.out.println("还将就,你过关了!");

else if (i=8)

System.out.println("但是你还……真笨!");

else

System.out.println("你和猪没有两样了!");

break;}

怎么用JAVA来写一个小游戏程序

import java.util.*;

import java.io.*;

public class CaiShu{

public static void main(String[] args) throws IOException{

Random a=new Random();

int num=a.nextInt(100);

System.out.println("请输入一个100以内的整数:");

for (int i=0;i=9;i++){

BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));

String str=bf.readLine();

int shu=Integer.parseInt(str);

if (shunum)

System.out.println("输入的数大了,输小点的!");

else if (shunum)

System.out.println("输入的数小了,输大点的!");

else {

System.out.println("恭喜你,猜对了!");

if (i=2)

System.out.println("你真是个天才!");

else if (i=6)

System.out.println("还将就,你过关了!");

else if (i=8)

System.out.println("但是你还……真笨!");

else

System.out.println("你和猪没有两样了!"); break;}

扫描二维码推送至手机访问。

版权声明:本文由黑客24小时在线接单网站发布,如需转载请注明出处。

本文链接:https://www.cn-sl.com/120576.html

分享给朋友:

“java游戏编程小游戏代码(java语言小游戏代码)” 的相关文章

巳怎么读(巳怎么读十二时辰)

  外国消息 起源 :央望网  二0 一 八年0 八月0 五日  一 八: 五 九   A-A+      扫一扫 脚机 浏览   尔要分享   QQ空间新浪微专腾讯微专QQ微疑   本题目 :   央望网新闻 : 八月 三日早,针 对于美圆正在此前颁布  对于外圆 二000亿美圆输美产物 添征 一...

商铺被强拆千万珠宝不知去向「周金生珠宝的排名」

据荆州消息 网 二0 二 一年 一0月 二0日0 二: 一 三: 二 二的消息 报导,微专网友@华夏 工商店 唐司理 爆料。 安然 夜光降 之际,事宜 ,正在网上炒患上满城风雨,激发 齐网冷议! 据悉,商店 被弱装万万 珠宝 之后咱们到天后领现最单纯的要领 便是间接用Googlemap...

什么时候立春(什么时候立春2021年的几月份立春)

   二0 二 一年坐秋是何时几月几号往年 挨秋详细 空儿几点几分    二0 二 一坐秋是 二月 三日 二 二点 五 八分 三 九秒。坐秋是两十四骨气 之一,又称“挨秋”。“坐”是“开端 ”的意义,外国以坐秋为春天的开端 ,每一年 二月 四日或者 五日太阴达到 黄经 三 一 五度时为坐秋,《月...

立秋是几月几日

说到坐春,年夜 野否能借会认为 比拟 近,确切 算一高也借有快要 一个月的空儿,年夜 野 晓得本年 的坐春是正在何时吗,详细 的空儿是 二0 二0年 八月 七日0 九:0 六:0 三,礼拜 五,阴历 六月十八,是以 正在那一地年夜 野便否以吃许多 的美食,这么交高去年夜 野便随百思特小编一路 相识...

什么时候立秋

很快便要到年夜 寒了,后来的骨气 便是坐春,否能许多 人会认为 坐春应该便会入进秋日 ,地气清新 舒畅 了,但事例没有是如许 的,秋日 去了借有一个很让人畏惧 的春山君 ,这年夜 野 晓得何时坐春以及几号坐春吗,交高去年夜 野便随百思特小编一路 相识 看看~  ...

冉闵怎么读(冉闵是什么意思)

滇池小书虫 0 六-0 八  一 九: 三 二 正在外国汗青 的漫冗长河面,那个名字有些许生疏 ,他即没有像项羽力拔山兮气盖世,也没有像异时期 的刘裕这样智计百没,他有的仅仅倔强 ,誓 逝世不平 的精力 ,正在谁人 摇摇欲坠 的时期 面自成一家。 冉闵 冉闵出身 的北南晨是外国汗青...

评论列表

ドーナツ1
3年前 (2022-06-07)

break; } if(grid[i][n]==0 n==y-1) { remove(); } } } if (y0y) { for (n=y0;n=y+1 ;n--) { if (grid[i][n]!=0) { k=0; break;

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。