文章

2

粉丝

35

获赞

0

访问

921

头像
2048游戏 题解:
P1472
发布于2024年6月22日 17:39
阅读数 594

先合并,再移动 

在合并的时候,用m,n来分别代表遍历到的元素的行和列,p,q分别代表要和这个元素合并的元素的行和列。(m,n是合并后要乘双倍的元素位置,p,q是合并后变成0的元素的位置)

#include <iostream>
#include<bits/stdc++.h>
using namespace std;

int main()
{

    int x,a[10][10]={0};
    int b[10][10]={0};//这是移动后的方阵
    int m,n;//合并后数字双倍的位置
    int p,q;//合并后变成0的位置
    scanf("%d",&x);
    for(int i=1;i<=4;i++){
        for(int j=1;j<=4;j++)
            scanf("%d",&a[i][j]);
    }
        //先合并
        for(int j=1;j<=4;j++){
            for(int i=1;i<=3;i++){
                    bool flag=false;//标志是否找到可以合并的项
                    if(x==1){//j是列
                        m=i;
                        n=j;
                        p=m+1;
                        q=n;
                        if(a[m][n]==0)
                            continue;
                        else{
                            while(a[p][q]==0&&p<=3)//直到找到可以合并的非零项
                                p+=1;
                 ...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发