凑合看吧,不是完整版。

#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
using namespace std;
#define pt puts
#define pf printf
#define pc putchar
#define sf scanf
#define gt gets
#define sl Sleep
char name[101];
stack<int>gun;
bool chance;
int randtool(int x)//x枚子弹,y枚实弹
{
int y=rand()%(x/2)+1;
bool use[101];
memset(use,false,sizeof(use));
for(int i=1;i<=y;i++)
{
int z=rand()%x+1;
if(use[z]==true)
{
i--;
}
else
{
use[z]=true;
}
}
for(int i=1;i<=x;i++)
{
if(use[i]==true)
{
gun.push(1);
}
else
{
gun.push(0);
}
}
return y;
}
void first()
{
system("cls");
int ai=2,player=2;
bool quan=true;
while(ai>0&&player>0)
{
system("cls");
pf("您的剩余血量为%d\n",player);
pf("对方的剩余血量为%d\n",ai);
sl(3000);
if(gun.empty())
{
system("cls");
int m=rand()%2+3;
int n=randtool(m);
pf("%d枚实弹 %d枚空弹\n",n,m-n);
pt("子弹装填中……");
sl(3000);
}
int l=gun.top();
gun.pop();
int did=0;
if(quan==true)
{
system("cls");
pt("现在是您的回合");
pt("按9使用桌上的枪");
while(did!='9')
{
did=getch();
}
system("cls");
pt("按1对对方开枪");
pt("按0对自己开枪");
while(did!='0'&&did!='1')
{
did=getch();
}
system("cls");
if(did=='0')
{
pt("您选择对自己开枪");
sl(3000);
if(l==1)
{
pt("枪中是实弹");
sl(3000);
player--;
}
else
{
pt("枪中是空弹");
sl(3000);
}
}
else
{
pt("您选择对对方开枪");
sl(3000);
if(l==1)
{
pt("枪中是实弹");
sl(3000);
ai--;
}
else
{
pt("枪中是空弹");
sl(3000);
}
pt("主动权来到了对方手上");
sl(3000);
quan=false;
}
}
else
{
system("cls");
pt("人机计算中……");
did=rand()%2;
system("cls");
if(did==0)
{
pt("对方选择对自己开枪");
sl(3000);
if(l==1)
{
pt("枪中是实弹");
sl(3000);
ai--;
}
else
{
pt("枪中是空弹");
sl(3000);
}
}
else
{
pt("对方选择对您开枪");
sl(3000);
if(l==1)
{
pt("枪中是实弹");
sl(3000);
player--;
}
else
{
pt("枪中是空弹");
sl(3000);
}
pt("主动权来到了您手上");
sl(3000);
quan=true;
}
}
}
system("cls");
if(player>0)
{
system("color 06");
pt("您赢了");
sl(3000);
}
else
{
system("color 04");
pt("您输了");
sl(3000);
}
}
void start()
{
system("cls");
pt("剧情已跳过(doge)");
sl(3000);
pf("请输入昵称:");
sf("%s",name);
pt("完成!");
sl(3000);
first();
}
void home()
{
system("color 07");
char c;
pt(" 一款很新的游戏 ");
pt("");
pt(" 按 s 开始");
pt(" 按 e 退出");
c=getch();
chance=true;
if(c=='e')
{
exit(0);
}
else
{
start();
}
}
void kong()
{
}
int main()
{
srand((unsigned)time(NULL));
home();
}

FUN GAME 一款普通的C++游戏的更多相关文章

  1. 让你忘记 Flash 的15款精彩 HTML5 游戏

    HTML5 游戏开发是一个热门的话题,开发人员和设计人员最近经常谈论到.虽然不能迅速取代 Flash 的地位,但是 HTML5 凭借它的开放性和强大的编程能力,取代 Flash 是必然的趋势.你会看到 ...

  2. 或许您还不知道的八款Android开源游戏引擎

    很多初学Android游戏开发的朋友,往往会显得有些无所适从,他们常常不知道该从何处入手,每当遇到自己无法解决的难题时,又往往会一边羡慕于iPhone下有诸如Cocos2d-iphone之类的免费游戏 ...

  3. 记录一下八款开源 Android 游戏引擎

    记录一下八款开源 Android 游戏引擎 虽然android学了点点,然后现在又没学了(我为啥这么没有恒心呢大哭).以后有时间还是要继续学android的,一定要啊!虽然现在没学android游戏编 ...

  4. [转载]或许您还不知道的八款Android开源游戏引擎

    或许您还不知道的八款Android开源游戏引擎         分类:             技术文章              2010-08-04 20:27     17430人阅读     ...

  5. [Android游戏开发]八款开源 Android 游戏引擎 (巨好的资源)

    初学Android游戏开发的朋友,往往会显得有些无所适从,他们常常不知道该从何处入手,每当遇到自己无法解决的难题时,又往往会一边羡慕于 iPhone下有诸如Cocos2d-iphone之类的免费游戏引 ...

  6. 八款开源 Android 游戏引擎 (巨好的资源)

    转载地址:http://software.intel.com/zh-cn/blogs/2012/01/13/android-4 初学Android游戏开发的朋友,往往会显得有些无所适从,他们常常不知道 ...

  7. Android 八款开源 Android 游戏引擎

    原文地址 本文内容 Angle Rokon LGame AndEngine libgdx jPCT Alien3d Catcake 最近无意间看到一篇关于 Android 搜索引擎的文章,于是搜索了, ...

  8. 如何制作一款HTML5 RPG游戏引擎——第五篇,人物&人物特效

    上一次,我们实现了对话类,今天就来做一个游戏中必不可少的——人物类. 当然,你完全是可以自己写一个人物类,但是为了方便起见,还是决定把人物类封装到这个引擎里. 为了使这个类更有意义,我还给人物类加了几 ...

  9. 如何制作一款HTML5 RPG游戏引擎——第四篇,情景对话

    今天我们来实现情景对话.这是一个重要的功能,没有它,游戏将变得索然无味.所以我们不得不来完成它. 但是要知道,使用对话可不是一件简单的事,因为它内部的东西很多,比如说人物头像,人物名称,对话内容... ...

  10. 如何制作一款HTML5 RPG游戏引擎——第三篇,利用幕布切换场景

    开言: 在RPG游戏中,如果有地图切换的地方,通常就会使用幕布效果.所谓的幕布其实就是将两个矩形合拢,直到把屏幕遮住,然后再展开直到两个矩形全部移出屏幕. 为了大家做游戏方便,于是我给这个引擎加了这么 ...

随机推荐

  1. Kubernetes security context capability

    注:以下内容基于经验主义,不一定对. Linux capability Linux 中,root 作为特权用户,具有执行所有应用的能力.而普通用户只能执行普通应用.如果普通用户需要执行特权应用,需要进 ...

  2. Java 子父类型集合之间的转换

    假设现在有这样一个方法,入参是父类型的集合参数,这是个通用方法,你需要共用它,你现在要传子类型集合进去,怎么办? class Animal { } class Dog extends Animal { ...

  3. linux tcpdump 使用小结(一)

    转载请注明出处: 很多情况在服务联调和定位过程中,需要在服务器上进行抓包进行问题定位.在Linux环境上使用tcpdump命令进行抓包: 1.tcpdump -s 0 -l -i any -w - p ...

  4. [转帖]TLS 1.2 浏览器兼容性

    https://support-splashtopbusiness.splashtop.com/hc/zh-cn/articles/4414002633883-TLS-1-2-%E6%B5%8F%E8 ...

  5. [转帖]堆表&索引组织表

    堆表&索引组织表 https://zhuanlan.zhihu.com/p/487271927   15 人赞同了该文章 很多大佬强调学习一定要看"原版英文材料". 比如再 ...

  6. [转帖]docker容器自动重启,看完这篇彻底明白了

    一. JVM内存区域的划分 1.1  java虚拟机运行时数据区 java虚拟机运行时数据区分布图: JVM栈(Java Virtual Machine Stacks): Java中一个线程就会相应有 ...

  7. [转帖]Linux中awk命令正确的求最大值、最小值、平均值、总和

    https://blog.csdn.net/fireblue1990/article/details/51622416 test.txt文件内容: 9 11 35 21 42 118 求最大值: aw ...

  8. 记windows自定义bat脚本自启动

    自定义 Windows 启动脚本简化版 在本指南中,我们将使用一个简化的批处理文件(.bat)来演示如何创建自定义的 Windows 启动脚本.以下是一个基本的模板,您只需根据需要在 :begin 部 ...

  9. git撤销推送到远端仓库的提交commit信息

    场景描述 有些时候,我们完成功能后,高兴的推送到远端. 推送到远端之后,我们才发现写错分支了. 这个时候,一万匹马在在内心奔腾而过. 然而,难受是没有用的,我们需要撤销推送到远端的代码 git log ...

  10. 将字符串变成数组split

    字符串变成数组,常用来获取数组中我们需要的值. var str="http://op/adfie/life.png"; let arr=str.split('.'); consol ...