<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      2048 C++ 游戲

      ??游戲簡介

      這是一款基于C++開發的2048游戲,集成了成就系統插件擴展游戲記錄倍速調節等功能,支持Windows控制臺運行。代碼結構清晰,包含完整的游戲邏輯、界面渲染和擴展接口,適合學習或二次開發。

      ?核心功能特性

      1. ??玩法介紹

      • 基礎規則:通過WASD鍵控制方塊移動,相同數字合并得分,生成2或4。
      • 界面優化:使用控制臺字符繪制動態棋盤,支持數字格式化顯示
      • 倍速調節:按X鍵可設置移動速度倍率,支持極速模式。
      • 環境支持:windows7可正常運行

      2. ??成就系統

      成就名稱 解鎖條件
      初出茅廬 完成第一次移動
      如日中升 合成數字512
      終極目標 合成數字2048
      閃電戰 50回合內結束游戲
      幸運星 連續生成3次數字4
      持久戰 游戲持續300回合以上
      超越極限 合成數字4096
      改代碼的狗 修改代碼中的地圖大小常量

      3. ??插件擴展支持

      • 移動輔助插件:通過移動插件.txt實現自動托管,支持自定義移動策略。
      • 輸入輔助插件:通過輸入插件.txt模擬按鍵輸入,適合自動化測試或特殊玩法。
      • 接口說明:插件通過文本文件與主程序交互,格式簡單易擴展。

      4. ??游戲記錄與存檔

      • 自動保存最近20局游戲記錄,包含得分、棋盤狀態和成就進度。
      • 記錄加密存儲,支持錯誤校驗。

      5. ??技術細節

      • 開發環境:C++,依賴Windows.h(控制臺控制)、conio.h(按鍵讀取)、fstream(文件操作)。
      • 可配置項:地圖大小(ab常量,默認4x4)、成就提示時長(time_au)、隨機數種子(基于系統時間)。
      • 性能優化:使用Sleep()控制動畫幀率,動態計算棋盤狀態避免冗余渲染。

      ?代碼結構說明

      // 核心模塊劃分
      - 界面層:home()主菜單、out()棋盤渲染、day()更新日志  
      - 邏輯層:game()游戲主循環、over()結束判斷、unl()成就解鎖檢測  
      - 工具層:de()插件狀態讀取、last_out()記錄存檔、ass_co()插件初始化  
      - 擴展接口:插件通信(in_i()輸入代理、ma()地圖數據導出)  
      

      ?快速開始

      1. ??編譯運行

      • 直接編譯運行即可。
      • 首次運行會自動生成配置文件。

      2. ??操作指南

      • 主菜單:1開始游戲,2查看記錄,3操作說明
        4成就列表,5插件管理,6更新日志。
      • 游戲中:WASD移動,X調倍速,E結束游戲。

      3. ??二次開發建議

      • 修改ab常量調整地圖大小。
      • 擴展插件協議,實現更復雜的自動化策略。
      • 添加新成就或調整解鎖條件。

      ??注意事項

      記錄文件采用簡單加密,直接修改可能導致數據損壞,建議通過游戲內菜單管理。

      ??開發者信息

      • 作者:qihangxing
      • 版本:v2.0.0(2025.04.07)
      • 開源協議:MIT(允許自由修改和商用,但需保留原作者聲明)

      ?主體代碼

      #include<bits/stdc++.h>
      #include<windows.h>
      #include<conio.h>
      #include<fstream>
      #include<string>
      /*
      	成就: 
      	1.初出茅廬:  完成第一次移動
      	2.如日中升:  合成數字512
      	3.終極目標:  合成數字2048
      	4.閃電戰:    游戲在50回合內結束 
      	5.幸運星:    連續生成3次數字4 
      	6.持久戰:    游戲持續300回合以上 
      	7.超越極限:  合成數字4096
      	8.改代碼的狗:更改代碼數據 
      */
      using namespace std;
      const int ab=4,m=8;
      double s,s_;
      bool flag_ach[m+1],ove,ma_flag=0,in_flag=0,game_f=1;
      char in;
      long long mp[ab+1][ab+1],last[ab+1][ab+1][25];
      int last_f[25],f,num4=0,H,time_start,flag_au=0,time_au=3;
      char in_i(){
      	if(in_flag==1){
      		bool flag_in;
      		string str;
      		char in_i;
      		ifstream inFile("輸入插件.txt");
      		inFile>>in_flag>>str>>in_i>>flag_in;
      		if(str=="main"&&flag_in){
      			ofstream outfile("輸入插件.txt");
      			outfile<<in_flag<<" "<<"main "<<in_i<<" 0";
      			outfile.close();
      			return in_i;
      		}
      		else
      			return ' ';
      		inFile.close();
      	}
      	else{
      		return getch();
      	}
      } 
      void home(){
      	cout<<"歡迎來到2048 v.2.0.0\n\n\n";
      	cout<<"1.開始游戲     2.檢索記錄     3.使用需知\n\n";
      	cout<<"4.成就列表     5.插件管理     6.更新日志\n\n";
      	do in=in_i(); while(in==' ');
      }
      void de_1(){
      	ifstream inFile("移動插件.txt");
      	if(inFile.good()){
      		inFile>>ma_flag;
      	}
      	inFile.close();
      }
      void de_2(){
      	ifstream inFile("輸入插件.txt");
      	if(inFile.good()){
      		inFile>>in_flag;
      	}
      	inFile.close();
      } 
      void de(){
      	de_1();
      	de_2();
      }
      void ass(){
      	ifstream inFile("記錄.txt");
      	if(!inFile.good()){
      		ofstream outfile("記錄.txt");
      		outfile<<"0\n";
      		for(int i=1;i<=m;i++){
      			outfile<<"0 ";
      		}
      		outfile.close();
      	}
      	inFile.close();
      	for(int i=1;i<=ab;i++){
      		for(int j=1;j<=ab;j++){
      			mp[i][j]=0;
      		}
      	}
      	system("title 2048 v.2.0.0");
      	srand(time(0));
      }
      void ass_co1(){
      	ifstream inFile("移動插件.txt");
      	if(inFile.good()){
      		ofstream outfile("移動插件.txt");
      		outfile<<"0\n";
      		outfile.close();
      	}
      	inFile.close();
      } 
      void ass_co2(){
      	ifstream inFile("輸入插件.txt");
      	if(inFile.good()){
      		ofstream outfile("輸入插件.txt");
      		outfile<<"0\n";
      		outfile.close();
      	}
      	inFile.close();
      }
      void ass_co(){
      	ass_co1();
      	ass_co2();
      }
      void ma(){
      	if(ma_flag){
      		ofstream outfile("地圖.txt");
      		outfile<<ove<<"\n";
      		for(int i=1;i<=ab;i++){
      			for(int j=1;j<=ab;j++){
      				outfile<<mp[i][j]<<" ";
      			}
      			outfile<<"\n";
      		}
      		outfile.close();
      	}
      }
      void out(){
      	system("cls");
      	cout<<f<<"\t*"<<s_<<"\t第"<<H<<"回合\n\n";
      	if(time(0)<time_start+time_au){
      		if(flag_au==1) cout<<"解鎖成就:初出茅廬"; 
      		if(flag_au==2) cout<<"解鎖成就:如日中升"; 
      		if(flag_au==3) cout<<"解鎖成就:終極目標"; 
      		if(flag_au==5) cout<<"解鎖成就:幸運星"; 
      		if(flag_au==6) cout<<"解鎖成就:持久戰"; 
      		if(flag_au==7) cout<<"解鎖成就:超越極限"; 
      		if(flag_au==8) cout<<"解鎖成就:改代碼的狗"; 
      	}
      	else{
      		time_start=0;
      	}
      	cout<<"\n\n";
      	for(int i=1;i<=8*(ab+1)+3;i++){
      		cout<<"_";
      	}
      	for(int i=1;i<=ab;i++){
      		cout<<"\n│\t";
      		for(int j=1;j<=ab;j++){
      			if(mp[i][j]==0){
      				cout<<"  ";
      			}
      			else if(mp[i][j]<10000){
      				cout<<mp[i][j];
      			}
      			else if(mp[i][j]<1000000){
      				cout<<mp[i][j]/1000<<"K";
      			}
      			else{
      				cout<<mp[i][j]/1000000<<"B";
      			}
      			cout<<"\t ";
      		}
      		cout<<"│\n";
      	}
      	for(int i=1;i<=8*(ab+1)+3;i++){
      		cout<<"_";
      	}
      	cout<<"\n";
      }
      bool over(){
      	bool flag=0;
      	for(int i=1;i<=ab;i++){
      		for(int j=1;j<=ab;j++){
      			if(mp[i][j]==0){
      				flag=1;
      				break;
      			}
      			else if(i>1&&mp[i-1][j]==mp[i][j]){
      				flag=1;
      				break;
      			}
      			else if(j>1&&mp[i][j-1]==mp[i][j]){
      				flag=1;
      				break;
      			}
      			else if(i<ab&&mp[i+1][j]==mp[i][j]){
      				flag=1;
      				break;
      			}
      			else if(j<ab&&mp[i][j+1]==mp[i][j]){
      				flag=1;
      				break;
      			}
      		}
      	}
      	return flag;
      }
      void last_in(){
      	system("cls");
      	int n;
      	ifstream inFile("記錄.txt");
      	if(!inFile.good()){
      		ofstream outfile("記錄.txt");
      		outfile<<"0\n";
      		for(int i=1;i<=m;i++){
      			outfile<<"0 ";
      		}
      		outfile.close();
      	}
      	inFile>>n;
      	for(int i=1;i<=n;i++){
      		inFile>>last_f[i];
      		if(last_f[i]%3||(last_f[i]/3-2)%2){
      			cout<<"記錄讀取錯誤\n\n";
      			return ;
      		}
      		last_f[i]=(last_f[i]/3-2)/2; 
      		for(int a=1;a<=ab;a++){
      			for(int b=1;b<=ab;b++){
      				inFile>>last[a][b][i];
      				if(last[a][b][i]%3||(last[a][b][i]/3-2)%2){
      					cout<<"記錄讀取錯誤\n\n";
      					return ;
      				}
      				last[a][b][i]=(last[a][b][i]/3-2)/2;
      			}
      		}
      	}
      	for(int i=1;i<=m;i++){
      		inFile>>flag_ach[i];
      	}
      	inFile.close();
      }
      void last_in_out(){
      	int n;
      	ifstream inFile("記錄.txt");
      	inFile>>n;
      	inFile.close();
      	if(n==0){
      		cout<<"當前暫無記錄,快開始游戲吧\n\n";
      	}
      	else{
      		cout<<"檢索到"<<n<<"個記錄\n\n\n";
      	}
      	for(int i=1;i<=n;i++){
      		if(i!=1){
      			cout<<"\n\n\n";
      		}
      		cout<<i<<".";
      		cout<<"共計"<<last_f[i]<<"分\n\n地圖如下\n";
      		for(int a=1;a<=ab;a++){
      			for(int b=1;b<=ab;b++){
      				if(last[a][b][i]<10000){
      					cout<<last[a][b][i];
      				}
      				else if(last[a][b][i]<1000000){
      					cout<<last[a][b][i]/1000<<"K";
      				}
      				else{
      					cout<<last[a][b][i]/1000000<<"B";	
      				}
      				cout<<"\t";
      			}
      			cout<<"\n";
      		}
      	}
      	cout<<"\n\n按任意鍵返回主界面\n\n";
      	while(in_i()==' ') continue;
      }
      void last_out(bool fla){
      	int n;
      	ifstream inFile("記錄.txt");
      	if(!inFile.good()){
      		ofstream outfile("記錄.txt");
      		outfile<<"0\n";
      		for(int i=1;i<=m;i++){
      			outfile<<"0 ";
      		}
      		outfile.close();
      	}
      	inFile>>n;
      	for(int i=1;i<=n;i++){
      		inFile>>last_f[i];
      		if(last_f[i]%3||(last_f[i]/3-2)%2){
      			cout<<"記錄讀取錯誤\n\n";
      			return ;
      		}
      		last_f[i]=(last_f[i]/3-2)/2; 
      		for(int a=1;a<=ab;a++){
      			for(int b=1;b<=ab;b++){
      				inFile>>last[a][b][i];
      				if(last[a][b][i]%3||(last[a][b][i]/3-2)%2){
      					cout<<"記錄讀取錯誤\n\n";
      					return ;
      				}
      				last[a][b][i]=(last[a][b][i]/3-2)/2;   //x=(x*2+2)*3
      			}
      		}
      	}
      	ofstream outFile("記錄.txt");
      	if(fla){
      		outFile<<min(20,n+1)<<"\n\n";
      		outFile<<(f*2+2)*3<<"\n";
      		for(int a=1;a<=ab;a++){
      			for(int b=1;b<=ab;b++){
      				outFile<<(mp[a][b]*2+2)*3<<" ";
      			}
      			outFile<<"\n";
      		}
      		outFile<<"\n";
      	}
      	else{
      		outFile<<n<<"\n\n";
      	}
      	for(int i=1;i<=n&&i<=20;i++){
      		outFile<<(last_f[i]*2+2)*3<<"\n";
      		for(int a=1;a<=ab;a++){
      			for(int b=1;b<=ab;b++){
      				outFile<<(last[a][b][i]*2+2)*3<<" ";
      			}
      			outFile<<"\n";
      		}
      		outFile<<"\n";
      	}
      	outFile<<"\n";
      	for(int i=1;i<=m;i++){
      		outFile<<flag_ach[i]<<" ";
      	}
      	outFile<<"\n";
      	outFile.close();
      }
      void ach(){
      	start:
      	last_in();
      	bool flag=0;
      	system("cls");
      	cout<<"成就\n\n\n";
      	for(int i=1;i<=m;i++){
      		if(flag_ach[i]==1){
      			if(i==1) cout<<"1.初出茅廬:  完成第一次移動\n\n"; 
      			if(i==2) cout<<"2.如日中升:  合成數字512\n\n"; 
      			if(i==3) cout<<"3.終極目標:  合成數字2048\n\n"; 
      			if(i==4) cout<<"4.閃電戰:    游戲在50回合內結束\n\n"; 
      			if(i==5) cout<<"5.幸運星:    連續生成3次數字4\n\n"; 
      			if(i==6) cout<<"6.持久戰:    游戲持續300回合以上\n\n"; 
      			if(i==7) cout<<"7.超越極限:  合成數字4096\n\n";
      			if(i==8) cout<<"8.改代碼的狗:更改代碼數據\n\n";
      			flag=1; 
      		}
      	}
      	if(flag==0){
      		cout<<"暫未解鎖成就,快去游戲吧\n\n";
      	}
      	cout<<"\n解鎖成就提示 ";
      	if(time_au>0) cout<<"yes";
      	else cout<<"no ";
      	cout<<" (按x更改)\n";
      	cout<<"\n\n按其他鍵返回主界面\n\n";
      	last_out(0);
      	if(in_flag==1){
      		char x;
      		do x=in_i(); while(x==' ');
      		if(x=='x'){
      			if(time_au>0) time_au=-1;
      			else time_au=3;
      			goto start;
      		}	
      	}
      	else
      		while(in_i()==' ') continue;
      }
      void unl(){
      	bool fl=0;
      	for(int i=1;i<=ab;i++){
      		for(int j=1;j<=ab;j++){
      			if(mp[i][j]>=512&&flag_ach[2]==0){
      				flag_ach[2]=1;
      				flag_au=2;
      				fl=1;
      			}
      			if(mp[i][j]>=2048&&flag_ach[3]==0){
      				flag_ach[3]=1;
      				flag_au=3;
      				fl=1;
      			}
      			if(mp[i][j]>=4096&&flag_ach[7]==0){
      				flag_ach[7]=1;
      				flag_au=7;
      				fl=1;
      			}
      		}
      	}
      	if(num4>=3&&flag_ach[5]==0){
      		flag_ach[5]=1;
      		flag_au=5;
      		fl=1;
      	}
      	if(H<=50&&ove==0&&flag_ach[4]==0){
      		flag_ach[4]=1;
      	}
      	if(H>=300&&ove==1&&flag_ach[6]==0){
      		flag_ach[6]=1;
      		flag_au=6;
      		fl=1;
      	}
      	if(ab!=4&&flag_ach[8]==0){
      		flag_ach[8]=1;
      		flag_au=8;
      		fl=1;
      	} 
      	if(fl==1){
      		time_start=time(0);
      	}
      } 
      void day(){
      	system("cls");
      	cout<<"qihangxing制作\n\n\n"; 
      	cout<<"2025.3.08  v.1.0.0   完成基本的移動和合成\n\n";
      	cout<<"2025.3.10  v.1.1.0   美化界面,并優化效率\n\n";
      	cout<<"2025.3.11  v.1.2.0   添加倍速,主界面及日志\n\n";
      	cout<<"2025.3.11  v.1.2.5   添加結束,修復已知BUG\n\n";
      	cout<<"2025.3.12  v.1.4.0   添加記錄,修復已知BUG\n\n";
      	cout<<"2025.3.13  v.1.4.5   添加操作需知\n\n";
      	cout<<"2025.3.13  v.1.5.0   優化記錄功能\n\n";
      	cout<<"2025.3.16  v.1.5.5   更改部分名稱,修復已知BUG\n\n";
      	cout<<"2025.3.16  v.1.6.0   添加成就功能\n\n";
      	cout<<"2025.3.17  v.1.6.5   添加成就提示,優化游戲機制\n\n";
      	cout<<"2025.3.20  v.1.7.0   適配 [2048 移動輔助插件] \n\n";
      	cout<<"2025.3.20  v.1.7.5   替換 [建議收集] 為 [插件管理] \n\n";
      	cout<<"2025.3.21  v.1.8.0   修復已知BUG\n\n";
      	cout<<"2025.3.29  v.1.8.5   適配 [2048 輸入輔助插件] \n\n";
      	cout<<"2025.3.30  v.1.9.0   美化界面,優化游戲機制\n\n";
      	cout<<"2025.3.31  v.1.9.5   添加3個成就和成就存檔功能\n\n";
      	cout<<"2025.4.07  v.2.0.0   修復已知BUG,調整操作需知\n\n";
      	cout<<"\n\n按任意鍵返回主界面\n\n";
      	while(in_i()==' ') continue;
      }
      void help(){
      	system("cls");
      	cout<<"操作需知:\n\n";
      	cout<<"1.按 w,a,s,d   移動\n\n";
      	cout<<"2.按 x         調整倍速\n\n";
      	cout<<"3.按 e         結束游戲\n\n";
      	cout<<"\n功能注意:\n\n";
      	cout<<"1.存檔的地圖大小不同會導致讀取錯誤哦!\n\n";
      	cout<<"2.移動插件按 [ e ] 退出才會退出托管\n\n";
      	cout<<"\n\n按任意鍵返回主界面\n\n";
      	while(in_i()==' ') continue;
      }
      void game(){
      	H=0;ove=1;f=0;s=1;s_=1;num4=0;
      	unl();
      	while(1){
      		ma();
      		de();
      		char x;	
      		int i=1;
      		if(x!='e'&&x!='x'){
      			while(i<=ab*ab){
      				int a=rand()%ab+1,b=rand()%ab+1;
      				if(mp[a][b]==0){
      					mp[a][b]=4-2*bool(rand()%4);
      					if(mp[a][b]==4) num4+=1;
      					else num4=0;
      					break;
      				}
      				else i++;
      			}
      		}
      		out();
      		Sleep(750);
      		a:
      		if(ma_flag){
      			ifstream inFile("移動插件.txt");
      			inFile>>ma_flag>>game_f;
      			if(game_f==0){
      				s=0; s_=0;
      				inFile>>x;
      			}
      			inFile.close();
      		}
      		else if(in_flag){
      			do x=in_i(); while(x==' ');
      		}
      		else{
      			x=in_i();
      		}
      		if(x=='w'){
      			if(flag_ach[1]==0){
      				flag_ach[1]=1;
      				flag_au=1;
      				time_start=time(0);
      			}
      			for(int i=1;i<=ab;i++){
      				for(int j=1;j<=ab;j++){
      					int X=i;
      					while(mp[X][j]!=0&&X>1&&(mp[X-1][j]==0||mp[X-1][j]==mp[X][j])){
      						if(mp[X-1][j]==0){
      							mp[X-1][j]=mp[X][j];
      							mp[X][j]=0;
      						}
      						else{
      							f+=mp[X][j]*2;
      							mp[X-1][j]=mp[X][j]*2;
      							mp[X][j]=0;
      						}
      						X--;
      						out();
      						Sleep(int(100*s)); 
      					}
      				}
      			}
      			H++;
      		}
      		else if(x=='a'){
      			if(flag_ach[1]==0){
      				flag_ach[1]=1;
      				flag_au=1;
      				time_start=time(0);
      			}
      			for(int j=1;j<=ab;j++){
      				for(int i=1;i<=ab;i++){
      					int Y=j;
      					while(mp[i][Y]!=0&&Y>1&&(mp[i][Y-1]==0||mp[i][Y-1]==mp[i][Y])){
      						if(mp[i][Y-1]==0){
      							mp[i][Y-1]=mp[i][Y];
      							mp[i][Y]=0;
      						}
      						else{
      							f+=mp[i][Y]*2;
      							mp[i][Y-1]=mp[i][Y]*2;
      							mp[i][Y]=0;
      						}
      						Y--;
      						out();
      						Sleep(int(100*s)); 
      					}
      				}
      			}
      			H++;
      		}
      		else if(x=='s'){
      			if(flag_ach[1]==0){
      				flag_ach[1]=1;
      				flag_au=1;
      				time_start=time(0);
      			}
      			for(int i=ab;i>=1;i--){
      				for(int j=1;j<=ab;j++){
      					int X=i;
      					while(mp[X][j]!=0&&X<ab&&(mp[X+1][j]==0||mp[X+1][j]==mp[X][j])){
      						if(mp[X+1][j]==0){
      							mp[X+1][j]=mp[X][j];
      							mp[X][j]=0;
      						}
      						else{
      							f+=mp[X][j]*2;
      							mp[X+1][j]=mp[X][j]*2;
      							mp[X][j]=0;
      						}
      						X++;
      						out();
      						Sleep(int(100*s)); 
      					}
      				}
      			}
      			H++;
      		}
      		else if(x=='d'){
      			if(flag_ach[1]==0){
      				flag_ach[1]=1;
      				flag_au=1;
      				time_start=time(0);
      			}
      			for(int j=ab;j>=1;j--){
      				for(int i=1;i<=ab;i++){
      					int Y=j;
      					while(mp[i][Y]!=0&&Y<ab&&(mp[i][Y+1]==0||mp[i][Y+1]==mp[i][Y])){
      						if(mp[i][Y+1]==0){
      							mp[i][Y+1]=mp[i][Y];
      							mp[i][Y]=0;
      						}
      						else{
      							f+=mp[i][Y]*2;
      							mp[i][Y+1]=mp[i][Y]*2;
      							mp[i][Y]=0;
      						}
      						Y++;
      						out();
      						Sleep(int(100*s)); 
      					}
      					
      				}
      			}
      			H++;
      		}
      		else if(x=='x'){
      			cout<<"\n倍速調節\n\n";
      			cin>>s_;
      			if(s_==0){
      				s=0;
      			}
      			else{
      				s=1/s_;
      			}
      		}
      		else if(x=='e'){
      			cout<<"確定退出本局游戲 (y/n)\n\n";
      			char y;
      			cin>>y;
      			if(y=='y'){
      				out();
      				break;
      			}
      		} 
      		else{
      			cout<<"重新輸入";
      			Sleep(500); 
      			out();
      			goto a;
      		}
      		if(over()==0){
      			ove=0;
      			out();
      			unl();
      			break;
      		}
      		unl();
      	}
      	unl();
      	ma();
      	last_out(1);
      	cout<<"本局游戲共"<<f<<"分\n\n";
      	cout<<"\n\n按任意鍵返回主界面\n\n";
      	while(in_i()==' ') continue;
      } 
      void co(){
      	de();
      	bool flag_co=0;
      	system("cls");
      	if(ma_flag==1){
      		if(flag_co==0){
      			cout<<"已連接插件:\n\n";
      			flag_co=1;
      		}
      		cout<<"2048 移動輔助插件\n\n";
      	}
      	if(in_flag==1){
      		if(flag_co==0){
      			cout<<"已連接插件:\n\n";
      			flag_co=1;
      		}
      		cout<<"2048 輸入輔助插件\n\n";
      	}
      	if(flag_co==0){
      		cout<<"暫未連接到插件\n\n";
      	} 
      	cout<<"\n\n按任意鍵返回主界面\n\n";
      	while(in_i()==' ') continue;
      }
      int main(){
      	ass_co();
      	while(1){
      		system("cls"); 
      		de();
      		ass();
      		home();
      		if(in=='1'){
      			game();
      		}
      		else if(in=='2'){
      			last_in();
      			last_in_out();
      		}
      		else if(in=='3'){
      			help();
      		}
      		else if(in=='4'){
      			ach(); 
      		}
      		else if(in=='5'){
      			co();
      		}
      		else if(in=='6'){
      			day();
      		}
      	}
      	return 0;
      }
      
      

      ?移動輔助插件 v.1.3.0 代碼

      #include<bits/stdc++.h>
      #include<windows.h>
      #include<conio.h>
      #include<fstream>
      using namespace std;
      const int ab=4,qz=1;
      long long mp[ab+1][ab+1];
      bool mp_f[ab+1][ab+1],game=0;
      char game_f='0';
      void ass(){
      	system("title 2048 移動輔助插件 v.1.3.0");
      	ofstream outfile("地圖.txt");
      	outfile<<"1\n";
      	for(int i=1;i<=ab;i++){
      		for(int j=1;j<=ab;j++){
      			outfile<<"0 ";
      		}
      		outfile<<"\n";
      	}
      	outfile.close();
      }
      void ass_pl(){
      	ofstream outfile("移動插件.txt");
      	outfile<<"1 1\n";
      	outfile.close();
      }
      void mp_in(){
      	ifstream inFile("地圖.txt");
      	inFile>>game;
      	for(int i=1;i<=ab;i++){
      		for(int j=1;j<=ab;j++){
      			inFile>>mp[i][j];
      			mp_f[i][j];
      		}
      	}
      	inFile.close();
      }
      void mp_out(){
      	int fw=0,fa=0,fs=0,fd=0,fw_=0,fa_=0,fs_=0,fd_=0;
      	mp_in();
      	for(int i=1;i<=ab;i++){
      		for(int j=1;j<=ab;j++){
      			if(i>1&&mp[i-1][j]==mp[i][j]){
      				fw_-=mp[i][j]*qz;
      			}
      			else if(j>1&&mp[i][j-1]==mp[i][j]){
      				fw_-=mp[i][j]*qz;
      			}
      			else if(i<ab&&mp[i+1][j]==mp[i][j]){
      				fw_-=mp[i][j]*qz;
      			}
      			else if(j<ab&&mp[i][j+1]==mp[i][j]){
      				fw_-=mp[i][j]*qz;
      			}
      		}
      	}
      	for(int i=1;i<=ab;i++){
      		for(int j=1;j<=ab;j++){
      			int X=i;
      			while(mp[X][j]!=0&&X>1&&(mp[X-1][j]==0||mp[X-1][j]==mp[X][j])){
      				if(mp[X-1][j]==0){
      					mp[X-1][j]=mp[X][j];
      					mp[X][j]=0;
      				}
      				else{
      					fw+=mp[X][j]*2;
      					fw_+=mp[X][j]*2;
      					mp[X-1][j]=mp[X][j]*2;
      					mp[X][j]=0;
      				}
      				X--;
      				mp_f[X][j]=1;
      				mp_f[X+1][j]=1;
      			}	
      		}
      	}
      	for(int i=1;i<=ab;i++){
      		for(int j=1;j<=ab;j++){
      			if(mp_f[i][j]){
      				if(i>1&&mp[i-1][j]==mp[i][j]){
      					fw_+=mp[i][j]*qz;
      				}
      				else if(j>1&&mp[i][j-1]==mp[i][j]){
      					fw_+=mp[i][j]*qz;
      				}
      				else if(i<ab&&mp[i+1][j]==mp[i][j]){
      					fw_+=mp[i][j]*qz;
      				}
      				else if(j<ab&&mp[i][j+1]==mp[i][j]){
      					fw_+=mp[i][j]*qz;
      				}
      			}
      		}
      	}
      	mp_in();
      	for(int i=1;i<=ab;i++){
      		for(int j=1;j<=ab;j++){
      			if(i>1&&mp[i-1][j]==mp[i][j]){
      				fa_-=mp[i][j]*qz;
      			}
      			else if(j>1&&mp[i][j-1]==mp[i][j]){
      				fa_-=mp[i][j]*qz;
      			}
      			else if(i<ab&&mp[i+1][j]==mp[i][j]){
      				fa_-=mp[i][j]*qz;
      			}
      			else if(j<ab&&mp[i][j+1]==mp[i][j]){
      				fa_-=mp[i][j]*qz;
      			}
      		}
      	}
      	for(int j=1;j<=ab;j++){
      		for(int i=1;i<=ab;i++){
      			int Y=j;
      			while(mp[i][Y]!=0&&Y>1&&(mp[i][Y-1]==0||mp[i][Y-1]==mp[i][Y])){
      				if(mp[i][Y-1]==0){
      					mp[i][Y-1]=mp[i][Y];
      					mp[i][Y]=0;
      				}
      				else{
      					fa+=mp[i][Y]*2;
      					fa_+=mp[i][Y]*2;
      					mp[i][Y-1]=mp[i][Y]*2;
      					mp[i][Y]=0;
      				}
      				Y--;
      				mp_f[i][Y]=1;
      				mp_f[i][Y+1]=0;
      			}
      		}
      	}
      	for(int i=1;i<=ab;i++){
      		for(int j=1;j<=ab;j++){
      			if(mp_f[i][j]){
      				if(i>1&&mp[i-1][j]==mp[i][j]){
      					fa_+=mp[i][j]*qz;
      				}
      				else if(j>1&&mp[i][j-1]==mp[i][j]){
      					fa_+=mp[i][j]*qz;
      				}
      				else if(i<ab&&mp[i+1][j]==mp[i][j]){
      					fa_+=mp[i][j]*qz;
      				}
      				else if(j<ab&&mp[i][j+1]==mp[i][j]){
      					fa_+=mp[i][j]*qz;
      				}
      			}
      		}
      	}
      	mp_in();
      	for(int i=1;i<=ab;i++){
      		for(int j=1;j<=ab;j++){
      			if(i>1&&mp[i-1][j]==mp[i][j]){
      				fs_-=mp[i][j]*qz;
      			}
      			else if(j>1&&mp[i][j-1]==mp[i][j]){
      				fs_-=mp[i][j]*qz;
      			}
      			else if(i<ab&&mp[i+1][j]==mp[i][j]){
      				fs_-=mp[i][j]*qz;
      			}
      			else if(j<ab&&mp[i][j+1]==mp[i][j]){
      				fs_-=mp[i][j]*qz;
      			}
      		}
      	}
      	for(int i=ab;i>=1;i--){
      		for(int j=1;j<=ab;j++){
      			int X=i;
      			while(mp[X][j]!=0&&X<ab&&(mp[X+1][j]==0||mp[X+1][j]==mp[X][j])){
      				if(mp[X+1][j]==0){
      					mp[X+1][j]=mp[X][j];
      					mp[X][j]=0;
      				}
      				else{
      					fs+=mp[X][j]*2;
      					fs_+=mp[X][j]*2;
      					mp[X+1][j]=mp[X][j]*2;
      					mp[X][j]=0;
      				}
      				X++; 
      				mp_f[X][j]=1;
      				mp_f[X-1][j]=1;
      			}
      		}
      	}
      	for(int i=1;i<=ab;i++){
      		for(int j=1;j<=ab;j++){
      			if(mp_f[i][j]){
      				if(i>1&&mp[i-1][j]==mp[i][j]){
      					fs_+=mp[i][j]*qz;
      				}
      				else if(j>1&&mp[i][j-1]==mp[i][j]){
      					fs_+=mp[i][j]*qz;
      				}
      				else if(i<ab&&mp[i+1][j]==mp[i][j]){
      					fs_+=mp[i][j]*qz;
      				}
      				else if(j<ab&&mp[i][j+1]==mp[i][j]){
      					fs_+=mp[i][j]*qz;
      				}
      			}
      		}
      	}
      	mp_in();
      	for(int i=1;i<=ab;i++){
      		for(int j=1;j<=ab;j++){
      			if(i>1&&mp[i-1][j]==mp[i][j]){
      				fd_-=mp[i][j]*qz;
      			}
      			else if(j>1&&mp[i][j-1]==mp[i][j]){
      				fd_-=mp[i][j]*qz;
      			}
      			else if(i<ab&&mp[i+1][j]==mp[i][j]){
      				fd_-=mp[i][j]*qz;
      			}
      			else if(j<ab&&mp[i][j+1]==mp[i][j]){
      				fd_-=mp[i][j]*qz;
      			}
      		}
      	}
      	for(int j=ab;j>=1;j--){
      		for(int i=1;i<=ab;i++){
      			int Y=j;
      			while(mp[i][Y]!=0&&Y<ab&&(mp[i][Y+1]==0||mp[i][Y+1]==mp[i][Y])){
      				if(mp[i][Y+1]==0){
      					mp[i][Y+1]=mp[i][Y];
      					mp[i][Y]=0;
      				}
      				else{
      					fd+=mp[i][Y]*2;
      					fd_+=mp[i][Y]*2;
      					mp[i][Y+1]=mp[i][Y]*2;
      					mp[i][Y]=0;
      				}
      				Y++; 
      				mp_f[i][Y]=1;
      				mp_f[i][Y-1]=0;
      			}
      		}
      	}
      	for(int i=1;i<=ab;i++){
      		for(int j=1;j<=ab;j++){
      			if(mp_f[i][j]){
      				if(i>1&&mp[i-1][j]==mp[i][j]){
      					fd_+=mp[i][j]*qz;
      				}
      				else if(j>1&&mp[i][j-1]==mp[i][j]){
      					fd_+=mp[i][j]*qz;
      				}
      				else if(i<ab&&mp[i+1][j]==mp[i][j]){
      					fd_+=mp[i][j]*qz;
      				}
      				else if(j<ab&&mp[i][j+1]==mp[i][j]){
      					fd_+=mp[i][j]*qz;
      				}
      			}
      		}
      	}
      	int ma=max(max(fw+fw_,fa+fa_),max(fs+fs_,fd+fd_));
      	cout<<"建議: ";
      	ofstream outfile("移動插件.txt");
      	outfile<<"1 ";
      	if(game_f!='0') outfile<<"1 ";
      	else outfile<<"0 ";
      	if(ma==fw+fw_){
      		cout<<"w ";
      		outfile<<"w ";
      	}
      	if(ma==fa+fa_){
      		cout<<"a ";
      		outfile<<"a ";
      	}
      	if(ma==fs+fs_){
      		cout<<"s ";
      		outfile<<"s ";
      	}
      	if(ma==fd+fd_){
      		cout<<"d ";
      		outfile<<"d ";
      	}
      	cout<<"\n詳細:\n\n";
      	cout<<"w  當下:  "<<fw<<"  \t發展:"<<fw_<<"  \t綜合:"<<fw+fw_<<"\n";
      	cout<<"a  當下:  "<<fa<<"  \t發展:"<<fa_<<"  \t綜合:"<<fa+fa_<<"\n";
      	cout<<"s  當下:  "<<fs<<"  \t發展:"<<fs_<<"  \t綜合:"<<fs+fs_<<"\n";
      	cout<<"d  當下:  "<<fd<<"  \t發展:"<<fd_<<"  \t綜合:"<<fd+fd_<<"\n";
      }
      void day(){
      	system("cls");
      	cout<<"qihangxing制作\n\n\n"; 
      	cout<<"2025.3.18  v.1.0.0   完成基本的算法推薦\n\n";
      	cout<<"2025.3.19  v.1.1.0   美化界面并優化算法\n\n";
      	cout<<"2025.3.20  v.1.2.0   添加設置\n\n";
      	cout<<"2025.3.21  v.1.3.0   修復已知BUG\n\n";
      	cout<<"按任意鍵返回主界面\n\n";
      	getch();
      }
      void co(){
      	system("cls");
      	ofstream outfile("移動插件.txt");
      	outfile<<"1 ";
      	outfile.close();
      	cout<<"已發送請求\n\n按任意鍵返回主界面\n\n";
      	getch();
      }
      void pl(){
      	system("cls");
      	while(game){
      		mp_out();
      		Sleep(100);
      		system("cls");
      	}
      }
      void sz(){
      	start:
      	system("cls");
      	cout<<"設置\n\n托管模式: ";
      	if(game==1) cout<<"yes";
      	else cout<<"no ";
      	cout<<" (按x更改)\n\n按其他鍵返回主界面\n\n";
      	char x=getch();
      	if(x=='x'){
      		if(game==1) game=0;
      		else game=1;
      		goto start;
      	}
      }
      void exi(){
      	ofstream outfile("移動插件.txt");
      	outfile<<"0 ";
      	outfile.close();
      }
      int main(){
      	while(1){
      		system("cls");
      		ass();
      		cout<<"歡迎使用2048 移動輔助插件 v.1.3.0\n\n";
      		cout<<"1.連接主程     2.插件設置\n\n";
      		cout<<"3.啟動插件     4.更新日志\n\n";
      		char in=getch();
      		if(in=='1'){
      			co();
      		}
      		else if(in=='2'){
      			sz();
      		}
      		else if(in=='3'){
      			pl();
      		} 
      		else if(in=='4'){
      			day();
      		}
      		else if(in=='e'){
      			exi();
      			break;
      		}
      	}
      	return 0;
      }
      

      ?輸入輔助插件 v.1.0.0 代碼

      #include<bits/stdc++.h>
      #include<windows.h>
      #include<conio.h>
      #include<fstream>
      #include<string>
      using namespace std;
      string dx[5]={"","main","maco"};
      int t=1,s=2;
      char in=' ';
      string _dx=dx[t];
      void ass(){
      	system("title 2048 輸入輔助插件 v.1.0.0");
      	ofstream outfile("輸入插件.txt");
      	outfile<<"1 ";
      	outfile.close();
      }
      void out(){
      	system("cls");
      	cout<<_dx;
      	if(in!=' '&&in!='-')
      		cout<<" << "<<in<<"\n\n";
      	in=getch();
      	if(in=='-'){
      		if(t+1>s)
      			t=1;
      		else
      			t+=1;
      		_dx=dx[t];
      	}
      	else{
      		ofstream outfile("輸入插件.txt");
      		outfile<<"1 "<<_dx<<" "<<in<<" 1";
      		outfile.close();
      	}
      } 
      int main(){
      	ass();
      	while(1){
      		out();
      	} 
      	return 0;
      }
      
      posted @ 2025-08-10 09:28  Qi_Hang  閱讀(72)  評論(2)    收藏  舉報
      主站蜘蛛池模板: 久久精品无码一区二区三区| 国产女人喷潮视频免费| 性色欲情网站iwww| 男女性高爱潮免费网站| 免费无码又爽又刺激高潮虎虎视频| 九九色这里只有精品国产| 东方四虎在线观看av| 性欧美老人牲交xxxxx视频| 少妇人妻偷人精品免费| 99精品国产成人一区二区| 草裙社区精品视频播放| 一个人在线观看免费中文www| 国产初高中生粉嫩无套第一次| 国产精品一区二区三区自拍| 国产成人精品一区二区三区| 成 人 免费 在线电影| 西平县| 午夜成人理论无码电影在线播放| 91亚洲国产成人精品福利| 无码成人一区二区三区| 亚洲成在人线AV品善网好看| 亚洲一区二区啊射精日韩| 老太脱裤子让老头玩xxxxx| 日韩激情无码免费毛片| 亚洲一区二区三区久久受| 日韩区中文字幕在线观看| 亚洲高潮喷水无码AV电影| 看黄a大片日本真人视频直播| www亚洲精品| 国产成人亚洲老熟女精品| 成年在线观看免费人视频| 国产成人亚洲日韩欧美| 亚洲av综合色一区二区| 99久久亚洲综合精品成人网| 日韩精品一区二区午夜成人版 | 国产日韩AV免费无码一区二区三区| 日韩一区二区三区东京热| 伊人蕉久影院| 日韩中文字幕人妻精品| 一区二区三区在线 | 欧洲 | 天堂俺去俺来也www色官网|