JAVA代码
连连看java源代码
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;//游戏按钮数组
JButton exitButton,resetButton,newlyButton; //退出,重列,重新开始按钮
JLabel fractionLable=new JLabel(“0“); //分数标签
JButton firstButton,secondButton; //分别记录两次被选中的按钮
int grid = new int;//储存游戏按钮位置
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;
int n=0,cols,rows;
int grid= new int;
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说明通过了第一次验证
}
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
}
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
}
if (k==1) {
rowPassOne();
}
}
if (x《i) {
for (j=x+1;j《=i;j++ ) {
if (grid[j][y]!=0) {
k=0;
break;
}
else
}
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说明通过了第二次验证
}
}
if (y0《j){ //第一按钮同行空按钮在与第二按钮之间
for (i=y0+1;i《=j ;i++){
if (grid[x0][i]!=0) {
k=0;
break;
}
else
}
}
}
public void rowPassOne(){
if (x0》i) {
for (j=x0-1;j》=i ;j-- ) {
if (grid[j][y0]!=0) {
k=0;
break;
}
else
}
}
if (x0《i) {
for (j=x0+1;j《=i ;j++ ) {
if (grid[j][y0]!=0) {
k=0;
break;
}
else
}
}
}
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;
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 的代码详解
class Person{//Persion类
String name;//String类变量,未初始化,默认null
int age;//int类变量,默认0
public Person()//Person类的无参构造方法,一般用来初始化变量,如之前的name。 比如有时候需要定义人这个类特有的属性,会说话,那么一般会在无参构造函数里面写上canTalk=true;
{
}
public Person(String name,int age)//Person类的有参构造方法,参数name和age,和类变量name、age无关
{
this.name=name;//this指Persion类,就是把于传过来变量name赋值给之前的类变量name
this.age=age;//同上
}
public String talk(){//具有String返回值的方法,调用它的时候会得到String返回值
return “我是“+this.name+“,今年“+this.age+“岁“;//调用talk的时候用String a=talk();的形式,a的值就是“我是“+this.name+“,今年“+this.age+“岁“
}
}
public class TestObjectArray{//TestObjectArray公共类,java文件的文件名需和公共类值相同,这段代码必须出现在TestObjectArray.java文件中
public static void main(String args){//主方法,程序的入口
Person p={new Person(“张三“,25),new Person(“李四“,30),new Person(“王五“,35)};//实例化Persion类,用人这个类来举例,每个人都有相同的一些特性,但每个人不同特性的属性值不同,如年龄的大小不同,实例化就相当于产生不同的人。这里是用数组的形式实例化
for(int i=0;i《p.length;i++){//根据p的长度循环
System.out.println(p[i].talk());//p时,会调用Persion类里面的talk()函数,并且传入的参数是 “张三“,25 ,那么会显示:“我是张三,今年25岁“ 。System.out.println()换行显示括号内的内容
}
}
}
java简单代码
public static void main(String args) {
Scanner sc = new Scanner(System.in);
String str = ““;
System.out.println(“请输入指令:“);
while(true){
str = sc.next();
if(str.equals(“add“)){
System.out.println(“执行两数相加“);
} else if(str.equals(“sub“)){
System.out.println(“执行两数相减“);
} else if(str.equals(“help“)){
System.out.println(“add:两数相加 sub:两数相减“);
} else {
System.out.println(“请输入正确指令:“);
}
}
}
你看看这段行不行
-java必背代码