2048小游戏无卡顿152行
2025-07-21 13:42:16
发布于:北京
#include<bits/stdc++.h>
using namespace std;
int _2048[6][6];
int main(){
while(true){
srand(time(NULL));
int num=0;
for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
if(_2048[i][j]==0){
num++;
}
}
}
int q=rand();
q=(q%num)+1;
int c=0;
for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
if(_2048[i][j]==0){
c++;
if(c==q){
_2048[i][j]=(rand()%2+1)*2;
}
}
if(_2048[i][j]==0) cout<<0<<" ";
else{
cout<<_2048[i][j];
for(int k=1;k<=6-ceil(log10(_2048[i][j]));k++) cout<<" ";
}
}
cout<<endl<<endl;
}
bool fla=false;
for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
if(_2048[i][j]==0) fla=true;
if(_2048[i][j-1]==_2048[i][j]) fla=true;
if(_2048[i][j+1]==_2048[i][j]) fla=true;
if(_2048[i-1][j]==_2048[i][j]) fla=true;
if(_2048[i+1][j]==_2048[i][j]) fla=true;
}
}
if(!fla){
cout<<"GAME OVER-!!";
return 0;
}
char a;
bool flag=false;
while(!flag){
cin>>a;
if(a=='a'){
for(int i=1;i<=4;i++){
for(int j=2;j<=4;j++){
if(_2048[i][j]!=0&&(_2048[i][j-1]==0||_2048[i][j-1]==_2048[i][j])){
flag=true;
}
}
}
}
if(a=='w'){
for(int i=2;i<=4;i++){
for(int j=1;j<=4;j++){
if(_2048[i][j]!=0&&(_2048[i-1][j]==0||_2048[i-1][j]==_2048[i][j])){
flag=true;
}
}
}
}
if(a=='s'){
for(int i=1;i<=3;i++){
for(int j=1;j<=4;j++){
if(_2048[i][j]!=0&&(_2048[i+1][j]==0||_2048[i+1][j]==_2048[i][j])){
flag=true;
}
}
}
}
if(a=='d'){
for(int i=1;i<=4;i++){
for(int j=1;j<=3;j++){
if(_2048[i][j]!=0&&(_2048[i][j+1]==0||_2048[i][j+1]==_2048[i][j])){
flag=true;
}
}
}
}
}
bool flll[6]={false,false,false,false,false,false};
if(a=='a'){
for(int i=1;i<=4;i++){
for(int j=2;j<=4;j++){
int x=i,y=j;
while(_2048[x][y]!=0&&(_2048[x][y-1]==0||_2048[x][y-1]==_2048[x][y])){
if(flll[i]&&_2048[x][y-1]==_2048[x][y]) break;
if(!flll[i]&&_2048[x][y-1]==_2048[x][y]) flll[i]=true;
_2048[x][y-1]+=_2048[x][y];
_2048[x][y]=0;
y--;
if(y==1) break;
}
}
}
}
if(a=='w'){
for(int i=2;i<=4;i++){
for(int j=1;j<=4;j++){
int x=i,y=j;
while(_2048[x][y]!=0&&(_2048[x-1][y]==0||_2048[x-1][y]==_2048[x][y])){
if(flll[j]&&_2048[x-1][y]==_2048[x][y]) break;
if(!flll[j]&&_2048[x-1][y]==_2048[x][y]) flll[j]=true;
_2048[x-1][y]+=_2048[x][y];
_2048[x][y]=0;
x--;
if(x==1) break;
}
}
}
}
if(a=='s'){
for(int i=3;i>=1;i--){
for(int j=1;j<=4;j++){
int x=i,y=j;
while(_2048[x][y]!=0&&(_2048[x+1][y]==0||_2048[x+1][y]==_2048[x][y])){
if(flll[j]&&_2048[x+1][y]==_2048[x][y]) break;
if(!flll[j]&&_2048[x+1][y]==_2048[x][y]) flll[j]=true;
_2048[x+1][y]+=_2048[x][y];
_2048[x][y]=0;
x++;
if(x==4) break;
}
}
}
}
if(a=='d'){
for(int i=1;i<=4;i++){
for(int j=3;j>=1;j--){
int x=i,y=j;
while(_2048[x][y]!=0&&(_2048[x][y+1]==0||_2048[x][y+1]==_2048[x][y])){
if(flll[i]&&_2048[x][y+1]==_2048[x][y]) break;
if(!flll[i]&&_2048[x][y+1]==_2048[x][y]) flll[i]=true;
_2048[x][y+1]+=_2048[x][y];
_2048[x][y]=0;
y++;
if(y==4) break;
}
}
}
}
}
return 0;
}
全部评论 2
%%%lls dalao
1周前 来自 湖南
1无卡顿
只是dev观感不好2025-07-21 来自 北京
0666这玩意怎么玩
1周前 来自 河北
0
有帮助,赞一个