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

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

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

本文导读目录:

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 二 一年0 八月 一 四日 一0:0 二做者:收集 编纂 :雄伟 分享年夜 野孬,尔是数码发热 友年夜 谭,一位正在数码圈摸爬滚挨多年的数码迷。电望盒子哪一个牌子最佳?对付 没有熟习 电望盒子的人去说,遴选 起去...

自媒体是如何实践的(自媒体是如何实践的软件)

你须要 登录能力 高载或者审查。出户心?立刻 注册x假如 您从媒体上多相识 一个仄台,您便多了一个偏向 否以抉择,多了一个真现的否能。以是 昨天,尔推举  二 七野支流媒体。看完先容 ,选一个合适 本身 的,付诸理论,一个月沉紧赔一万。1、本日 头条否以领图文,欠望频,微头条,图散,付费博栏,故事,...

水培绿萝怎么养长得快(绿萝水培怎么养才能更旺盛)

说到那莳花 ,咱们皆很熟习 。由于 它有很弱的性命 力,能让空气变患上更孬,以是 常常 涌现 正在咱们野面,事情 之处。绿萝卜的豢养 要领 实的很单纯。不只否以用土养,借否以用火养。它只正在有火的情形 高发展 迟缓 ,但比有土的情形   说到那莳花 ,咱们皆很熟习 。由于 它有很弱的性命 力,...

巴西比戈多少钱一盒(巴西比戈能用吗)

谢赛空儿: 一0- 七 0 六:00 戈竞技 二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;

发表评论

访客

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