问题标题: 酷町堂:暑假问答第一天

0
0
已解决
包涵宇
包涵宇
中级天翼
中级天翼

今天是暑假问答的第一天,所以20豆

今天问题很简单,只要发一个你纯手工编的游戏就行了

我会采纳最好的

PS:每天都有哦~


0
已采纳
许金夫
许金夫
初级天翼
初级天翼

我的《自定义算法》算游戏吗

许金夫在2020-07-05 20:04:53追加了内容

<自定义算法>是我手动编的,不知道算不算游戏

许金夫在2020-07-05 20:12:29追加了内容

自定义算法:

#include <bits/stdc++.h>
#include<windows.h>
using namespace std;
#define DIGIT   4  
#define DEPTH   10000  
#define MAX     30000  
/*
for(int i=0;i<spn.size();i++){
		cout<<spn[i];
		Sleep(50);
	}
*/
string p1="好消息,好消息!<自定义计算>更新了!!!";
string p2="<自定义计算2.0>将会有以下更新:";
string p3="[1]:1.0系统中复杂的if将由函数代替";
string p4="[2]:2.0更新将出现多种算法!!!";
string p5="[3]:吐槽一下,希望这次不要再有人盗版我的代码了~";
string p6="好了,话不多说,看一看这次<自定义计算>全家桶将加入那些算法吧~"; 
string ss1="||            ————请选择项目————                               ||";
string ss2="||                 [1]<高精度>                                         ||";
string ss3="||                 [2]<递推>                                           ||";
string ss4="||                 [3]<递归>                                           ||"; 
string ss5="||                 [4]<模拟>                                           ||";
string ss6="||                 [5]<埃氏筛>                                         ||"; 
string ss7="||                 [6]<数学>                                           ||"; 



string ss1_1="||                 [1]<高精度>x+y                                      ||";
string ss1_2="||                 [2]<高精度>x-y                                      ||";
string ss1_3="||                 [3]<高精度>x*y                                      ||";
string ss1_4="||                 [4]<高精度>x/y                                      ||";
string ss2_1="||                 [1]<递推>杨辉三角                                   ||";
string ss2_2="||                 [2]<递推>斐波那契                                   ||";
string ss2_3="||                 [3]<递推>位数问题                                   ||";
string ss3_1="||                 [1]<递归>八皇后                                     ||";
string ss3_2="||                 [2]<递归>汉诺塔                                     ||"; 
string ss3_3="||                 [3]<递归>排列组合                                   ||"; 
string ss3_4="||                 [4]<递归>素数环                                     ||";
string ss4_1="||                 [1]<模拟>多项式输出                                 ||"; 
string ss4_2="||                 [2]<模拟>补码                                       ||"; 
string ss4_3="||                 [3]<模拟>进制转换                                   ||";
string ss4_4="||                 [4]<模拟>有序数组合并                               ||"; 
string ss4_5="||                 [5]<模拟>滑动窗口                                   ||";
string ss5_1="||                 [1]<埃氏筛>分解质因数                               ||";
string ss5_2="||                 [2]<埃氏筛>质因数个数                               ||"; 
string ss5_3="||                 [3]<埃氏筛>找出质因数                               ||"; 
string ss6_1="||                 [1]<数学>数据                                       ||"; 



string ss6_1_1="||                 [1]<数学-数据>数据分析                              ||"; 
string ss6_1_2="||                 [2]<数学-数据>中位数/平均数/众数                    ||";












string sp1="有一个多项式:f(x)=a[n]*(x^n)+a[n-1]*(x^(n-1))+...+a[1]*x+a[0],其中a[n]!=0.你需要输入n和a[n],即可得出f(x)";
string sp2="八皇后问题--------一个古老而著名的问题,是回溯算法的典型案例。";
string sp3="下面将会输出所有八皇后的选项<此题在题库里无法AC>,所有的'#'代表皇后,为了方便观看,每次输出后将会稍加暂停,请耐心等待~";
string sp4="现在输入两个从小大到排列的有序数组,长度分别为m、n,就可以将这两个有序数组合并为一个长度为m+n的有序数组。";
string sp5="现在有一个长为m的数组A,给定一个整数n(n<m),请你输入所有的数值,查找A中有多少个长度为n的子数组的和为k。";
string sp6="此函数可以计算出在所有的n位数中,有多少个数字中有偶数个数字k";
string sp7="输入n,输出自然数1到n所有不重复的排列";
string sp8="输入n,组成一个环,在这个环中任意两个相邻的数字的和都是素数";
string sp9="输入合数n,把n分解成若干质因数乘积的形式"; 
string sp10="输入n,求出n的所有不重复的质因数个数";
string sp11="输入n,找出它的所有质因数(重复的只取一个)";






static int gEightQueen[8] = { 0 }, gCount = 0;//八皇后的定义 
typedef int bignum_t[MAX+1];//高精度除法的定义 


void shuxue(){
	int x[5000000];
	memset(x,0,sizeof(x));
	cout<<"输入一组数据,系统将对他进行分析"<<endl;
	int n;
	cout<<"这组数据的个数:";
	cin>>n;
	int zuju;
	cout<<"组距的值为(不要告诉我你不知道组距是啥):";
	cin>>zuju; 
	for(int i=1;i<=n;i++){
		cin>>x[i];
	} 
	cout<<endl;
	sort(x+1,x+n+1);
	int big=x[n];
	int small=x[0];
	int zushu=(big-small)/zuju+1;
	cout<<"这组数据的分组组数为"<<zushu<<"个"; 
}


void print()//八皇后
{
	cout<<"第"<<gCount<<"个八皇后排列-----------------------------------"<<endl;
	cout<<"                            =========="<<endl;
    for (int i = 0; i < 8; i++)
    {    
    	cout<<"                            |"; 
        int inner;
        for (inner = 0; inner < gEightQueen[i]; inner++)
            cout << " ";
            cout <<"#";
        for (inner = gEightQueen[i] + 1; inner < 8; inner++)
            cout << " ";
        cout<<"|"; 
        cout << endl;
    }
    cout<<"                            =========="<<endl;
    Sleep(200);
}
int check_pos_valid(int loop, int value){//八皇后
    int index;
    int data;
    for (index = 0; index < loop; index++)
    {
        data = gEightQueen[index];
        if (value == data)
            return 0;
        if ((index + data) == (loop + value))
            return 0;
        if ((index - data) == (loop - value))
            return 0;
    }
    return 1;
}
void eight_queen(int index)//八皇后 
{
	int loop;
    for (loop = 0; loop < 8; loop++)
    {
        if (check_pos_valid(index, loop))
        {
            gEightQueen[index] = loop;
            if (7 == index)
            {
                gCount++, print();
                gEightQueen[index] = 0;
                return;
            }
            eight_queen(index + 1);
            gEightQueen[index] = 0;
        }
    }
}
void dg1(){//八皇后主函数
	for(int i=0;i<sp2.size();i++){
		cout<<sp2[i];
		Sleep(50);
	}
	cout<<endl;
	for(int i=0;i<sp3.size();i++){
		cout<<sp3[i];
		Sleep(50);
	}
	cout<<endl;
	Sleep(100);
	eight_queen(0);
    cout << "总数为=" << gCount << endl;
}  
int cc;//汉诺塔
void Move(int n, char a, char b){//汉诺塔
    printf("第%d次移动 Move %d: Move from %c to %c !\n",++cc,n,a,b);
    Sleep(100); 
}
void Hanoi(int n, char a, char b, char c)//汉诺塔
{
    if (n == 1)
    {
        Move(n, a, c);
    }
    else
    {
        Hanoi(n - 1, a, c, b);
        Move(n, a, c);
        Hanoi(n - 1, b, a, c);
    }
}
void dg2(){//汉诺塔主函数 
	int n=8;
    printf("汉诺塔的层数:\n");
    scanf(" %d",&n);
    Hanoi(n, 'A', 'B', 'C');
} 
int used[10];
int pl[10];
int n,cnt=0;
void dfs1(int t){
    if(t>n){
        for(int i=1;i<=n;i++){
            cout<<pl[i]<<" ";
        }
        cout<<endl;
        return ;
    }
    for(int i=1;i<=n;i++){
        if(used[i]==0){
            pl[t]=i;
            used[i]=1;
            dfs1(t+1);
            used[i]=0;
        }
    }
}
void dg3(){
	for(int i=0;i<sp7.size();i++){
		cout<<sp7[i];
		Sleep(50);
	}
	cout<<endl<<"n的数值=";
    cin>>n;
    dfs1(1); 
}

int n1, used1[25], a1[25], cnt1;
bool isprime(int x, int y) {
    int s = x + y;
    if(s==0) return false;
    for(int i=2; i<=sqrt(s); i++) {
        if(s%i==0) return false;
    }
    return true;
}
void dfs(int t) {
    if(t==n1+1) {
        if(isprime(a1[1], a1[t-1])) {
            cnt1 ++;
            for(int i=1; i<=n1; i++) {
                cout << a1[i] << ' ';
            }
            cout << endl;
        }
        return ;
    }
    for(int i=1; i<=n1; i++) {
        if(used1[i]==0 && (isprime(a1[t-1], i) || t==1)) {
            a1[t] = i;
            used1[i] = 1;
            dfs(t+1);
            used1[i] = 0;
        }
    }
}
void dg4() {
	for(int i=0;i<sp8.size();i++){
		cout<<sp8[i];
		Sleep(50);
	}
	cout<<endl<<"数值n=";
    cin >> n1;
    dfs(1);
    cout <<"总方案数="<< cnt1;
}


void gj1(){//高精度加法
	int a[100005];
	int b[100005];
	int c[100005];
	memset(a,0,sizeof(a));
	memset(b,0,sizeof(b));
	memset(c,0,sizeof(c));
	string s1,s2;
	cout<<"加数x:";
    cin>>s1;
    cout<<"加数y:";
	cin>>s2;
    a[0]=s1.size();
    b[0]=s2.size();
    for(int i=1;i<=s1.size();i++)a[i]=int(s1[a[0]-i]-'0');
    for(int i=1;i<=s2.size();i++)b[i]=int(s2[b[0]-i]-'0');
    c[0]=max(a[0],b[0]);
    int jw=0;
    for(int i=1;i<=c[0];i++){
        c[i]=a[i]+b[i]+jw;
        jw=c[i]/10;
        c[i]%=10;
    }
    if(jw==1){
        c[0]++;
        c[c[0]]=jw;
    }
    cout<<"x+y=";
    for(int i=c[0];i>=1;i--){
        cout<<c[i];
    }
} 
void gj2(){//高精度减法 
	string sd,se,sa;  
    int a[100001]={0},b[100001]={0},c[100001]={0},mc,me,mz,n,mo=0; 
	cout<<"减数x:"; 
    cin>>sd;  
    cout<<"减数y:";
    cin>>se; 
	mc=sd.size();  
    me=se.size();  
    if(mc<me||mc==me&&sd<se){sa=sd;sd=se;se=sa;n=mc;mc=me;me=n;mo=-1;}   
    for(int i=1;i<=mc;i++) a[i]=sd[mc-i]-'0';  
    for(int i=1;i<=me;i++) b[i]=se[me-i]-'0';  
    int i=1,o=0;  
    while(i<=mc||i<=me)  
    {  
        if(a[i]<b[i]){a[i+1]--;a[i]+=10;}  
        c[i]=a[i]-b[i];  
        i++;  
    }  
    mz=i;while(c[mz]==0&&mz>1)mz--; 
	cout<<"x-y="; 
    if(mo==-1) cout<<"-";  
    for(int i=mz;i>=1;i--) cout<<c[i];  
}
void gj3(){//高精度乘法 
	string sa="",sb="",st="";
	int la=0,lb=0,lc=0,tla=0,tlb=0,t=0;
	bool isuselesszero=true;
	vector <int> a,b,c;
	cout<<"乘数x:";
	cin>>sa;
	cout<<"乘数y:";
	cin>>sb;
    if(sa[0]=='0' || sb[0]=='0') {
		cout<<0; 
		return ;
	}
    la=sa.length(); lb=sb.length();
    if(la>lb){
		swap(sa,sb); 
		la=sa.length(); 
		lb=sb.length();
	}
    lc=max(la,lb); 
	tla=la; 
	tlb=lb;
    reverse(sa.begin(),sa.end()); 
	reverse(sb.begin(),sb.end());
    while(tla<lc){
		sa+='0'; 
		tla=sa.length();
	}
    while(tlb<lc){
		sb+='0'; 
		tlb=sb.length();
	}
    for(int i=0;i<1000000;i++) c.push_back(0);
    for(int i=0;i<lc;i++){
		a.push_back((sa[i]-'0')); 
		b.push_back((sb[i]-'0'));
	}
    for(int i=0;i<lb;i++){
        for(int j=0;j<la;j++){
            c[i+j]+=a[j]*b[i];
            if(c[i+j]>=10){
                c[i+j+1]+=c[i+j]/10;
                c[i+j]%=10;
            }
        }
    }
    reverse(c.begin(),c.end());
    cout<<"x*y=";
    for(int i=0;i<1000000;i++){
        if(isuselesszero&&c[i]==0) continue;
        if(c[i]!=0) isuselesszero=false;
        if(c[i]<10) cout<<c[i];
        else{
            c[i-1]=c[i]/10;
            c[i]%=10;
            cout<<c[i];
        }
    }
    return ;
}







int read(bignum_t a,istream& is=cin){  //高精度除法
    char buf[MAX*DIGIT+1],ch;  
    int i,j;  
    memset((void*)a,0,sizeof(bignum_t));  
    if (!(is>>buf))   return 0;  
    for (a[0]=strlen(buf),i=a[0]/2-1;i>=0;i--)  
        ch=buf[i],buf[i]=buf[a[0]-1-i],buf[a[0]-1-i]=ch;  
    for (a[0]=(a[0]+DIGIT-1)/DIGIT,j=strlen(buf);j<a[0]*DIGIT;buf[j++]='0');  
    for (i=1;i<=a[0];i++)  
        for (a[i]=0,j=0;j<DIGIT;j++)  
            a[i]=a[i]*10+buf[i*DIGIT-1-j]-'0';  
    for (;!a[a[0]]&&a[0]>1;a[0]--);  
    return 1;  
}  
void write(const bignum_t a,ostream& os=cout){  //高精度除法
    int i,j;  
    for (os<<a[i=a[0]],i--;i;i--)  
        for (j=DEPTH/10;j;j/=10)  
            os<<a[i]/j%10;  
}  
void sub(bignum_t a,const bignum_t b,const int c,const int d){  //高精度除法
    int i,O=b[0]+d;  
    for (i=1+d;i<=O;i++)  
        if ((a[i]-=b[i-d]*c)<0)  
            a[i+1]+=(a[i]-DEPTH+1)/DEPTH,a[i]-=(a[i]-DEPTH+1)/DEPTH*DEPTH;  
    for (;a[i]<0;a[i+1]+=(a[i]-DEPTH+1)/DEPTH,a[i]-=(a[i]-DEPTH+1)/DEPTH*DEPTH,i++);  
    for (;!a[a[0]]&&a[0]>1;a[0]--);  
}  
int comp(const bignum_t a,const int c,const int d,const bignum_t b){  //高精度除法
    int i,t=0,O=-DEPTH*2;  
    if (b[0]-a[0]<d&&c)  
        return 1;  
    for (i=b[0];i>d;i--){  
        t=t*DEPTH+a[i-d]*c-b[i];  
        if (t>0) return 1;  
        if (t<O) return 0;  
    }  
    for (i=d;i;i--){  
        t=t*DEPTH-b[i];  
        if (t>0) return 1;  
        if (t<O) return 0;  
    }  
    return t>0;  
}  

void div(bignum_t c,bignum_t a,const bignum_t b){//高精度除法  
    int h,l,m,i;  
    memset((void*)c,0,sizeof(bignum_t));  
    c[0]=(b[0]<a[0]+1)?(a[0]-b[0]+2):1;  
    for (i=c[0];i;sub(a,b,c[i]=m,i-1),i--)  
        for (h=DEPTH-1,l=0,m=(h+l+1)>>1;h>l;m=(h+l+1)>>1)  
            if (comp(b,m,i-1,a)) h=m-1;  
            else l=m;  
    for (;!c[c[0]]&&c[0]>1;c[0]--);  
    c[0]=c[0]>1?c[0]:1;  
}  
void gj4(){
	bignum_t a,b,c;
	cout<<"被除数a为:";  
    read(a);  
    cout<<"除数b为:";
	read(b);  
    div(c,a,b);  
    cout<<"a/b=";
    write(c);  
    cout<<endl;  
    cout<<"a%b=";
    write(a);  
    cout<<endl; 
} 






void dt1(){//杨辉三角
	cout<<"三角的层数:";
	int n;
	cin>>n; 
    const int m = 2 * n-1;
    int arr[n + 1][m] = { 0 };
    for (int i = 0; i < n; i++)
    {
        arr[i][n - i- 1] = 1;
        arr[i][n + i -1] = 1;
    }
    for (int i = 2; i < n; i++)
    {
        for (int j = n - i + 1; j < n-2+i; j = j + 2)
            arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j + 1];
    }
    int p;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n - i - 1; j++)
            cout << "    ";
        p = 1;
        for (int j = n - i - 1; p < i + 2; j = j + 2)
        {
            cout << setw(4) << arr[i][j] << "    ";
            p = p + 1;
        }
        cout << endl;
    }
} 
void dt2(){//斐波那契数列 
	int a[10000],b[10000]; 
	string s1="1",s2="1"; 
	char x[1200];
	memset(a,0,sizeof(a));
	memset(b,0,sizeof(b));
	int s,n,sum;
	cout<<"你求的是第几个数列:";
    cin>>n;
    for(int j=2;j<n;j++) { 
        memset(a,0,sizeof(a));
        memset(b,0,sizeof(b));
        a[0]=s1.size(); 
        b[0]=s2.size(); 
        for(int i=1;i<=a[0];i++){ 
            a[i]=s1[a[0]-i]-'0';
		} 
        for(int i=1;i<=b[0];i++){ 
            b[i]=s2[b[0]-i]-'0';
		}
        sum=max(a[0],b[0]);
        for(int i=1;i<=sum;i++){ 
            a[i]+=b[i]; 
            a[i+1]+=a[i]/10; 
            a[i]%=10;} 
        sum++; 
        while(!(a[sum])&&(sum>1))sum--;
        s=0;
        for(int i=sum;i>=1;i--)x[s++]=a[i]+'0'; 
        s1=s2; 
        s2=x; 
    } 
    cout<<s2;
}
void dt3(){
	int j[100005];
	int o[100005];
	memset(j,0,sizeof(j));
	memset(j,0,sizeof(j));
	for(int i=0;i<sp6.size();i++){
		cout<<sp6[i];
		Sleep(50);
	} 
	cout<<endl;
	j[1]=1;
    o[1]=8;
    int n,k;
    cout<<"位数n=";
    cin>>n;
    cout<<"数字k=";
    cin>>k;
    for(int i=2;i<=n;i++){
        j[i]=j[i-1]*9+o[i-1];
        o[i]=o[i-1]*9+j[i-1];
    }
    cout<<n<<"位数中共有"<<o[n]<<"个数有偶数个"<<k;
}
void moni1(){
	int t[101];
	memset(t,-1,sizeof(t));
	for(int i=0;i<sp1.size();i++){
		cout<<sp1[i];
		Sleep(50);
	}
	int n, p;
    bool f = true;
    cout<<endl<<"n=";
    cin >> n;
    p = n;
    for(int i=1; i<=n+1; i++) {
    	cout<<"t["<<i<<"]=";
		cin>>t[i];
	}
	cout<<"f(x)=";
    for(int i=1; i<=n+1; i++) {
        if(t[i]==0) {
            p --;
            continue;
        }
        if(t[i]<0) cout << "-";
        if(t[i]>0 && !f) {
            cout << "+";
        }
        if(abs(t[i])!=1 || p==0) cout << abs(t[i]);
        if(p>0) cout << "x";
        if(p>1) cout << "^" << p;
        p --;
        f = false;
    }
}
void moni2(){
	cout<<"输入一个正整数二进制:";
	string s;
    cin >> s;
    cout<<s<<"的相反数的八位二进制补码=";
    int n = 7 - s.size();
    for(int i=1; i<=n; i++) {
        s = '0' + s;
    }
    for(int i=0; i<s.size(); i++) {
        if(s[i]=='0') s[i] = '1';
        else s[i] = '0';
    }
    for(int i=s.size()-1; i>=0; i--) {
        if(s[i]=='0') {
            s[i] = '1';
            break;
        }
        s[i] = '0';
    }
    cout << 1 << s;
}
void moni3(){
	string s="0123456789ABCDEFGHIJ";
	string ans="";
	int n,k;
	cout<<"十进制数x="; 
    cin>>n;
    cout<<"k进制=";
    cin>>k;
	cout<<n<<"转化为"<<k<<"进制="; 
    while(n){
        ans=s[n%k]+ans;
        n/=k;
    }
    cout<<ans;
}
void moni4(){
	for(int i=0;i<sp4.size();i++){
		cout<<sp4[i];
		Sleep(50);
	}
	cout<<endl;
	int a[1005], b[1005], c[2005], m=0, n=0; 
	memset(a,0,sizeof(a));
	memset(b,0,sizeof(b));
	memset(c,0,sizeof(c));
	cout<<"a数组的长度m="; 
	cin >> m ;
	cout<<"b数组的长度n=";
	cin >> n ; 
	cout<<"a数组的数值:";
    for(int i=1; i<=m; i++) {
        cin >> a[i];
    } 
	cout<<"b数组的数值:";
    for(int i=1; i<=n; i++) {
        cin >> b[i];
    } 
    cout<<"合并后的数组为:";
    int i = 1, j = 1, k = 0;
    while(i<=m && j<=n) {
        if(a[i] < b[j]) {
            c[++k] = a[i];
            i ++;
        }else {
            c[++k] = b[j];
            j ++;
        }
    }
    while(i<=m) {
        c[++k] = a[i];
        i ++;
    }
    while(j<=n) {
        c[++k] = b[j];
        j ++;
    }
    for(int i=1; i<=k; i++) {
        cout << c[i] << ' ';
    }
}
void moni5(){
	for(int i=0;i<sp5.size();i++){
		cout<<sp5[i];
		Sleep(50);
	}
	cout<<endl;
	int a[10005];
	memset(a,0,sizeof(a));
	int n, m, cnt = 0, t = 0 , k;
	cout<<"输入数组A的长度m:";
    cin >> n ;
    cout<<"输入子数组的长度n:";
    cin >> m ;
    cout<<"子数组的和k=";
    cin >> k ;
	cout<<"A数组的数值为:"; 
    for(int i=1; i<=n; i++) 
        cin >> a[i];
    for(int i=0; i<m; i++) {//初始化窗口
        t += a[i];
    }
    for(int i=m; i<=n; i++) {//模拟窗口滑动的过程
        t += a[i] - a[i-m];
        if(t == k) cnt ++;
    }
    cout << "符合的子数组的数量=";
    cout << cnt; 
}
void ass1(){
	for(int i=0;i<sp9.size();i++){
		cout<<sp9[i];
		Sleep(50);
	}
	cout<<endl<<"合数n1=";
	int n1,i=2;
    cin>>n1; 
    cout<<n1<<"=";
    do{
        while(n1%i==0){
        	cout<<i;
            n1/=i;
            if(n1!=1)
                cout<<"*";  
        }
        i++; 
    }
    while(n1!=1);
}
void ass2(){
	for(int i=0;i<sp10.size();i++){
		cout<<sp10[i];
		Sleep(50);
	}
	cout<<endl;
	cout<<"正整数n=";
	long long number;
    cin>>number;
    int a ;
    for(int i=2;i<=number/2;i++){
        if(number%i==0){
            int j;
            for(j=2;j<=sqrt(i);j++){
                if(i%j==0){
                    break;
                }
            }
            if(j>sqrt(i)){
                a++;
            }
        }
    }
    cout<<number<<"的不重复质因数的个数为:"; 
    cout << a ;
}
void ass3(){
	for(int i=0;i<sp11.size();i++){
		cout<<sp11[i];
		Sleep(50);
	}
	cout<<endl;
	long long number;
	cout<<"n的值为:";
    cin>>number;
    cout<<"n的所有质因数="; 
    for(int i=2;i<=number;i++){
        if(number%i==0){
            int j;
            for(j=2;j<=sqrt(i);j++){
                if(i%j==0){
                    break;
                }
            }
            if(j>sqrt(i)){
                cout<<i<<" ";
            }
        }
    }
}

int main(){
	for(int i=0;i<5;i++){
		for(int i=0;i<1;i++)cout<<endl<<endl<<endl<<endl<<endl<<"            ";system("cls");
		for(int i=0;i<1;i++)cout<<endl<<endl<<endl<<endl<<endl<<"            .";system("cls");
		for(int i=0;i<1;i++)cout<<endl<<endl<<endl<<endl<<endl<<"            ..";system("cls");
		for(int i=0;i<1;i++)cout<<endl<<endl<<endl<<endl<<endl<<"            ...";system("cls");
		for(int i=0;i<1;i++)cout<<endl<<endl<<endl<<endl<<endl<<"            ....";system("cls");
		for(int i=0;i<1;i++)cout<<endl<<endl<<endl<<endl<<endl<<"            .....";system("cls");
		for(int i=0;i<1;i++)cout<<endl<<endl<<endl<<endl<<endl<<"            ......";system("cls");
		for(int i=0;i<1;i++)cout<<endl<<endl<<endl<<endl<<endl<<"            .......";system("cls");
		for(int i=0;i<1;i++)cout<<endl<<endl<<endl<<endl<<endl<<"            ........";system("cls");
		for(int i=0;i<1;i++)cout<<endl<<endl<<endl<<endl<<endl<<"            .........";system("cls");
		for(int i=0;i<1;i++)cout<<endl<<endl<<endl<<endl<<endl<<"             .........";system("cls");
		for(int i=0;i<1;i++)cout<<endl<<endl<<endl<<endl<<endl<<"              .........";system("cls");
		for(int i=0;i<1;i++)cout<<endl<<endl<<endl<<endl<<endl<<"               .........";system("cls");
		for(int i=0;i<1;i++)cout<<endl<<endl<<endl<<endl<<endl<<"                ........";system("cls");
		for(int i=0;i<1;i++)cout<<endl<<endl<<endl<<endl<<endl<<"                 .......";system("cls");
		for(int i=0;i<1;i++)cout<<endl<<endl<<endl<<endl<<endl<<"                  ......";system("cls");
		for(int i=0;i<1;i++)cout<<endl<<endl<<endl<<endl<<endl<<"                   .....";system("cls");
		for(int i=0;i<1;i++)cout<<endl<<endl<<endl<<endl<<endl<<"                    ....";system("cls");
		for(int i=0;i<1;i++)cout<<endl<<endl<<endl<<endl<<endl<<"                     ...";system("cls");
		for(int i=0;i<1;i++)cout<<endl<<endl<<endl<<endl<<endl<<"                      ..";system("cls");
		for(int i=0;i<1;i++)cout<<endl<<endl<<endl<<endl<<endl<<"                       .";system("cls");
	}
	system("cls");
	int zh,mm;//账号,密码
	cout << endl << endl << endl << endl ;
	cout<<"                     -------自定义计算 2.0-------"<<endl<<endl;
	cout<<"                 Hello~ :) 欢迎来到全新的自定义计算2.0----5/23版"<<endl; 
	cout<<"                     请输入账号:";cin>>zh;
	cout<<"                     请输入密码:";cin>>mm;
	int qw;
	bool qe=1;
	if(zh==123456&&mm==456789)qw=1;
	else qw=2;
	while(qw==2){
		if(zh!=123456)cout<<"                     账号不存在"<<endl; 
		else if(mm!=456789)cout<<"                     密码输入错误"<<endl;
		cout<<"                     请再次输入账号:";cin>>zh;
		cout<<"                     请再次输入密码:";cin>>mm;
		if(zh==123456&&mm==456789)qw=1;
		else qw=2; 
	} 
	while(qw==1){
		system("cls");
		if(qe==1){	
			for(int i=0;i<p1.size();i++){
				cout<<p1[i];
				Sleep(50);
			} 
			cout<<endl;
			for(int i=0;i<p2.size();i++){
				cout<<p2[i];
				Sleep(50);
			} 
			cout<<endl;
			for(int i=0;i<p3.size();i++){
				cout<<p3[i];
				Sleep(50); 
			} 
			cout<<endl;
			for(int i=0;i<p4.size();i++){
				cout<<p4[i];
				Sleep(50);
			} 
			cout<<endl;
			for(int i=0;i<p5.size();i++){
				cout<<p5[i];
				Sleep(50);
			} 
			cout<<endl;
			for(int i=0;i<p6.size();i++){
				cout<<p6[i];
				Sleep(50);
			} 
			cout<<endl;
			qe=0;
		}
		cout<<ss1<<endl;
		cout<<ss2<<endl;
		cout<<ss3<<endl;
		cout<<ss4<<endl; 
		cout<<ss5<<endl;
		cout<<ss6<<endl;
		cout<<ss7<<endl;
		int xuanxiang;//选项------------------------------------------------------------ 
		cout<<"请选择功能:"; 
		cin>>xuanxiang; 
		if(xuanxiang==1){//高精度 
			system("cls");
			cout<<ss1<<endl;
			cout<<ss1_1<<endl;
			cout<<ss1_2<<endl;
			cout<<ss1_3<<endl;
			cout<<ss1_4<<endl;
			int xuanxiang1;
			cout<<"你的选择:";
			cin>>xuanxiang1; 
			if(xuanxiang1==1){
				system("cls");
				gj1();
				Sleep(500);
			}
			else if(xuanxiang1==2){
				system("cls");
				gj2();
				Sleep(500);
			}
			else if(xuanxiang1==3){
				system("cls");
				gj3();
				Sleep(500);
			}
			else if(xuanxiang1==4){
				system("cls");
				gj4();
				Sleep(500);
			}
		}
		
		
		else if(xuanxiang==2){//递推 
			system("cls");
			cout<<ss1<<endl;
			cout<<ss2_1<<endl;
			cout<<ss2_2<<endl;
			cout<<ss2_3<<endl;
			int xuanxiang1;
			cout<<"你的选择:";
			cin>>xuanxiang1; 
			if(xuanxiang1==1){
				system("cls");
				dt1();
				Sleep(500);
			}
			else if(xuanxiang1==2){
				system("cls");
				dt2();
				Sleep(500);
			}
			else if(xuanxiang1==3){
				system("cls");
				dt3();
				Sleep(500);
			}
		}
		
		else if(xuanxiang==3){//递归 
			system("cls");
			cout<<ss1<<endl;
			cout<<ss3_1<<endl;
			cout<<ss3_2<<endl;
			cout<<ss3_3<<endl;
			cout<<ss3_4<<endl;
			int xuanxiang1;
			cout<<"你的选择:";
			cin>>xuanxiang1; 
			if(xuanxiang1==1){
				system("cls");
				dg1();
				gCount=0;
				Sleep(500);
			}
			else if(xuanxiang1==2){
				system("cls");
				dg2();
				cc=0; 
				Sleep(500);
			}
			else if(xuanxiang1==3){
				system("cls");
				dg3(); 
				Sleep(500);
				n,cnt=0;
			}
			else if(xuanxiang1==4){
				system("cls");
				dg4(); 
				Sleep(500);
				n1,cnt1=0;
			}
		}
		else if(xuanxiang==4){//模拟 
			system("cls");
			cout<<ss1<<endl;
			cout<<ss4_1<<endl;
			cout<<ss4_2<<endl;
			cout<<ss4_3<<endl;
			cout<<ss4_4<<endl;
			cout<<ss4_5<<endl;
			int xuanxiang1;
			cout<<"你的选择:";
			cin>>xuanxiang1; 
			if(xuanxiang1==1){
				system("cls");
				moni1();
				Sleep(500);
			}
			else if(xuanxiang1==2){
				system("cls");
				moni2();
				Sleep(500);
			}
			else if(xuanxiang1==3){
				system("cls");
				moni3();
				Sleep(500);
			}
			else if(xuanxiang1==4){
				system("cls");
				moni4();
				Sleep(500);
			}
			else if(xuanxiang1==5){
				system("cls");
				moni5();
				Sleep(500);
			}
		}
		else if(xuanxiang==5){
			system("cls");
			cout<<ss1<<endl;
			cout<<ss5_1<<endl;
			cout<<ss5_2<<endl;
			cout<<ss5_3<<endl;
			int xuanxiang1;
			cout<<"你的选择:";
			cin>>xuanxiang1; 
			if(xuanxiang1==1){
				system("cls");
				ass1();
				Sleep(500);
			}
			else if(xuanxiang1==2){
				system("cls");
				ass2();
				Sleep(500);
			}
			else if(xuanxiang1==3){
				system("cls");
				ass3();
				Sleep(500);
			}
		} 
		else if(xuanxiang==6){
			system("cls");
			cout<<ss1<<endl;
			cout<<ss6_1<<endl;
			int xuanxiang1;
			cout<<"你的选择:";
			cin>>xuanxiang1; 
			if(xuanxiang1==1){
				cout<<ss1<<endl;
				cout<<ss6_1_1<<endl;
				int xuanxiang2;
				cout<<"你的选择:";
				cin>>xuanxiang2;
				if(xuanxiang2==1){
					system("cls");
					Sleep(500);
				} 
				else if(xuanxiang2==2){
					
				}
			}
			else if(xuanxiang1==2){
				system("cls");
				Sleep(500);
			}
			else if(xuanxiang1==3){
				system("cls");
				Sleep(500);
			}
		} 
		cout<<endl;
		cout<<"是否退出?"<<endl;
		cout<<"[1]:继续"<<endl;
		cout<<"[0]:退出"<<endl;
		cout<<"你的选择:";
		cin>>qw;
	} 
	cout<<"see you next time~"<<endl;
	cout << "欢迎下次登录 "<< (char)(92) <<" ^-^ / " << endl ; 
	return 0;
} 

 

0
刘英杰
刘英杰
新手天翼
新手天翼
#include<iostream>
using namespace std;
int main()
{
    cout<<"你纯手工编的游戏就行了";
    return 0;
}

怎么样

符合你给出的所有要求

0
被禁言 何冯成
何冯成
中级光能
中级光能

推箱子:

推箱子小游戏代码:



#include <iostream>
#include <cstdio> 
#include <conio.h>
#include <windows.h>
#include <iomanip>
using namespace std;
#define R 10 
#define C 10
int map[R][C] = { 0 };
int map1[10][10] = {
    { 0,0,1,1,1,0,0,0 },
    { 0,0,1,3,1,0,0,0 },
    { 0,0,1,0,1,1,1,1 },
    { 1,1,1,0,0,4,3,1 },
    { 1,3,4,4,0,1,1,1 },
    { 1,1,1,5,4,1,0,0 },
    { 0,0,0,1,3,1,0,0 },
    { 0,0,0,1,1,1,0,0 }
};
int map2[R][C]={
    {1,1,1,1,1,0,0,0,0,0},
    {1,5,0,0,1,0,0,0,0,0},
    {1,0,4,4,1,0,1,1,1,0},
    {1,0,4,0,1,0,1,3,1,0},
    {1,1,1,0,1,1,1,3,1,0},
    {0,1,1,0,0,0,0,3,1,0},
    {0,1,0,0,0,1,0,0,1,0},
    {0,1,0,0,0,1,1,1,1,0},
    {0,1,1,1,1,1,0,0,0,0}
};
int map3[R][C]={
    { 0,0,0,1,1,1,1,1,1,1 },
    { 0,0,1,1,0,0,1,0,5,1 },
    { 0,0,1,0,0,0,1,0,0,1 },
    { 0,0,1,4,0,4,0,4,0,1 },
    { 0,0,1,0,4,1,1,0,0,1 },
    { 1,1,1,0,4,0,1,0,1,1 },
    { 1,3,3,3,3,3,0,0,1,0 },
    { 1,1,1,1,1,1,1,1,1,0 },
};
int map4[R][C]={
    { 0,1,1,0,1,0,0,0,1,1 },
    { 0,0,0,0,0,0,0,0,0,0 },
    { 1,1,1,1,1,0,1,1,1,1 },
    { 0,0,0,0,5,1,1,1,1,0 },
    { 0,0,0,0,0,0,0,0,0,0 },
    { 1,0,1,0,1,0,1,0,1,0 },
    { 0,0,1,0,0,0,1,0,0,0 },
    { 0,4,0,0,1,1,0,0,0,0 },
    { 0,1,0,4,1,0,0,1,0,0 },
    { 1,0,3,3,1,0,0,0,1,0 },
    };
int map5[R][C]={
    { 1,1,1,1,1,1,1,1,1,1},
    { 1,5,0,0,0,1,0,0,1,1},
    { 1,0,4,0,0,0,0,0,0,1},
    { 1,0,0,0,1,1,4,0,0,1},
    { 1,0,0,1,0,1,1,0,0,1},
    { 1,0,0,0,0,1,0,0,0,1},
    { 1,1,1,0,0,1,0,0,0,1},
    { 1,0,1,0,1,0,1,0,1,1},
    { 1,0,0,0,0,0,0,0,0,1},
    { 3,0,0,0,0,0,3,0,1,1},
    } ;
/*  1.表示墙体
3.表示目的地
4.表示箱子
5.表示人
0.表示空地
*/
void Game_Menu();                
void Game_description();        
int DrawMap();                  
void Move();                    
int finish();                   
void setmap(int n);             
void color(int m);              
BOOL flag = true;            
int pass=5; 
int main(){
char c; 
    Game_Menu();
    c = getch();
    setmap(pass);
    switch(c){
        case 'Q':
        case 'q':
        return 0;
        case 'S':
        case 's':
        while (flag){  
            system("cls");
            Game_description();
            DrawMap();
            Move();
            if(finish()){
                system("cls");
                DrawMap();
                printf("游戏胜利!\n");
                system("pause"); 
                pass++;
                setmap(pass);
            }
        }
        break;
    }
return 0;
}
void Game_Menu(){ 
    cout<<"欢迎进入游戏"<<endl; 
    system("cls");
    cout << "/************************************\\\n";
    cout << "*                                    *\n";
    cout << "*            经 典 小 游 戏          *\n";
    cout << "*               推 箱 子             *\n";
    cout << "*         1.按 S 或 s 键 开 始       *\n";
    cout << "*         2.按 Q 或 q 键 退 出       *\n";
    cout << "*                                    *\n";
    cout << "\\***********************************/\n";
    _getch();
}
void Game_description(){
    cout << "/************************************\\\n";
    cout << "*                                    *\n";
    cout << "*              操 作 提 示           *\n";
    cout << "*        操作上移:  W   w   ↑      *\n";
    cout << "*        操作下移:  S   s   ↓      *\n";
    cout << "*        操作左移:  A   a   ←      *\n";
    cout << "*        操作右移:  D   d   →      *\n";
    cout << "*                                    *\n";
    cout << "*        退    出:  Q   q           *\n";
    cout << "*                                    *\n";
    cout << "*                                    *\n";
    cout << "\\***********************************/\n";
}
int DrawMap(){ 
    cout<<"关卡:"<<pass<<endl; 
    for (int i = 0; i < R; i++){
        for (int j = 0; j < C; j++){
            switch (map[i][j]){
                case 0:
                    color(0xF);
                    cout << "  ";  
                    break;
                case 1:
                    color(8);
                    cout << "■";
                    break;
                case 3:
                    color(0xE);
                    cout << "☆";
                    break;
                case 4:
                    color(4);
                    cout << "□";
                    break;
                case 5:
                    color(3);
                    cout << "♀";
                    break;
                case 7:    
                    color(6);   
                    cout << "★";
                    break;
                case 8:    
                    color(3);
                    cout << "♀";
                    break;
                default:
                break;
            }
        }
    cout <<endl;
    }
    return 0;
}
void Move(){        
    int r,c;
    for(int i=0;i<R;i++){ 
        for(int j=0;j<C;j++){ 
            if(map[i][j]==5||map[i][j]==8){
                r=i;
                c=j;
            }
        }
    }
    cout<<"您当前的坐标为:("<<r<<","<<c<<")"<<endl;
    int ch;
    ch=_getch();
    switch(ch){
        case 'W':
        case 'w':
        case 72:
        if(map[r-1][c]==0||map[r-1][c]==3){
            map[r-1][c]+=5;
            map[r][c]-=5; 
        } 
        else if(map[r-1][c]==4||map[r-1][c]==7){
            if(map[r-2][c]==0||map[r-2][c]==3){
                map[r-2][c]+=4;
                map[r-1][c]+=1;
                map[r][c]-=5;
            }
        }
        break;
        case 'S':
        case 's':
        case 80:
        if(map[r+1][c]==0||map[r+1][c]==3){ 
            map[r+1][c]+=5;
            map[r][c]-=5;
        }
        else if(map[r+1][c]==4||map[r+1][c]==7){ 
            if(map[r+2][c]==0||map[r+2][c]==3){
                map[r+2][c]+=4;
                map[r+1][c]+=1;
                map[r][c]-=5;
            }
        }
        break;
        case 'A':
        case 'a':
        case 75:
        if(map[r][c-1]==0||map[r][c-1]==3){
            map[r][c-1]+=5;
            map[r][c]-=5;
        }
        else if(map[r][c-1]==4||map[r][c-1]==7){
            if(map[r][c-2]==0||map[r][c-2]==3){
                map[r][c-2]+=4;
                map[r][c-1]+=1;
                map[r][c]-=5;
            }
        }
        break;
        case 'D':
        case 'd':
        case 77:
        if(map[r][c+1]==0||map[r][c+1]==3){
            map[r][c+1]+=5;
            map[r][c]-=5;
        }
        else if(map[r][c+1]==4||map[r][c+1]==7){
            if(map[r][c+2]==0||map[r][c+2]==3){
                map[r][c+2]+=4;
                map[r][c+1]+=1;
                map[r][c]-=5;
            }
        }
        break; 
        case 'Q':
        case 'q':
        flag=false;
        default:
        break;
    }
    return ;
}
int finish(){       
    for (int i=0;i<R;i++){
        for (int j=0;j<C;j++){
            if (map[i][j] == 4){ 
                return 0;
            } 
        }
    }
    return 1;
} 
void setmap(int n){
    if (n == 1) {
        memcpy(map, map1, sizeof(map1));
    }
    if (n == 2) {
        memcpy(map, map2, sizeof(map2));
    }
    if (n == 3) {
        memcpy(map, map3, sizeof(map3));
    }
        if (n == 4) {
        memcpy(map, map4, sizeof(map4));
    }
            if (n == 5) {
        memcpy(map, map5, sizeof(map5));
    }
    return ;
}
void color(int m) {     
    HANDLE consolehend;
    consolehend = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(consolehend, m);
    return ; 
}

 

我要回答