用Java实现的2048(没UI)

本文介绍如何使用Java实现2048游戏的核心算法。通过设计思路和具体步骤,包括用0-3表示方向,判断游戏结束条件,以及二维数组存储游戏状态。在每次事件触发前,元素向指定方向移动并消除空白,接着反向合并相同元素。代码已开源在GitHub,欢迎探讨交流。
摘要由CSDN通过智能技术生成

设计思路:
用0,1,2,3表示事件向左,右,上,下;然后是判断游戏结束标志:

  1. 游戏出现2048时,赢得游戏而退出;
  2. 游戏画板满了,并且左右上下移动都不能再合并任何元素时,那么游戏已经进入了死胡同不可能再有解,所以判断输了而结束游戏;

游戏实现:
用二维数组来储存游戏画板;
1.每次捕捉事件前,先将每个元素向指定的方向移动,
将他们之间空白的元素去掉,
2.然后按照他们时间的方向的的反方向去没两个相邻的元素比较,如果相同就相加复制给前一个元素,后一个元素置零(表示空白);
3.重复1;

下面是代码,有注释,大家可以看看,欢迎拍砖;
代码工程已发布在https://github.com/BrightenYim/2048inJava
欢迎大家拍砖:

package brighten.demo;
/*
 * @author  BrightenYim 2015.4.12
 * @mailto  brightenyim@qq.com
 */
import java.util.Random;
import java.util.Scanner;

public class Game2048 {

    public final static int  n=4;

    int[][]  array = new int[n][n];

    void  initial(){
  //初始化这个数组  开始时初始化
    for(int p = 0;p < 4;p++)//默认 0?是否需要初始化
        for(int q =0;q < 4;q++){
            array[p][q]  = 0;
        }
    Random random = new Random();
    int  j  =random.nextInt(4);
    int k  = random.nextInt(4);
    array[j][k] = 2;
    }

    void again(){
  //合并事件后 随机生成2
        Random random = new Random();
       while(true){
        int   j  = random.nextInt(4);
        int k  = random.nextInt(4);
        if(array[j][k] == 0){
            array[j][k] = 2;break;
        }
        else {
            continue;
        }
       }
    }

    void display(){
  //显示数组
        for(int i = 0;i < 4;i++)
            for(int j = 0;j < 4 ;j++){
                if(j==3){
                    System.out.println(array[i][j]);
                    }
                else {
                    System.out.printf("%d ",array[i][j]);
                }

                }
            }
    /*void swap(int  i, int  j){//交换           //cau
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值