自己做的游戏(3.0)

#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
#include<bits/stdc++.h>
#include<windows.h>
#include<algorithm>
#include<iostream>
#include<cstring>
#include<time.h>
#include<string>
#include<cmath>
using namespace std;
int main();
void reset(){//重置界面
	system("cls");
	system("color 0f"); 
	system("title wzh的游戏空间");
}
void start(){//开始界面
	string a="                                                                    ";
	string b="===============================================================";
	HWND hwnd=GetForegroundWindow();
	int x=GetSystemMetrics(SM_CXSCREEN)+300;
	int y=GetSystemMetrics(SM_CYSCREEN)+300;
	char setting[30];
	sprintf(setting,"mode con:cols=%d lines=%d",x,y);
	system(setting); 
	SetWindowPos(hwnd,HWND_TOPMOST,0,0,x+300,y+300,NULL);
	MoveWindow(hwnd,-10,-40,x+300,y+300,1);
	reset();
    cout<<endl<<b<<"欢迎来到wzh的游戏空间"<<b<<endl<<endl;
	cout<<"                                             温馨提示:游戏前请切换至大写模式,游戏编号以最后一个字符为准"<<endl<<endl;
	cout<<a<<"1.躲避障碍"<<endl<<endl;
	cout<<a<<"2.手速射击"<<endl<<endl;
	cout<<a<<"3.恐龙跳一跳"<<endl<<endl;
	cout<<a<<"4.移动小人"<<endl<<endl;
	cout<<"                                                          	";
}
void rest(){//暂停 
    system("pause");
}
int random(int a,int b){//随机数 
	b-=a;
	srand(time(0)); 
	return (rand()%b)+a;//返回a和b之间的随机数 
}
void dbza(){//躲避障碍 
	reset();
	int w=10,a=0,fs=0;
	while(1){
		int d=random(1,18);
		//cout<<d<<endl;
		for(int n=0;n<10;n++){
			for(int i=0;i<10;i++){
				for(int t=0;t<20;t++){
					if(i==a&&t==d){
						cout<<"v";
					}else if(i==9&&t==w||(i==8&&t==w)){
						cout<<"^";
					}else{
						cout<<" ";
					}if((i==8||i==9)&&(d==w)){
						reset();
	            		cout<<"游戏结束,得分:"<<fs;
	           			Sleep(1000);
						main();
					}
				}
				cout<<endl;
			}
			cout<<"A向左,D向右";
			a+=1;
			if(KEY_DOWN('A')){
				w-=1;
			}else if(KEY_DOWN('D')){
				w+=1;
			}
			if(w>18){
				w=18;
			}else if(w<1){
				w=1;
			}
			if(KEY_DOWN('P')){
				reset();
	            rest();
			}
			Sleep(100);
			reset();
		}
		a=0;
		fs+=1;
	}
}
void sj(){//手速射击
	reset();
    int x=0;
    cout<<"按K射击"; 
    char map[10][10]={{'\\',' ',' ',' ',' ',' ',' ',' ',' ','/'},
                	  {' ','\\',' ',' ',' ',' ',' ',' ','/',' '},
                      {' ',' ','\\',' ',' ',' ',' ','/',' ',' '},
                      {' ',' ',' ','\\',' ',' ','/',' ',' ',' '},
                      {' ',' ',' ',' ','\\','/',' ',' ',' ',' '},
                      {' ',' ',' ',' ','/','\\',' ',' ',' ',' '},
                      {' ',' ',' ','/',' ',' ','\\',' ',' ',' '},
                      {' ',' ','/',' ',' ',' ',' ','\\',' ',' '},
                      {' ','/',' ',' ',' ',' ',' ',' ','\\',' '},
                      {'/',' ',' ',' ',' ',' ',' ',' ',' ','\\'},};
    bool cg=0;
    Sleep(2000);
    Sleep(random(1,10)*100);
    reset();
    for(int i=0;i<10;i++){
        for(int j=0;j<10;j++){
            cout<<map[i][j];
        }
        cout<<endl;
    }
    if(KEY_DOWN('K')){
			reset();
			cout<<"游戏失败";
			Sleep(2000);
			main();
	}
    for(int i=0;i<1000000;i++){
        if(KEY_DOWN('K')){
    		reset();
            cout<<"游戏成功,得分:"<<100-i/10000<<endl;
            Sleep(2000);
            cout<<"游戏结束";
            Sleep(2000);
            cg=1;
            break;
    	}
    }
    if (cg==0){
        reset();
        cout<<"游戏失败"<<endl;
        Sleep(2000);
        cout<<"游戏结束";
        Sleep(2000);
    }
    main();
}
void kltyt(){//恐龙跳一跳
	reset();
	int z=0,d=30,lc=0,lq=0;
	Sleep(2000);
	while(1){
		for(int n=1;n<=30;n++){
			reset();
			for(int i=1;i<=25;i++){
				cout<<" ";
			}
			printf("%05d", lc);
			cout<<endl<<endl<<endl<<endl;
			if(z==1){
				cout<<"$";
			}
			cout<<endl;
			for(int i=1;i<=30;i++){
				if(i==1&&z==0){
					cout<<"$";
				}
				if(i==d){
					cout<<"^";
				}else{
					cout<<" ";
				}
			}
			cout<<endl;
			for(int i=1;i<=30;i++){
				cout<<"=";
			}
			cout<<endl<<"W跳"; 
			if(KEY_DOWN('W')&&lq>=0){
				z=1;
				lq-=2;
			}else{
				z=0;
				lq+=1;
			}
			if(KEY_DOWN('P')){
				reset();
	            rest();
			}
			d-=1;
			lc+=1;
			if(d==1&&z==0){
				reset();
	            cout<<"游戏失败,路程:"<<lc<<endl;
	            Sleep(2000);
	            cout<<"游戏结束";
	            Sleep(2000);
	            main();
			}
			Sleep(100);
		}
		d=30;
	}
}
void ydxr(){//移动小人
	reset();
	cout<<"加载中";
	int bx=random(1,9);
	int x=5,y=5;
	Sleep(random(0,2000));
	int by=random(1,9);
	reset();
	for(int i=0;i<10;i++){
		for(int j=0;j<10;j++){
			if(i==by&&j==bx){
				cout<<'$';
			}else if(i==y&&j==x){
				cout<<'^';
			}else{
				cout<<'_';
			}
		}
		cout<<endl;
	}
	cout<<"输入提示:W上S下A左D右"<<endl<<"请输入:";
	string a;
	getline(cin,a);
	for(int i=0;i<a.size();i++){
		switch(a[i]){
			case 'W':
				y-=1;
				break;
			case 'S':
				y+=1;
				break;
			case 'A':
				x-=1;
				break;
			case 'D':
				x+=1;
				break;
		}
		reset(); 
		for(int i=0;i<10;i++){
			for(int j=0;j<10;j++){
				if(i==by&&j==bx){
					cout<<'$';
				}else if(i==y&&j==x){
					cout<<'^';
				}else{
					cout<<'_';
				}
			}
			cout<<endl;
		}
		Sleep(500);
	}
	if(x==bx||y==by){
		reset();
	    cout<<"游戏成功,路程:"<<a.size()<<endl;
	    Sleep(2000);
	    cout<<"游戏结束";
	    Sleep(2000);
	    main();
	}else{
	    cout<<"游戏失败"<<endl;
	    Sleep(2000);
	    cout<<"游戏结束";
	    Sleep(2000);
	    main();
	}
}
int main(){
	reset();
	string yx;
	start();
	cout<<"请选择游戏,游戏编号:";
	getline(cin,yx);
	while(1){
		switch(yx[yx.size()-1]){
			case '1':
				dbza();
				break;
			case '2':
				sj();
				break;
			case '3':
				kltyt();
				break;
			case '4':
				ydxr();
				break; 
			default:
				start();
				cout<<"没有找到这个游戏,请重新选择游戏,游戏编号:";
				getline(cin,yx);
		}
	}
}
/*
	cout<<" .扫雷"<<endl;

	void sl(){//扫雷
	start();
	int pl=0,lx,cx,cy,ly;
	int sz[10][10]={0},seemap[10][10]={0},x[10]={-1,-1,-1,0,0,1,1,1},y[10]={-1,0,1,-1,1,-1,0,1};
	for(int i=1;i<=5;i++){
		start();
		lx=random(1,10);
		Sleep(random(600,1000));
		ly=random(1,10);
		if(sz[ly][lx]!=9){
			sz[ly][lx]=9;
		}else{
			i-=1;
		}
		cout<<"加载中:";
		for(int n=1;n<=i;n++){
			cout<<"■";
		}
		for(int n=i;n<=4;n++){
			cout<<"□";
		}
		Sleep(random(600,1000));
	}
	for(int i=0;i<=9;i++){
		for(int j=0;j<=9;j++){
	        if(sz[i][j]==9){
	           	for(int k=0;k<=7;k++){
	           		if(sz[i+x[k]][j+y[k]]!=9){
	            		sz[i+x[k]][j+y[k]]++;
					}
	            }
	        }
		}
	}
	seemap[0][5]=0;
	seemap[0][6]=0;
	seemap[0][7]=0;
	while(1){
		start();
		for(int i=0;i<=9;i++){
			for(int j=0;j<=9;j++){
				cout<<sz[i][j];
			}
			cout<<endl;
		}
		cout<<endl<<endl;
		for(int i=0;i<=9;i++){
			for(int j=0;j<=9;j++){
				cout<<seemap[i][j];
			}
			cout<<endl;
		}
		cout<<endl<<endl;
		for(int i=0;i<=9;i++){ 
			for(int j=0;j<=9;j++){
				if(seemap[i][j]==0){
					cout<<"#"<<' ';
				}else if(seemap[i][j]==1){
					cout<<sz[i][j]<<' ';
				}else if(seemap[i][j]==2){
					cout<<"P"<<' ';
				}
			}
			cout<<endl;
		}
		cout<<"按B开始排雷"<<endl;
		cout<<"请输入需要排查的地方在第几列:";
		cin>>cx;
		cout<<endl<<"请输入需要排查的地方在第几行:";
		cin>>cy;
		if(sz[cy-1][cx-1]==9){
			start();
			cout<<"游戏失败"<<endl<<"你被雷炸死了";
			Sleep(2000);
			main();
		}else if(sz[cy-1][cx-1]!=9){
			seemap[cy-1][cx-1]=1;
			pl+=1;
		}
		if(KEY_DOWN('B')){
			start();
			cout<<"游戏胜利"<<endl<<"你排完了所有的雷";
			Sleep(2000);
			main();
		}
	}
}*/

#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
#include<bits/stdc++.h>
#include<windows.h>
#include<algorithm>
#include<iostream>
#include<cstring>
#include<time.h>
#include<string>
#include<cmath>
using namespace std;
int main();
void reset(){//重置界面
    system("cls");
    system("color 0f"); 
    system("title wzh的游戏空间");
}
void start(){//开始界面
    string a="                                                                    ";
    string b="===============================================================";
    HWND hwnd=GetForegroundWindow();
    int x=GetSystemMetrics(SM_CXSCREEN)+300;
    int y=GetSystemMetrics(SM_CYSCREEN)+300;
    char setting[30];
    sprintf(setting,"mode con:cols=%d lines=%d",x,y);
    system(setting); 
    SetWindowPos(hwnd,HWND_TOPMOST,0,0,x+300,y+300,NULL);
    MoveWindow(hwnd,-10,-40,x+300,y+300,1);
    reset();
    cout<<endl<<b<<"欢迎来到wzh的游戏空间"<<b<<endl<<endl;
    cout<<"                                             温馨提示:游戏前请切换至大写模式,游戏编号以最后一个字符为准"<<endl<<endl;
    cout<<a<<"1.躲避障碍"<<endl<<endl;
    cout<<a<<"2.手速射击"<<endl<<endl;
    cout<<a<<"3.恐龙跳一跳"<<endl<<endl;
    cout<<a<<"4.移动小人"<<endl<<endl;
    cout<<"                                                              ";
}
void rest(){//暂停 
    system("pause");
}
int random(int a,int b){//随机数 
    b-=a;
    srand(time(0)); 
    return (rand()%b)+a;//返回a和b之间的随机数 
}
void dbza(){//躲避障碍 
    reset();
    int w=10,a=0,fs=0;
    while(1){
        int d=random(1,18);
        //cout<<d<<endl;
        for(int n=0;n<10;n++){
            for(int i=0;i<10;i++){
                for(int t=0;t<20;t++){
                    if(i==a&&t==d){
                        cout<<"v";
                    }else if(i==9&&t==w||(i==8&&t==w)){
                        cout<<"^";
                    }else{
                        cout<<" ";
                    }if((i==8||i==9)&&(d==w)){
                        reset();
                        cout<<"游戏结束,得分:"<<fs;
                           Sleep(1000);
                        main();
                    }
                }
                cout<<endl;
            }
            cout<<"A向左,D向右";
            a+=1;
            if(KEY_DOWN('A')){
                w-=1;
            }else if(KEY_DOWN('D')){
                w+=1;
            }
            if(w>18){
                w=18;
            }else if(w<1){
                w=1;
            }
            if(KEY_DOWN('P')){
                reset();
                rest();
            }
            Sleep(100);
            reset();
        }
        a=0;
        fs+=1;
    }
}
void sj(){//手速射击
    reset();
    int x=0;
    cout<<"按K射击"; 
    char map[10][10]={{'\\',' ',' ',' ',' ',' ',' ',' ',' ','/'},
                      {' ','\\',' ',' ',' ',' ',' ',' ','/',' '},
                      {' ',' ','\\',' ',' ',' ',' ','/',' ',' '},
                      {' ',' ',' ','\\',' ',' ','/',' ',' ',' '},
                      {' ',' ',' ',' ','\\','/',' ',' ',' ',' '},
                      {' ',' ',' ',' ','/','\\',' ',' ',' ',' '},
                      {' ',' ',' ','/',' ',' ','\\',' ',' ',' '},
                      {' ',' ','/',' ',' ',' ',' ','\\',' ',' '},
                      {' ','/',' ',' ',' ',' ',' ',' ','\\',' '},
                      {'/',' ',' ',' ',' ',' ',' ',' ',' ','\\'},};
    bool cg=0;
    Sleep(2000);
    Sleep(random(1,10)*100);
    reset();
    for(int i=0;i<10;i++){
        for(int j=0;j<10;j++){
            cout<<map[i][j];
        }
        cout<<endl;
    }
    if(KEY_DOWN('K')){
            reset();
            cout<<"游戏失败";
            Sleep(2000);
            main();
    }
    for(int i=0;i<1000000;i++){
        if(KEY_DOWN('K')){
            reset();
            cout<<"游戏成功,得分:"<<100-i/10000<<endl;
            Sleep(2000);
            cout<<"游戏结束";
            Sleep(2000);
            cg=1;
            break;
        }
    }
    if (cg==0){
        reset();
        cout<<"游戏失败"<<endl;
        Sleep(2000);
        cout<<"游戏结束";
        Sleep(2000);
    }
    main();
}
void kltyt(){//恐龙跳一跳
    reset();
    int z=0,d=30,lc=0,lq=0;
    Sleep(2000);
    while(1){
        for(int n=1;n<=30;n++){
            reset();
            for(int i=1;i<=25;i++){
                cout<<" ";
            }
            printf("%05d", lc);
            cout<<endl<<endl<<endl<<endl;
            if(z==1){
                cout<<"$";
            }
            cout<<endl;
            for(int i=1;i<=30;i++){
                if(i==1&&z==0){
                    cout<<"$";
                }
                if(i==d){
                    cout<<"^";
                }else{
                    cout<<" ";
                }
            }
            cout<<endl;
            for(int i=1;i<=30;i++){
                cout<<"=";
            }
            cout<<endl<<"W跳"; 
            if(KEY_DOWN('W')&&lq>=0){
                z=1;
                lq-=2;
            }else{
                z=0;
                lq+=1;
            }
            if(KEY_DOWN('P')){
                reset();
                rest();
            }
            d-=1;
            lc+=1;
            if(d==1&&z==0){
                reset();
                cout<<"游戏失败,路程:"<<lc<<endl;
                Sleep(2000);
                cout<<"游戏结束";
                Sleep(2000);
                main();
            }
            Sleep(100);
        }
        d=30;
    }
}
void ydxr(){//移动小人
    reset();
    cout<<"加载中";
    int bx=random(1,9);
    int x=5,y=5;
    Sleep(random(0,2000));
    int by=random(1,9);
    reset();
    for(int i=0;i<10;i++){
        for(int j=0;j<10;j++){
            if(i==by&&j==bx){
                cout<<'$';
            }else if(i==y&&j==x){
                cout<<'^';
            }else{
                cout<<'_';
            }
        }
        cout<<endl;
    }
    cout<<"输入提示:W上S下A左D右"<<endl<<"请输入:";
    string a;
    getline(cin,a);
    for(int i=0;i<a.size();i++){
        switch(a[i]){
            case 'W':
                y-=1;
                break;
            case 'S':
                y+=1;
                break;
            case 'A':
                x-=1;
                break;
            case 'D':
                x+=1;
                break;
        }
        reset(); 
        for(int i=0;i<10;i++){
            for(int j=0;j<10;j++){
                if(i==by&&j==bx){
                    cout<<'$';
                }else if(i==y&&j==x){
                    cout<<'^';
                }else{
                    cout<<'_';
                }
            }
            cout<<endl;
        }
        Sleep(500);
    }
    if(x==bx||y==by){
        reset();
        cout<<"游戏成功,路程:"<<a.size()<<endl;
        Sleep(2000);
        cout<<"游戏结束";
        Sleep(2000);
        main();
    }else{
        cout<<"游戏失败"<<endl;
        Sleep(2000);
        cout<<"游戏结束";
        Sleep(2000);
        main();
    }
}
int main(){
    reset();
    string yx;
    start();
    cout<<"请选择游戏,游戏编号:";
    getline(cin,yx);
    while(1){
        switch(yx[yx.size()-1]){
            case '1':
                dbza();
                break;
            case '2':
                sj();
                break;
            case '3':
                kltyt();
                break;
            case '4':
                ydxr();
                break; 
            default:
                start();
                cout<<"没有找到这个游戏,请重新选择游戏,游戏编号:";
                getline(cin,yx);
        }
    }
}
/*
    cout<<" .扫雷"<<endl;

    void sl(){//扫雷
    start();
    int pl=0,lx,cx,cy,ly;
    int sz[10][10]={0},seemap[10][10]={0},x[10]={-1,-1,-1,0,0,1,1,1},y[10]={-1,0,1,-1,1,-1,0,1};
    for(int i=1;i<=5;i++){
        start();
        lx=random(1,10);
        Sleep(random(600,1000));
        ly=random(1,10);
        if(sz[ly][lx]!=9){
            sz[ly][lx]=9;
        }else{
            i-=1;
        }
        cout<<"加载中:";
        for(int n=1;n<=i;n++){
            cout<<"■";
        }
        for(int n=i;n<=4;n++){
            cout<<"□";
        }
        Sleep(random(600,1000));
    }
    for(int i=0;i<=9;i++){
        for(int j=0;j<=9;j++){
            if(sz[i][j]==9){
                   for(int k=0;k<=7;k++){
                       if(sz[i+x[k]][j+y[k]]!=9){
                        sz[i+x[k]][j+y[k]]++;
                    }
                }
            }
        }
    }
    seemap[0][5]=0;
    seemap[0][6]=0;
    seemap[0][7]=0;
    while(1){
        start();
        for(int i=0;i<=9;i++){
            for(int j=0;j<=9;j++){
                cout<<sz[i][j];
            }
            cout<<endl;
        }
        cout<<endl<<endl;
        for(int i=0;i<=9;i++){
            for(int j=0;j<=9;j++){
                cout<<seemap[i][j];
            }
            cout<<endl;
        }
        cout<<endl<<endl;
        for(int i=0;i<=9;i++){ 
            for(int j=0;j<=9;j++){
                if(seemap[i][j]==0){
                    cout<<"#"<<' ';
                }else if(seemap[i][j]==1){
                    cout<<sz[i][j]<<' ';
                }else if(seemap[i][j]==2){
                    cout<<"P"<<' ';
                }
            }
            cout<<endl;
        }
        cout<<"按B开始排雷"<<endl;
        cout<<"请输入需要排查的地方在第几列:";
        cin>>cx;
        cout<<endl<<"请输入需要排查的地方在第几行:";
        cin>>cy;
        if(sz[cy-1][cx-1]==9){
            start();
            cout<<"游戏失败"<<endl<<"你被雷炸死了";
            Sleep(2000);
            main();
        }else if(sz[cy-1][cx-1]!=9){
            seemap[cy-1][cx-1]=1;
            pl+=1;
        }
        if(KEY_DOWN('B')){
            start();
            cout<<"游戏胜利"<<endl<<"你排完了所有的雷";
            Sleep(2000);
            main();
        }
    }
}*/

  • 16
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值