小游戏合集(C++版,更新中)
2026-05-11 19:53:14
发布于:浙江
#include<iostream>
#include<windows.h>
#include<conio.h>
#include<cstdlib>
#include<ctime>
#include<cstring>
using namespace std;
void cl(){system("cls");}
void sl(int t){Sleep(t);}
void bp(int f,int d){Beep(f,d);}
int i,j,k,l,n,o,p,q,r,s,t,u,v,w,x,y,z;
void g1();void g2();void g3();void g4();void g5();
void g6();void g7();void g8();void g9();void g10();
void g11();void g12();void g13();void g14();void g15();
void menu();
void menu(){
while(1){
cl();
cout<<"===== 15合1控制台小游戏 =====\n";
cout<<"1.星际大战 2.火柴人跑酷 3.猜数字\n";
cout<<"4.打砖块 5.贪吃蛇 6.Flappy鸟\n";
cout<<"7.井字棋 8.赛车躲避 9.打地鼠\n";
cout<<"10.2048 11.扫雷 12.黑白棋\n";
cout<<"13.射箭 14.迷宫 15.骰子大战\n";
cout<<"==============================\n";
cout<<"输入数字(1-15):";
cin>>n;
switch(n){
case 1:g1();break;case 2:g2();break;case 3:g3();break;
case 4:g4();break;case 5:g5();break;case 6:g6();break;
case 7:g7();break;case 8:g8();break;case 9:g9();break;
case 10:g10();break;case 11:g11();break;case 12:g12();break;
case 13:g13();break;case 14:g14();break;case 15:g15();break;
}
cout<<"\n按任意键返回菜单";
getch();
}
}
int main(){
srand(time(0));
menu();
return 0;
}
void g1(){
cl();
int a=20,b=10,c[100],d=0;
memset(c,0,sizeof(c));
while(1){
cl();
if(kbhit()){
char ch=getch();
if(ch=='a')a--;
if(ch=='d')a++;
if(ch==' ')c[d++]=a;
if(ch==27)break;
}
for(i=0;i<d;i++){
c[i]++;
if(c[i]>40)c[i]=0;
}
for(i=0;i<20;i++)cout<<endl;
for(i=0;i<40;i++){
if(i==a)cout<<"▲";
else{
int f=0;
for(j=0;j<d;j++){
if(c[j]==i)f=1;
}
if(f)cout<<"|";
else cout<<" ";
}
}
sl(50);
}
}
void g2(){
cl();
int a=5,b=6,c=0,d[40];
memset(d,0,sizeof(d));
while(1){
cl();
if(kbhit()&&getch()==' '&&b==6)b=3;
if(b<6)b++;
for(i=0;i<39;i++)d[i]=d[i+1];
if(rand()%8==0)d[39]=1;
for(i=0;i<7;i++){
for(j=0;j<40;j++){
if(i==6)cout<<"■";
else if(j==a&&i==b)cout<<"O";
else if(j==a&&i==b+1)cout<<"|";
else if(j==a-1&&i==b+1)cout<<"/";
else if(j==a+1&&i==b+1)cout<<"\\";
else if(j==a&&i==b+2)cout<<"|";
else if(j==a-1&&i==b+2)cout<<"/";
else if(j==a+1&&i==b+2)cout<<"\\";
else if(d[j]&&i>4)cout<<"■";
else cout<<" ";
}
cout<<endl;
}
if(d[a]&&b>4){
cout<<"游戏结束!得分:"<<c;
break;
}
c++;
sl(100);
}
}
void g3(){
cl();
int a=rand()%100+1,b;
cout<<"猜数字(1-100)\n";
while(1){
cin>>b;
if(b>a)cout<<"大了\n";
else if(b<a)cout<<"小了\n";
else{
cout<<"猜对!";
break;
}
}
}
void g4(){
cl();
int a=15,b=5,c=1,d=1,e=10;
while(1){
cl();
if(kbhit()){
char ch=getch();
if(ch=='a')e--;
if(ch=='d')e++;
}
b+=c;
a+=d;
if(b<0||b>10)c=-c;
if(a<0||a>40)d=-d;
if(b==9&&a>e-2&&a<e+2)c=-c;
for(i=0;i<12;i++){
for(j=0;j<40;j++){
if(i==b&&j==a)cout<<"O";
else if(i==10&&j>e-2&&j<e+2)cout<<"■";
else cout<<" ";
}
cout<<endl;
}
if(b>10){
cout<<"失败";
break;
}
sl(50);
}
}
void g5(){
cl();
int a[200],b=5,c=1,d=0,e[40][20];
memset(e,0,sizeof(e));
for(i=0;i<5;i++){
a[i]=i*1000+10;
}
while(1){
cl();
memset(e,0,sizeof(e));
if(kbhit()){
char ch=getch();
if(ch=='w'&&c!=2)c=1;
if(ch=='s'&&c!=1)c=2;
if(ch=='a'&&d!=3)d=3;
if(ch=='d'&&d!=1)d=4;
}
if(c==1)b-=1000;
if(c==2)b+=1000;
if(d==3)b--;
if(d==4)b++;
int x=b%1000;
int y=b/1000;
if(x<0||x>=40||y<0||y>=20||e[y][x])break;
e[y][x]=1;
for(i=4;i>0;i--)a[i]=a[i-1];
a[0]=b;
for(i=0;i<20;i++){
for(j=0;j<40;j++){
if(e[i][j])cout<<"■";
else cout<<" ";
}
cout<<endl;
}
sl(120);
}
cout<<"游戏结束";
}
void g6(){
cl();
int a=5,b=0,c[100],d=0;
memset(c,0,sizeof(c));
while(1){
cl();
if(kbhit()&&getch()==' ')b=-2;
b++;
a+=b;
for(i=0;i<99;i++)c[i]=c[i+1];
if(rand()%5==0)c[99]=1;
for(i=0;i<10;i++){
for(j=0;j<40;j++){
if(j==20&&i==a)cout<<"O";
else if(c[j]&&(i<3||i>6))cout<<"|";
else cout<<" ";
}
cout<<endl;
}
if(a<0||a>9||(c[20]&&(a<3||a>6))){
cout<<"失败";
break;
}
sl(80);
d++;
}
}
void g7(){
cl();
char a[9]={'1','2','3','4','5','6','7','8','9'};
int pl=0;
while(1){
cl();
cout<<" "<<a[0]<<" | "<<a[1]<<" | "<<a[2]<<"\n";
cout<<"---+---+---\n";
cout<<" "<<a[3]<<" | "<<a[4]<<" | "<<a[5]<<"\n";
cout<<"---+---+---\n";
cout<<" "<<a[6]<<" | "<<a[7]<<" | "<<a[8]<<"\n";
cin>>n;
n--;
if(n<0||n>8||a[n]=='X'||a[n]=='O')continue;
a[n]=pl?'O':'X';
pl=!pl;
int f[8][3]={{0,1,2},{3,4,5},{6,7,8},{0,3,6},{1,4,7},{2,5,8},{0,4,8},{2,4,6}};
for(i=0;i<8;i++){
if(a[f[i][0]]==a[f[i][1]]&&a[f[i][1]]==a[f[i][2]]){
cl();
cout<<" "<<a[0]<<" | "<<a[1]<<" | "<<a[2]<<"\n";
cout<<"---+---+---\n";
cout<<" "<<a[3]<<" | "<<a[4]<<" | "<<a[5]<<"\n";
cout<<"---+---+---\n";
cout<<" "<<a[6]<<" | "<<a[7]<<" | "<<a[8]<<"\n";
cout<<a[f[i][0]]<<"赢!";
return;
}
}
}
}
void g8(){
cl();
int a=15,b[10],c=0;
memset(b,0,sizeof(b));
while(1){
cl();
if(kbhit()){
char ch=getch();
if(ch=='a')a--;
if(ch=='d')a++;
}
for(i=0;i<9;i++)b[i]=b[i+1];
b[9]=rand()%3*10+5;
for(i=0;i<20;i++){
for(j=0;j<30;j++){
if(i==18&&j>a-1&&j<a+2)cout<<"■";
else if(b[i]>0&&j>b[i]-1&&j<b[i]+2)cout<<"■";
else cout<<" ";
}
cout<<endl;
}
if(b[18]>0&&a>b[18]-3&&a<b[18]+3){
cout<<"撞车!得分"<<c;
break;
}
c++;
sl(100);
}
}
void g9(){
cl();
int a=0,b,c;
while(1){
cl();
b=rand()%9+1;
cout<<"打地鼠!\n地鼠位置:"<<b<<"\n输入数字:";
cin>>c;
if(c==b)a++;
cout<<"得分:"<<a;
}
}
void g10(){
cl();
int a[4][4]={0},b;
while(1){
cl();
for(i=0;i<4;i++){
for(j=0;j<4;j++){
cout<<a[i][j]<<"\t";
}
cout<<endl;
}
char ch=getch();
if(ch=='s'){
for(j=0;j<4;j++){
for(i=3;i>0;i--){
if(!a[i][j])swap(a[i][j],a[i-1][j]);
}
}
}
if(ch=='w'){
for(j=0;j<4;j++){
for(i=0;i<3;i++){
if(!a[i][j])swap(a[i][j],a[i+1][j]);
}
}
}
if(ch=='d'){
for(i=0;i<4;i++){
for(j=3;j>0;j--){
if(!a[i][j])swap(a[i][j],a[i][j-1]);
}
}
}
if(ch=='a'){
for(i=0;i<4;i++){
for(j=0;j<3;j++){
if(!a[i][j])swap(a[i][j],a[i][j+1]);
}
}
}
while(1){
b=rand()%16;
if(!a[b/4][b%4]){
a[b/4][b%4]=2;
break;
}
}
}
}
void g11(){
cl();
int a[5][5]={0},b[5][5]={0};
for(i=0;i<5;i++){
for(j=0;j<5;j++){
if(rand()%4==0)a[i][j]=9;
}
}
for(i=0;i<5;i++){
for(j=0;j<5;j++){
if(a[i][j]!=9){
for(int dx=-1;dx<2;dx++){
for(int dy=-1;dy<2;dy++){
int nx=i+dx;
int ny=j+dy;
if(nx>=0&&nx<5&&ny>=0&&ny<5&&a[nx][ny]==9)a[i][j]++;
}
}
}
}
}
while(1){
cl();
cin>>i>>j;
b[i][j]=1;
for(int x=0;x<5;x++){
for(int y=0;y<5;y++){
if(b[x][y])cout<<a[x][y]<<" ";
else cout<<"* ";
}
cout<<endl;
}
if(a[i][j]==9){
cout<<"踩雷!";
break;
}
}
}
void g12(){
cl();
int a[8][8]={0};
a[3][3]=a[4][4]=1;
a[3][4]=a[4][3]=2;
while(1){
cl();
for(i=0;i<8;i++){
for(j=0;j<8;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
cin>>i>>j;
if(a[i][j])continue;
a[i][j]=1;
for(int dx=-1;dx<2;dx++){
for(int dy=-1;dy<2;dy++){
int x=i+dx;
int y=j+dy;
int f=0;
while(x>=0&&x<8&&y>=0&&y<8&&a[x][y]==2){
x+=dx;
y+=dy;
f=1;
}
if(f&&x>=0&&x<8&&y>=0&&y<8&&a[x][y]==1){
x=i+dx;
y=j+dy;
while(a[x][y]==2){
a[x][y]=1;
x+=dx;
y+=dy;
}
}
}
}
}
}
void g13(){
cl();
int a=10,b=0,c;
while(1){
cl();
cout<<"目标:"<<a<<"\n输入力度:";
cin>>c;
if(c==a){
cout<<"命中!";
break;
}
cout<<"偏了\n";
b++;
}
}
void g14(){
cl();
int px=1,py=1;
int m[10][10]={
{1,1,1,1,1,1,1,1,1,1},
{1,0,0,0,1,0,0,0,0,1},
{1,0,1,0,1,0,1,1,0,1},
{1,0,1,0,0,0,0,0,0,1},
{1,0,1,1,1,1,1,1,0,1},
{1,0,0,0,0,0,0,1,0,1},
{1,0,1,1,1,1,0,1,0,1},
{1,0,0,0,0,1,0,0,0,1},
{1,0,1,1,0,1,0,1,0,1},
{1,1,1,1,1,1,1,1,9,1}};
while(1){
cl();
if(kbhit()){
char ch=getch();
if(ch=='w'&&m[px-1][py]==0)px--;
if(ch=='s'&&m[px+1][py]==0)px++;
if(ch=='a'&&m[px][py-1]==0)py--;
if(ch=='d'&&m[px][py+1]==0)py++;
}
for(i=0;i<10;i++){
for(j=0;j<10;j++){
if(i==px&&j==py)cout<<"●";
else if(m[i][j]==9)cout<<"★";
else if(m[i][j]==1)cout<<"■";
else cout<<" ";
}
cout<<endl;
}
if(m[px][py]==9){
cout<<"通关!";
break;
}
}
}
void g15(){
cl();
int a,b;
while(1){
a=rand()%6+1;
b=rand()%6+1;
cout<<"你:"<<a<<" 电脑:"<<b<<"\n";
if(a>b)cout<<"你赢\n";
else if(a<b)cout<<"你输\n";
else cout<<"平局\n";
getch();
}
}
游戏操作说明
星际大战:AD 移动,空格射击,ESC 退出
火柴人跑酷:空格跳跃
猜数字:输入 1-100
打砖块:AD 移动挡板
贪吃蛇:WSAD 移动
Flappy 鸟:空格飞
井字棋:输入 1-9 落子
赛车躲避:AD 移动避车
打地鼠:输入数字敲打
2048:WSAD 移动
扫雷:输入坐标翻开
黑白棋:输入坐标落子
射箭:输入力度
迷宫:WSAD 移动
骰子大战:按按键继续
求赞,花了11514年写出来的200%过编译
这里空空如也














有帮助,赞一个