求一个简单又有趣的JAVA小游戏代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求一个简单又有趣的JAVA小游戏代码相关的知识,希望对你有一定的参考价值。
最近想学JAVA,但因为没有基础,所以感觉开始的课程很枯燥
所以想找个简单的JAVA小游戏的代码,自己重新TYPE一下,增加点兴趣
要简单的,因为我还停留在HelloWorld的水平
要有趣的,为了增加兴趣嘛
谢谢
具体如下:
连连看的小源码
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; //
分别记录两次62616964757a686964616fe59b9ee7ad9431333335326239被选中的按钮
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;//消除方法控制
代码(code)是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。
对于字符和Unicode数据的位模式的定义,此模式代表特定字母、数字或符号(例如 0x20 代表一个空格,而 0x74 代表字符“t”)。一些数据类型每个字符使用一个字节;每个字节可以具有 256 个不同的位模式中的一个模式。
在计算机中,字符由不同的位模式(ON 或 OFF)表示。每个字节有 8 位,这 8 位可以有 256 种不同的 ON 和 OFF 组合模式。对于使用 1 个字节存储每个字符的程序,通过给每个位模式指派字符可表示最多 256 个不同的字符。2 个字节有 16 位,这 16 位可以有 65,536 种唯一的 ON 和 OFF 组合模式。使用 2 个字节表示每个字符的程序可表示最多 65,536 个字符。
单字节代码页是字符定义,这些字符映射到每个字节可能有的 256 种位模式中的每一种。代码页定义大小写字符、数字、符号以及 !、@、#、% 等特殊字符的位模式。每种欧洲语言(如德语和西班牙语)都有各自的单字节代码页。
虽然用于表示 A 到 Z 拉丁字母表字符的位模式在所有的代码页中都相同,但用于表示重音字符(如"é"和"á")的位模式在不同的代码页中却不同。如果在运行不同代码页的计算机间交换数据,必须将所有字符数据由发送计算机的代码页转换为接收计算机的代码页。如果源数据中的扩展字符在接收计算机的代码页中未定义,那么数据将丢失。
如果某个数据库为来自许多不同国家的客户端提供服务,则很难为该数据库选择这样一种代码页,使其包括所有客户端计算机所需的全部扩展字符。而且,在代码页间不停地转换需要花费大量的处理时间。
参考技术A 那你就自己做个猜数字好了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 (shu>num)
System.out.println("输入的数大了,输小点的!");
else if (shu<num)
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;
本回答被提问者采纳 参考技术B import java.util.Scanner;
import java.util.Random;
public class Fangfa
static int sum,sum1=0;
public static void main(String [] args)
int a=1,b=1,c=1;
int k=0,m=1;
int money =5000;
int zhu =0;
boolean flag = true;
Random rand = new Random();
Scanner input = new Scanner(System.in);
while(m==1)
while(flag)
System.out.println("掷色子开始!");
System.out.println("请下注 注:下注金额只能是50的倍数且不能超过1000");
zhu=input.nextInt();
if(zhu%50==0&&zhu<=1000&&zhu<=money)
System.out.println("下注成功");
System.out.println("买大请输入数字1,买小输入数字2");
k=input.nextInt();
a= rand.nextInt(6)+1;
b= rand.nextInt(6)+1;
c= rand.nextInt(6)+1;
sum=a+b+c;
if(k==1)
if(sum>9)
money+=zhu;
System.out.println("恭喜您猜对了,骰子点数为"+sum+"结果是大"+"余额为"+money);
else
money-=zhu;
System.out.println("很遗憾,骰子点数为"+sum+"结果是小"+"余额为"+money);
if(k==2)
if(sum<=9)
money+=zhu;
System.out.println("恭喜您猜对了,骰子点数为"+sum+"结果是小"+"余额为"+money);
else
money-=zhu;
System.out.println("很遗憾,骰子点数为"+sum+"结果是大"+"余额为"+money);
flag= false;
System.out.println("继续请按1,退出请按任意键");
m=input.nextInt();
if(m==1)
flag=true;
System.out.println("您选择的是继续");
else
flag=false;
System.out.println("欢迎您下次再来玩");
else
System.out.println("下注失败"+"余额为"+money);
参考技术C 连连看的小源码
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;j<7;j++ )
if (grid[x0][j]==0) //判断第一个按钮同行哪个按钮为空
if (y>j) //如果第二个按钮的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 (y<j) //如果第二个按钮的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 (x0<x)
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 (x0>x)
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;i<8;i++ ) //列
if (grid[i][y0]==0)
if (x>i)
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)
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 (y0<y)
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 (y0>y)
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 (y0>j) //第一按钮同行空按钮在左边
for (i=y0-1;i>=j ;i-- ) //判断第一按钮同左侧空按钮之间有没按钮
if (grid[x0][i]!=0)
k=0;
break;
else k=2; //K=2说明通过了第二次验证
if (y0<j) //第一按钮同行空按钮在与第二按钮之间
for (i=y0+1;i<=j ;i++)
if (grid[x0][i]!=0)
k=0;
break;
else k=2;
public void rowPassOne()
if (x0>i)
for (j=x0-1;j>=i ;j-- )
if (grid[j][y0]!=0)
k=0;
break;
else k=2;
if (x0<i)
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 参考技术D 停留在HelloWorld的水平
这个就比较难了 你还是你弄弄数组或者list各种排序问题,比较一下效率(可以数据量大点)或者比如 输入两数字 比较大小 然后计算两数字之间的偶数和之类的吧
适合初学者的Python小游戏开发,不仅有趣还能巩固自己所学知识
很多人想学Python程序设计或者已经了解过一点Python程序设计基础,却没办法开发出一个项目。
今天,通过演示一个简单的控制台小游戏制作,手把手教你如何用Python编写一个游戏程序,即便你是个新手,也完全可以跟着操作。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
控制台的井字棋游戏,效果如下图所示。
既然是控制台游戏,我们欢迎界面就不做的花里胡哨的了。
1、首先我们先创建一个欢迎界面(界面如下)
其实就是在屏幕上输出下面格式的内容
我们可以使用pycharm、IDLE、sublime等开发工具来帮助我们开发,首先我们先创建一个game.py文件,打开文件,输入如下的代码:
确认玩家选择哪种标记
3、确认玩家还是电脑先手
这里采用了random模块,来随机确定玩家先手还是电脑先手。
原理:我们产生一个从0到1的随机整数,如果是0就是电脑先手,如果非0就是玩家先手。
4、接下来主要的游戏逻辑部分的确定,输赢判断的逻辑。
我们先把游戏的步骤给大家分析清楚了。
- 首先输出欢迎界面,进入游戏循环
- 玩家选择符号,同时确认电脑采用的符号
- 随机选择先手玩家
- 进入比赛循环,比赛循环主要是轮流下棋
5、游戏的运行逻辑
电脑与玩家轮流下棋,每次下棋都要判断要下的位置是否已经有棋了,并且下完后判断是否产生了进行输赢的判断。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
以上是关于求一个简单又有趣的JAVA小游戏代码的主要内容,如果未能解决你的问题,请参考以下文章