一些小游戏(自创)

· · 个人记录

围堵阿伟的游戏:

#include <iostream>
#include <windows.h>
#include <cstdio>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
using namespace std;
struct node {
    int x,y;
};
void kaishi();
string map[10][10];
node cat;
void print(string s) {
    for(int i=0; i<s.size(); ++i) {
        cout<<s[i];
        Sleep(500);
    }
}
void game() {
    system("cls");
    for(int i=1; i<=9; ++i) {
        for(int j=1; j<=9; ++j)
            cout<<map[i][j];
        cout<<endl;
    }
    if(cat.x==1||cat.x==9||cat.y==1||cat.y==9) {
        cout<<"阿伟跑了!你悲伤地开始了继续找下一个人!";
        exit(0);
    }
    node ren= {cat.x,cat.y};
    string w=map[ren.x][ren.y];
    map[ren.x][ren.y]="◎";
    char c;
    while((c=getch())!=13) {
        //cout<<ren.x<<' '<<ren.y<<endl;
        //Sleep(500);
        switch(c) {
            case 'W':
            case 'w': {
                if(ren.x==1)
                    break;
                map[ren.x][ren.y]=w;
                w=map[ren.x-1][ren.y];
                ren.x-=1;
                map[ren.x][ren.y]="◎";
                break;
            }
            case 'A':
            case 'a': {
                if(ren.y==1)
                    break;
                map[ren.x][ren.y]=w;
                w=map[ren.x][ren.y-1];
                ren.y-=1;
                map[ren.x][ren.y]="◎";
                break;
            }
            case 'S':
            case 's': {
                if(ren.x==9)
                    break;
                map[ren.x][ren.y]=w;
                w=map[ren.x+1][ren.y];
                ren.x+=1;
                map[ren.x][ren.y]="◎";
                break;
            }
            case 'D':
            case 'd': {
                if(ren.y==9)
                    break;
                map[ren.x][ren.y]=w;
                w=map[ren.x][ren.y+1];
                ren.y+=1;
                map[ren.x][ren.y]="◎";
                break;
            }
        }
        system("cls");
        for(int i=1; i<=9; ++i) {
            for(int j=1; j<=9; ++j)
                cout<<map[i][j];
            cout<<endl;
        }
        //Sleep(200);
    }
    map[ren.x][ren.y]="●";
IE:
    ;
    if((map[cat.x-1][cat.y]=="●")&&(map[cat.x+1][cat.y]=="●")&&(map[cat.x][cat.y-1]=="●")&&(map[cat.x][cat.y+1]=="●")) {
        system("cls");
        for(int i=1; i<=9; ++i) {
            for(int j=1; j<=9; ++j)
                cout<<map[i][j];
            cout<<endl;
        }
        cout<<"呜呼呼!阿伟被你成功控制在房间内!";
        exit(0);
    }
    int q=rand()%4+1;
    switch(q) {
        case 1: {
            if(map[cat.x-1][cat.y]!="○")
                goto IE;
            map[cat.x][cat.y]="○";
            cat.x-=1;
            map[cat.x][cat.y]="♂";
            break;
        }
        case 2: {
            if(map[cat.x][cat.y-1]!="○")
                goto IE;
            map[cat.x][cat.y]="○";
            cat.y-=1;
            map[cat.x][cat.y]="♂";
            break;
        }
        case 3: {
            if(map[cat.x+1][cat.y]!="○")
                goto IE;
            map[cat.x][cat.y]="○";
            cat.x+=1;
            map[cat.x][cat.y]="♂";
            break;
        }
        case 4: {
            if(map[cat.x][cat.y+1]!="○")
                goto IE;
            map[cat.x][cat.y]="○";
            cat.y+=1;
            map[cat.x][cat.y]="♂";
            break;
        }
    }
    game();
}
void begin() {
    for(int i=1; i<=9; ++i)
        for(int j=1; j<=9; ++j)
            map[i][j]="○";
    node one,two,three,four;
    I:;
    cat.x=rand()%9+3;
    cat.y=rand()%9+3;
    if(cat.x==1||cat.x==9||cat.y==1||cat.y==9)
        goto I;
    one.x=rand()%9+1;
    one.y=rand()%9+1;
    two.x=rand()%9+1;
    two.y=rand()%9+1;
    three.x=rand()%9+1;
    three.y=rand()%9+1;
    four.x=rand()%9+1;
    four.y=rand()%9+1;
    map[cat.x][cat.y]="♂";
    map[one.x][one.y]="●";
    map[two.x][two.y]="●";
    map[three.x][three.y]="●";
    map[four.x][four.y]="●";
    game();
}
int main() {
    srand(time(NULL));
    CONSOLE_CURSOR_INFO cursor_info = {1, 0};
    SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
    print("创作作者:chb");
    cout<<"\nWASD 选择地方,回车确定";
    cout<<"\n空地:○ 有障碍:● 阿伟:♂";
    cout<<"\n按下任意键开始";
    getch();
    begin();
    return 0;
}

人生重开模拟器(未完结)

#include <bits/stdc++.h>
#include <conio.h>
#include <windows.h>
#include <time.h>
#include <string>
using namespace std;
int a,b,c,yz,zl,tz,jj,kl,xb,sn;
/*
a,b,c 3种天赋 
yz 颜值 
zl 智力 
tz 体质 
jj 家境 
kl 快乐
xb 性别 1女 0男
sn 是否能变成魔法少女 
*/
string s;
string huoqv(int p){
    string q="";
    while(p){
        q.push_back(p%10+'0');
        p/=10;
    }
    return q;
}
void tianfu();
void shuxing();
void ks();
void kaishi();
void ks(int year) {
    system("cls");
    printf("--------------------------\n");
    printf("|颜值|智力|体质|家境|快乐|\n");
    printf("--------------------------\n");
    printf("|%4d|%4d|%4d|%4d|%4d|\n",yz,zl,tz,jj,kl);
    printf("--------------------------\n");
    if(year==0){
        s+="0岁:你出生了。";
        if(a==5||b==5||c==5){
            s+="[半神]发动成功,全属性+2";
            yz+=2;
            zl+=2;
            tz+=2;
            jj+=2;
            kl+=2;
        }
        s+="\n";
    }
    if(year==1){
        s+="1岁:";
        if((rand()%2+1)==1||a==4||b==4||c==4) {
            s+="你的性别为女。";
            xb=1;
        } 
        else {
            s+="你的性别为男。";
            xb=0;
        }
        s+="\n";
    }
    if(year==2){
        s+="2岁:";
        if((rand()%5+1)==1){
            s+="你的籍贯是美利坚。";
        }
        else{
            s+="你的籍贯是中国。";
        }
        s+="\n";
    }
    if(year==3){
        s+="3岁:";
        if(jj>=4)
            s+="你上了一个不错的幼儿园。";
        else
            s+="你上了一个普通的幼儿园。";
        s+="\n";
    }
    if(year>3&&year<6){
        s+=huoqv(year);
        s+="岁:";
        int p=rand()%10+1;
        if(p>7&&jj<=3){
            printf("今年干旱,由于饥饿你死了。");
            getch();
            kaishi(); 
        }
        if(p>7){
            s+="你努力学习。";
            ++zl;
        }
        if(p<=7&&p>=5){
            s+="你被表扬了。";
            ++kl;
        }
        if(p<=4&&p>=2){
            s+="你被批评了。";
            --kl;
        }
        if(p==1&&zl>=6){
            s+="你发现你的想法与其他小朋友的想法不一样。";
        }
        if(p==1&&zl<6){
            s+="你和其他小朋友相处得很好";
        }
        s+="\n";
    }
    if(year==6){
        s+="6岁:你上了小学\n"; 
    }
    if(year>6&&year<12){
        int p=rand()%10+1;
        s+=huoqv(year);
        s+="岁:";
        if((p==10||(p>=5&&(a==6||b==6||c==6)))&&sn==0){
            s+="你喜欢看动漫,喜欢看剧情棒的动漫。";
            if((a==3||b==3||c==3)&&xb==1){
                sn=1;
            }
        }
        else{
            if(p>6&&yz>=4){
                s+="你被评选为班里的班";
                if(xb==1)
                    s+="花。"; 
                else
                    s+="草。";
            }
            else{
                if(p>=5&&p<=8){
                    s+="你努力学习。";
                }
                else{
                    if(p==9||p==10){
                        s+="你第一次看A片。";
                    }
                    else{
                        if(p==4){
                            s+="时间穿梭,你穿梭到了。";
                            int ppp=rand()%100+1;
                            s+=huoqv(ppp);
                            s+="岁。";
                            ks(ppp);
                        }
                        else{
                            if(p>=1&&p<=3&&kl<=-1){
                                s+="你感觉你越来越抑郁。";
                                --kl;
                            }
                            else{
                                if(p==1){
                                    s+="你和其他小朋友相处得很好。";
                                    ++kl;
                                } 
                                else{
                                    if(p==2){
                                        s+="家里买上了另一个地方的房子,你搬到了那个地方住。";
                                        ++jj;
                                    }
                                    else{
                                        s+="你摔了一跤。";
                                        --zl;
                                    }
                                }
                            }
                        }
                    }
                }
            } 
        }
        s+="\n";
    }
    if(year==12){
        s+=huoqv(year);
        s+="岁:";
        if(sn){
            s+="你使用魔法棒,变身成了魔法少女。";
        }
        else{
            if(jj>=7){
                s+="你进了贵族中学。";
            }
            else{
                if(zl>=5){
                    s+="你通过努力,考上了一个不错的初中。";
                }
                else{
                    s+="你上了普通的初中。";
                }
            }
        }
    }
    cout<<s;
    getch();
    ks(year+1);
}
void tianfu() {
    system("cls");
    printf("选择你的天赋(3个)!\n");
    printf("1.神秘的小盒字(100岁后开启)\n");
    printf("2.渡劫失败转世重修\n");
    printf("3.魔法棒(不知道有啥用)\n");
    printf("4.生而为女\n");
    printf("5.半神(全属性+2)\n");
    printf("6.动漫高手(入宅可能翻6倍)\n");
    cin>>a>>b>>c;
    if(a==b||b==c||a==c) {
        system("cls");
        printf("天赋选择错误,请重新选择");
        tianfu();
    }
    shuxing();
}
void shuxing() {
    system("cls");
    printf("请选择你的属性点(20点)\n");
    printf("颜值:");
    cin>>yz;
    printf("智力:");
    cin>>zl;
    printf("体质:");
    cin>>tz;
    printf("家境:");
    cin>>jj;
    if(yz+zl+tz+jj>20||yz+zl+tz+jj<20)
        shuxing();
    ks(0);
}
void kaishi() {
    kl=1;
    system("cls");
    printf("按下任意键开始!");
    getch();
    tianfu();
}
int main() {
    srand(time(NULL));
    kaishi();
    return 0;
}

谁是卧底


#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <vector>
#include <algorithm>
#include <windows.h>
#include <time.h>
#define N 60
using namespace std;
int n,wodi,xvanzhong,p,wodi1,wodi2,b[100005];
//a[i]=1卧底a[i]=0平民 
string a[10005];
struct node{
    string s1,s2;
}name[100005];
void kaishi();
void youxi();
void toupiao(){
    printf("\n请输入投票最多的玩家的编号(如出现同票请自行继续):");
    int p;
    cin>>p;
    if(b[p]){
        printf("\n该玩家已出局,请重新投票");
        toupiao();
    }
    else{
        b[p]=1;
        printf("他的身份是:");
        if(p==wodi1){
            printf("卧底"); 
            if(wodi2==0||b[wodi2]){
                printf("\n平民胜利!");
                printf("\n是否继续(1继续0退出)");
                int q;
                cin>>q;
                if(q==1)
                    kaishi();
                else
                    exit(0);
            }
            else{
                printf("\n继续游戏。\n");
                youxi();
            }
        }
        else{
            if(p==wodi2){
                printf("卧底");
                if(b[wodi1]){
                    printf("\n平民胜利!");
                    printf("\n是否继续(1继续0退出)");
                    int q;
                    cin>>q;
                    if(q==1)
                        kaishi();
                    else
                        exit(0);
                }
                else{
                    printf("\n继续游戏。\n");
                    youxi();
                }
            }
            else{
                printf("平民");
                int sum=0;
                for(int i=1;i<=n;++i){
                    if(!b[i])
                        ++sum;
                }
//              cout<<sum<<'\n';
                if(sum<=2){
                    printf("\n卧底胜利!");
                    printf("\n是否继续(1继续0退出)");
                    int q;
                    cin>>q;
                    if(q==1)
                        kaishi();
                    else
                        exit(0);
                }
                else{
                    printf("\n继续游戏。\n");
                    youxi();
                }
            }
        }

    }
}
void youxi(){
    printf("请自由发言(按回车键开始投票)");
    getchar();
    toupiao();
}
void shuoren(){
    b[0]=1;
    system("cls");
    getchar();
    printf("开始游戏");
    Sleep(100);
    for(int i=1;i<=n;++i){
        system("cls");
        printf("%d号玩家的身份:(按回车键继续)",i);
        getchar();
//      printf()
        cout<<a[i];
        printf("\n按下回车键取消");
        getchar();
        system("cls");
    }
    youxi();
}
void xvanci(){
    if(n<=5){
        wodi=1;
        p=rand()%2+1;
        xvanzhong=rand()%N+1;
//      cout<<xvanzhong<<'\n';
        if(p){
            wodi1=rand()*rand()%n+1;
            for(int i=1;i<=n;++i){
                if(i==wodi1){
                    a[i]=name[xvanzhong].s1;
                }
                else{
                    a[i]=name[xvanzhong].s2;
                }
            }
        }
        else{
            wodi1=rand()*rand()%n+1;
            for(int i=1;i<=n;++i){
                if(i==wodi1){
                    a[i]=name[xvanzhong].s2;
                }
                else{
                    a[i]=name[xvanzhong].s1;
                }
            }
        }
    }
    else{
        wodi=2;
        p=rand()%2+1;
        xvanzhong=rand()%N+1;
        if(p){
            wodi1=rand()*rand()%n+1;
            do{
                wodi2=rand()*rand()%n+1;
            }while(wodi1==wodi2);
            for(int i=1;i<=n;++i){
                if(i==wodi1||i==wodi2){
                    a[i]=name[xvanzhong].s1;
                }
                else{
                    a[i]=name[xvanzhong].s2;
                }
            }
        }
        else{
            wodi1=rand()*rand()%n+1;
            do{
                wodi2=rand()*rand()%n+1;
            }while(wodi1==wodi2);
            for(int i=1;i<=n;++i){
                if(i==wodi1||i==wodi2){
                    a[i]=name[xvanzhong].s2;
                }
                else{
                    a[i]=name[xvanzhong].s1;
                }
            }
        }
    }
    shuoren();
}
void kaishi(){
    memset(b,0,sizeof(b));
    system("cls");
    printf("请输入人数(3-5人 一个卧底,6-10人两个卧底)");
    cin>>n;
    if(n<3){
        printf("\n人数不合法!");
        kaishi(); 
    }
    if(n>10){
        printf("\n暂时不支持更多人玩法!");
        kaishi();
    }
    xvanci();
}
int main(){
    srand(time(NULL));
//  freopen("文档.txt","w",stdout);
//  for(int i=48;i<=60;++i){
//      string s1,s2;
//      cin>>s1>>s2;
//      cout<<"name["<<i<<"].s1=\""<<s1<<"\",name["<<i<<"].s2=\""<<s2<<"\";\n";
//  }
    name[1].s1="爸爸",name[1].s2="妈妈";
    name[2].s1="白心火龙果",name[2].s2="红心火龙果";
    name[3].s1="凤梨",name[3].s2="菠萝";
    name[4].s1="氧气",name[4].s2="二氧化碳";
    name[5].s1="音响",name[5].s2="音箱";
    name[6].s1="手机",name[6].s2="电话";
    name[7].s1="凉鞋",name[7].s2="拖鞋";
    name[8].s1="七大姑",name[8].s2="八大姨";
    name[9].s1="古诗",name[9].s2="故事";
    name[10].s1="秀才",name[10].s2="书生";
    name[11].s1="油漆",name[11].s2="颜料";
    name[12].s1="英语",name[12].s2="美语";
    name[13].s1="帅哥",name[13].s2="美女";
    name[14].s1="电影",name[14].s2="动画";
    name[15].s1="叛徒",name[15].s2="卧底";
    name[16].s1="鸡蛋",name[16].s2="鸟蛋";
    name[17].s1="大提琴",name[17].s2="小提琴";
    name[18].s1="夏令营",name[18].s2="冬令营";
    name[19].s1="期末",name[19].s2="期中";
    name[20].s1="钢琴",name[20].s2="电子琴";
    name[21].s1="五谷",name[21].s2="五菜";
    name[22].s1="六六大顺",name[22].s2="一帆风顺";
    name[23].s1="黑无常",name[23].s2="白无常";
    name[24].s1="牛头",name[24].s2="马面";
    name[25].s1="板砖",name[25].s2="地砖";
    name[26].s1="盒子",name[26].s2="箱子";
    name[27].s1="辣翅",name[27].s2="烤翅";
    name[28].s1="玩电脑",name[28].s2="玩手机";
    name[29].s1="洗衣粉",name[29].s2="皂角粉";
    name[30].s1="汉堡包",name[30].s2="肉夹馍";
    name[31].s1="皇帝",name[31].s2="太子";
    name[32].s1="面包",name[32].s2="蛋糕";
    name[33].s1="蜘蛛侠",name[33].s2="蝙蝠侠";
    name[34].s1="冠军",name[34].s2="第一";
    name[35].s1="亚军",name[35].s2="第二";
    name[36].s1="季军",name[36].s2="第三";
    name[37].s1="卷发",name[37].s2="直发";
    name[38].s1="电脑",name[38].s2="iPad";
    name[39].s1="炼金",name[39].s2="炼丹";
    name[40].s1="火狐",name[40].s2="谷歌";
    name[41].s1="雪碧",name[41].s2="可乐";
    name[42].s1="110",name[42].s2="120";
    name[43].s1="查寝",name[43].s2="突袭";
    name[44].s1="迷你世界",name[44].s2="我的世界";
    name[45].s1="士力架",name[45].s2="德芙";
    name[46].s1="水兵",name[46].s2="伞兵";
    name[47].s1="金鲲冥",name[47].s2="冻鲲冥"; 
    name[48].s1="微信",name[48].s2="QQ";
    name[49].s1="橙子",name[49].s2="橘子";
    name[50].s1="风油精",name[50].s2="花露水";
    name[51].s1="孔子",name[51].s2="?";
    name[52].s1="857857",name[52].s2="114514";
    name[53].s1="骨头",name[53].s2="化石";
    name[54].s1="红椒",name[54].s2="青椒";
    name[55].s1="红烧鱼",name[55].s2="清蒸鱼";
    name[56].s1="老子",name[56].s2="空调";
    name[57].s1="风扇",name[57].s2="饼干";
    name[58].s1="巧克力",name[58].s2="书店";
    name[59].s1="图书馆",name[59].s2="男人";
    name[60].s1="女人",name[60].s2="近视眼镜";
    printf("游戏创作 by chb");
    getchar();
    kaishi();
    return 0;
} 
/*
1 2 3 4 5 7
  1 2 3 4
1 3 5 7 9 7 
*/