Logo aaa 的博客

博客

一些小游戏(自创)

...
aaa
2025-12-01 12:54:09

本文章由 WyOJ Shojo 从洛谷专栏拉取,原发布时间为 2021-08-22 16:03:05

围堵阿伟的游戏:

#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 
*\/

评论

暂无评论

发表评论

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。