首页 > 游戏 > 2048游戏源码分享

2048游戏源码分享

import java.util.Random;
import java.util.Scanner;

public class game_2048 {
t
tpublic static int score = 0;
tpublic static Random random = new Random();
t
tpublic static void print(int[][] arr) {
ttint n = arr.length;
ttint m = arr[0].length;
ttfor(int i = 0;i tttfor(int j = 0;j ttttif(arr[i][j] > 10){
tttttSystem.out.print(arr[i][j] + " ");
tttt}else {
tttttSystem.out.print(arr[i][j] + " ");
tttt}
ttt}
tttSystem.out.println();
tt}
t}
t
tpublic static String input(Scanner sc) {
ttSystem.out.println("please input:(w:up, s:down, a:left, d:right)");
ttString input = sc.next();
ttreturn input;
t}
t
tpublic static boolean isFinish(int[][] arr) {
ttint n = arr.length;
ttint m = arr[0].length;
ttfor(int i = 0;i tttfor(int j = 0;j ttttif ((arr[i][j] == 0) || (arr[i][j] == arr[i][j+1])) {
tttttreturn false;
tttt}
ttt}
tt}
ttfor(int j = 0;j tttfor(int i = 0;i ttttif ((arr[i][j] == 0) || (arr[i][j] == arr[i+1][j])) {
tttttreturn false;
tttt}
ttt}
tt}
ttreturn true;
t}
t
tpublic static int makeData(Random random) {
ttint r = random.nextInt(10);
ttif(r >= 5){
tttreturn 2;
tt}
ttreturn 0;
t}
t
tpublic static void moveUp(int[][] arr) {
ttint n = arr.length;
ttint m = arr[0].length;
ttfor(int j = 0;j ttt//上移
tttfor(int i = 0;i ttttif(arr[i][j] == 0){
tttttfor(int k = i+1;k ttttttif(arr[k][j] != 0){
tttttttarr[i][j] = arr[k][j];
tttttttarr[k][j] = 0;
tttttttbreak;
tttttt}
ttttt}
tttt}
ttt}
ttt//归并
tttfor(int i = 0;i ttttif(arr[i][j] == arr[i+1][j]){
tttttarr[i][j] *= 2;
tttttarr[i+1][j] = 0;
tttttscore += arr[i][j];
tttt}
ttt}
ttt//产生随机数
tttfor(int i = n-1;i >= 0;i--){
ttttif(arr[i][j] == 0){
tttttarr[i][j] += makeData(random);
tttt}
ttt}
tt}
t}
t
tpublic static void moveDown(int[][] arr) {
ttint n = arr.length;
ttint m = arr[0].length;
ttfor(int j = 0;j ttt//下移
tttfor(int i = n-1;i >= 0;i--){
ttttif(arr[i][j] == 0){
tttttfor(int k = i-1;k >= 0;k--){
ttttttif(arr[k][j] != 0){
tttttttarr[i][j] = arr[k][j];
tttttttarr[k][j] = 0;
tttttttbreak;
tttttt}
ttttt}
tttt}
ttt}
ttt//归并
tttfor(int i = n-1;i > 0;i--){
ttttif(arr[i][j] == arr[i-1][j]){
tttttarr[i][j] *= 2;
tttttarr[i-1][j] = 0;
tttttscore += arr[i][j];
tttt}
ttt}
ttt//产生随机数
tttfor(int i = 0;i ttttif(arr[i][j] == 0){
tttttarr[i][j] += makeData(random);
tttt}
ttt}
tt}
t}
t
tpublic static void moveLeft(int[][] arr) {
ttint n = arr.length;
ttint m = arr[0].length;
ttfor(int i = 0;i ttt//左移
tttfor(int j = 0;j ttttif(arr[i][j] == 0){
tttttfor(int k = j+1;k ttttttif(arr[i][k] != 0){
tttttttarr[i][j] = arr[i][k];
tttttttarr[i][k] = 0;
tttttttbreak;
tttttt}
ttttt}
tttt}
ttt}
ttt//归并
tttfor(int j = 0;j ttttif(arr[i][j] == arr[i][j+1]){
tttttarr[i][j] *= 2;
tttttarr[i][j+1] = 0;
tttttscore += arr[i][j];
tttt}
ttt}
ttt//产生随机数
tttfor(int j = m-1;j >= 0;j--){
ttttif(arr[i][j] == 0){
tttttarr[i][j] += makeData(random);
tttt}
ttt}
tt}
t}
t
tpublic static void moveRight(int[][] arr) {
ttint n = arr.length;
ttint m = arr[0].length;
ttfor(int i = 0;i ttt//左移
tttfor(int j = m-1;j >= 0;j--){
ttttif(arr[i][j] == 0){
tttttfor(int k = j-1;k >= 0;k--){
ttttttif(arr[i][k] != 0){
tttttttarr[i][j] = arr[i][k];
tttttttarr[i][k] = 0;
tttttttbreak;
tttttt}
ttttt}
tttt}
ttt}
ttt//归并
tttfor(int j = m-1;j > 0;j--){
ttttif(arr[i][j] == arr[i][j-1]){
tttttarr[i][j] *= 2;
tttttarr[i][j-1] = 0;
tttttscore += arr[i][j];
tttt}
ttt}
ttt//产生随机数
tttfor(int j = 0;j ttttif(arr[i][j] == 0){
tttttarr[i][j] += makeData(random);
tttt}
ttt}
tt}
t}
t
tpublic static void run() {
ttScanner sc = new Scanner(System.in);
ttint[][] arr = new int[4][4];
ttwhile(true){
tttif (!isFinish(arr)) {
ttttString input = input(sc);
ttttswitch (input) {
ttttcase "w":
tttttmoveUp(arr);
tttttbreak;
ttttcase "s":
tttttmoveDown(arr);
tttttbreak;
ttttcase "a":
tttttmoveLeft(arr);
tttttbreak;
ttttcase "d":
tttttmoveRight(arr);
tttttbreak;
ttttdefault:
tttttbreak;
tttt}
ttttprint(arr);
ttt}else {
ttttSystem.out.println("score:" + score);
ttttbreak;
ttt}
tt}
t}

tpublic static void main(String[] args) {
ttrun();
t}

}

————————————————

小伙伴如果有不懂的问题可以随时私信我哈

本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.sosokankan.com/article/262376.html

setTimeout(function () { fetch('http://www.sosokankan.com/stat/article.html?articleId=' + MIP.getData('articleId')) .then(function () { }) }, 3 * 1000)