- gf25051 的博客
《咸鱼概要 · 游戏》游戏集合
- @ 2025-8-19 19:18:39
赌狗人生
#include<iomanip>
#include <stdio.h>
#include <iostream>
#include <cstdio>
#include <unistd.h>
#include <limits>
#include <cstdlib>
#include<bits/stdc++.h>
#include<cmath>
#include<windows.h>
using namespace std;
//GetAsyncKeyState()
string b="200";
namespace sbjc {
void gs(long long h, long long l, string z) {
for (long long i = 1; i <= h; i++)
cout << "\n";
for (long long i = 1; i <= l; i++)
cout << " ";
cout << z;
return;
}
struct hl {
long long h,l;
};
bool ax(long long key) {
return (GetKeyState(key) < 0) ? (true) : (false);
}
typedef void (*hs)();
struct sb {
int x1,x2,y1,y2;
string z;
hs h;
};
bool axj(long long key) {
return (GetKeyState(key) < 0) ? (true) : (false);
}
void srwj() {
int saved_fd = dup(STDIN_FILENO);
if (saved_fd == -1) {
cerr << "保存 stdin 失败\n";
while(1) {}
}
if (freopen("dgrs.txt", "r", stdin) == NULL) {
cerr << "无法打开 dgrs.txt\n";
close(saved_fd);
while(1) {}
}
int value;
cin >> b;
cin.clear();
int c;
while ((c = getchar()) != '\n' && c != EOF);
if (dup2(saved_fd, STDIN_FILENO) == -1) {
cerr << "恢复 stdin 失败\n";
close(saved_fd);
while(1) {}
}
close(saved_fd);
cin.clear();
cin.sync();
cout<<"读档成功";
Sleep(1000);
system("cls");
}
void drwj() {
int saved_stdout = dup(STDOUT_FILENO);
if (saved_stdout == -1) {
perror("dup failed");
while(1) {}
}
if (freopen("dgrs.txt", "w", stdout) == NULL) {
perror("freopen failed");
while(1) {}
}
cout<<b;
fflush(stdout);
if (dup2(saved_stdout, STDOUT_FILENO) == -1) {
perror("dup2 failed");
while(1) {}
}
close(saved_stdout);
}
hl wz(bool x = 1, bool n = 1) {
HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
HWND h = GetForegroundWindow();
CONSOLE_FONT_INFO consoleCurrentFont;
hl hl;
POINT p;
if (x) {
GetCursorPos(&p);
ScreenToClient(h, &p);
} else {
GetCursorPos(&p);
}
if (n) {
GetCurrentConsoleFont(hOutput, FALSE, &consoleCurrentFont);
p.x /= consoleCurrentFont.dwFontSize.X;
p.y /= consoleCurrentFont.dwFontSize.Y;
}
hl.h = p.y + 1;
hl.l = p.x + 1;
return hl;
}
void bj() {
HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
DWORD mode;
GetConsoleMode(hStdin, &mode);
mode &= ~ENABLE_QUICK_EDIT_MODE;
SetConsoleMode(hStdin, mode);
return;
}
void ycgb() {
CONSOLE_CURSOR_INFO cursor;
cursor.bVisible = FALSE;
cursor.dwSize = sizeof(cursor);
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorInfo(handle, &cursor);
return;
}
void ydgb(long long h, long long l) {
COORD pos = { l - 1,h - 1 };
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hOut, pos);
return;
}
string aa() {
if(GetAsyncKeyState('1'))return "1";
if(GetAsyncKeyState('2'))return "2";
if(GetAsyncKeyState('3'))return "3";
if(GetAsyncKeyState('4'))return "4";
if(GetAsyncKeyState('5'))return "5";
if(GetAsyncKeyState('6'))return "6";
if(GetAsyncKeyState('7'))return "7";
if(GetAsyncKeyState('8'))return "8";
if(GetAsyncKeyState('9'))return "9";
if(GetAsyncKeyState('0'))return "0";
if(GetAsyncKeyState(VK_BACK))return "b";
if(GetAsyncKeyState(13))return "a";
return "";
}
}
using namespace sbjc;
void de1(int x) {
int y=0;
switch (x) {
case 1:
y=15;
break;
case 2:
y=10;
break;
case 3:
y=9;
break;
case 4:
y=13;
break;
case 5:
y=14;
break;
case 6:
y=12;
break;
}
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),y);
}
void de(int x) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
}
bool cmp(string A,string B) {
if(A.size()!=B.size()) return A.size()>B.size();
for(int i=A.size()-1; i>=0; i--) {
if(A[i]!=B[i]) {
return A[i]>B[i];
}
}
return true;
}
bool cmp(vector<int>A,vector<int>B) {
if(A.size()!=B.size()) return A.size()>B.size();
for(int i=A.size()-1; i>=0; i--) {
if(A[i]!=B[i]) {
return A[i]>B[i];
}
}
return true;
}
vector <int> sub(vector<int>A,vector<int>B) {
vector<int>C;
for(int i=0,t=0; i<A.size(); i++) {
t=A[i]-t;
if(i<B.size()) t-=B[i];
C.push_back((t+10)%10);
if(t<0) t=1;
else t=0;
}
while(C.size()>1&&C.back()==0) C.pop_back();
return C;
}
string GJD_JF2(string x,string y) {
vector<int>A,B;
for(int i=x.size()-1; i>=0; i--) A.push_back(x[i]-'0');
for(int i=y.size()-1; i>=0; i--) B.push_back(y[i]-'0');
vector<int> C;
if(cmp(A,B)) {
C=sub(A,B);
} else {
C=sub(B,A);
cout<<'-';
}
string aa="";
for(int i=C.size()-1; i>=0; i--)aa+=C[i]+'0';
return aa;
}
long long int i,j,k,z,xz,gb=1,xz1,x1=95,x2=85,x3=80,x4=50,d;
string GJD_JF1(string x,string y) {
vector<int>a(1000000,0),b(1000000,0);
int a1=x.size(),a2=y.size();
long long i;
for(i=0; i<a1; ++i)a[a1-i]=x[i]-'0';
for(i=0; i<a2; ++i)b[a2-i]=y[i]-'0';
int a3=max(a1,a2);
string aa,bb;
for(i=1; i<=a3; ++i) {
a[i]+=b[i];
if(a[i]>=10) {
a[i+1]+=1;
a[i]%=10;
}
aa+=char(a[i]+'0');
if(i==a3&&a[a3+1]>0)aa+='1';
}
string ab="";
a1=aa.size();
for(i=0; i<a1; ++i)ab+=aa[a1-i-1];
return ab;
}
bool aa(string a1,string a2) {
x3=max(a1.size(),a2.size());
bool x=false,y=false;
if(a1.size()>a2.size()) {
return 1;
}
if(a1.size()<a2.size()) {
return 0;
}
for(i=0; i<x3; ++i) {
if(a1[i]>a2[i]) {
x=true;
break;
}
if(a1[i]<a2[i]) {
y=true;
break;
}
}
if(x==true&&y==false) {
return 1;
} else if(y==true&&x==false) {
return 0;
} else {
return 1;
}
}
void cj() {
string a1;
while(1) {
string s1b="",ll;
while(1) {
hl zz=wz(1,1);
cout<<"G:"<<b<<endl;
cout<<"输入G币"<<endl;
if(zz.h==3&&zz.l<=4&&zz.l>=1) {
ydgb(3,5);
cout<<"\b\b\b\b";
de(15);
cout<<"退出";
de(240);
if(axj(VK_LBUTTON)) {
return;
}
} else {
ydgb(3,5);
cout<<"\b\b\b\b";
de(240);
cout<<"退出";
}
if(zz.h==1&&zz.l<=2&&zz.l>=1) {
ydgb(1,2);
cout<<"\b\b";
cout<<"G:";
de(240);
if(axj(VK_LBUTTON)) {
b=GJD_JF1(b,"100");
}
} else {
ydgb(1,2);
cout<<"\b\b";
de(240);
cout<<"G:";
}
ydgb(4,1);
cout<<s1b;
ll=aa();
s1b+=ll;
if(s1b!=""&&s1b[s1b.size()-1]=='a') {
a1="";
for(i=1; i<=(s1b.size()<=1 ? 0:s1b.size()-1); ++i) {
a1+=s1b[i-1];
}
s1b=a1;
break;
} else if(s1b!=""&&s1b[s1b.size()-1]=='b') {
a1="";
for(i=1; i<=(s1b.size()<=1 ? 0:s1b.size()-2); ++i) {
a1+=s1b[i-1];
}
s1b=a1;
}
Sleep(80);
system("cls");
}
system("cls");
srand(time(0));
int sb1=rand()%100-rand()%100;
system("cls");
if(s1b=="0")return;
if(s1b[0]=='-'||!aa(b,s1b)) {
for(i=1; i<=1000; ++i) {
Sleep(1);
de(rand()%255+1);
cout<<"sb";
}
de1(1);
return;
}
b=GJD_JF2(b,s1b);
string bs="0";
for(i=1; i<=10; ++i) {
cout<<1000-i*100<<"ms";
Sleep(100);
system("cls");
}
if(sb1>=x1) {
for(i=1; i<=100; ++i) {
bs=GJD_JF1(bs,s1b);
}
system("color 4C");
Sleep(1000);
system("color 0F");
de1(6);
cout<<"加"<<bs<<"G"<<endl;
b=GJD_JF1(b,bs);
} else if(sb1>=x2) {
for(i=1; i<=50; ++i) {
bs=GJD_JF1(bs,s1b);
}
system("color 6E");
Sleep(1000);
system("color 0F");
de1(5);
cout<<"加"<<bs<<"G"<<endl;
b=GJD_JF1(b,bs);
} else if(sb1>=x3) {
for(i=1; i<=10; ++i) {
bs=GJD_JF1(bs,s1b);
}
system("color 5D");
Sleep(1000);
system("color 0F");
de1(4);
cout<<"加"<<bs<<"G"<<endl;
b=GJD_JF1(b,bs);
} else if(sb1>=x4) {
for(i=1; i<=5; ++i) {
bs=GJD_JF1(bs,s1b);
}
system("color 39");
Sleep(1000);
system("color 0F");
de1(3);
cout<<"加"<<bs<<"G"<<endl;
b=GJD_JF1(b,bs);
} else {
system("color 7F");
Sleep(1000);
system("color 0F");
cout<<"加0G"<<endl;
}
de1(1);
Sleep(1500);
system("cls");
}
}
void yx1() {
MessageBox(0, "再见!\n\n尸人", "赌狗人生", MB_OK);
}
int main() {
de(240);
system("mode con cols=80 lines=30");
hl zz;
cout.tie();
cin.tie();
ycgb();
ydgb(1,1);
bj();
sb z[10]= {{},{32,40,10,10,"开始抽奖",cj},{34,38,14,14,"读档",srwj},{34,38,18,18,"存档",drwj},{34,38,22,22,"退出",yx1}};
system("title 赌狗人生");
while(1) {
cout<<"G:"<<b;
zz=wz(1,1);
gs(5,32,"赌狗人生");
for(int i=1; i<=4; ++i) {
if(z[i].x1<=zz.l&&z[i].x2>=zz.l&&z[i].y1<=zz.h&&z[i].y1>=zz.h) {
gs(4,z[i].x1,"");
de(15);
cout<<z[i].z;
de(240);
if(axj(VK_LBUTTON)) {
system("cls");
z[i].h();
if(i==3) {
gs(10,20,"");
while(1) {
cout<<"存档成功(请退出游戏重进)";
//Sleep(1000);
cout<<"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";
return 0;
}
}
if(i==4) {
return 0;
}
}
} else {
gs(4,z[i].x1,"");
cout<<z[i].z;
}
}
Sleep(50);
system("cls");
}
return 0;
}
双人跑酷
#include<iostream>
#include<bits/stdc++.h>
#include<cmath>
#include<iomanip>
#include<windows.h>
#define A 150
#define printf cout
#define scanf cin
#include <stdio.h>
using namespace std;
long long int i,j,k,z,xz,gb=1,xz1,x1,x2;
//GetAsyncKeyState()
void de(int x){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
}
struct wj{
long long xl;
long long gj;
long long wzx;
long long wzy;
long long sd;
};
wj rw[5]={{50,10,1,5,1},{50,10,1,5,1},{50,10,1,10,1}};
void cls(HANDLE hConsole) {
COORD coordScreen = {0, 0};
DWORD cCharsWritten;
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(hConsole, &csbi);
DWORD dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
// 填充空格字符
FillConsoleOutputCharacter(hConsole, ' ', dwConSize, coordScreen, &cCharsWritten);
// 重置文本属性(如颜色)
FillConsoleOutputAttribute(hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten);
SetConsoleCursorPosition(hConsole, coordScreen);
}
void yd(int x,bool y,int z){
if(y){
rw[z].wzx+=x;
}else{
rw[z].wzx-=x;
}
if(rw[z].wzx>=21)rw[z].wzx=1;
if(rw[z].wzx<=0)rw[z].wzx=20;
}
void ty(int x,bool y,int z){
if(y){
rw[z].wzy+=x;
}else{
rw[z].wzy-=x;
}
if(rw[z].wzy>=11)rw[z].wzy=1;
if(rw[z].wzy<=0)rw[z].wzy=10;
}
void hm(){
srand(time(0));
while(1){
if(gb==10){
xz=rand()%20+1;
xz1=rand()%10+1;
x1=rand()%20+1;
x2=rand()%10+1;
}
if(gb==10)gb=1;
for(i=1;i<=10;++i){
for(j=1;j<=20;++j){
if(rw[1].wzx==j&&rw[1].wzy==i||rw[2].wzx==j&&rw[2].wzy==i){
if(rw[1].wzx==j&&rw[1].wzy==i&&rw[1].xl){
if(j==xz||j==x1)rw[1].xl--;
if(i==xz1||i==x2)rw[1].xl--;
de(3);cout<<"0";de(15);
}
else if(rw[2].wzx==j&&rw[2].wzy==i&&rw[2].xl){
if(j==xz||j==x1)rw[2].xl--;
if(i==xz1||i==x2)rw[2].xl--;
de(6);cout<<"0";de(15);
}else{
if(xz==j||x2==j){
de(6);cout<<"|";de(15);
}
else if(xz1==i||x2==i){
de(3);cout<<"-";de(15);
}
else cout<<" ";
}
}else{
if(xz==j||x2==j){
de(6);cout<<"|";de(15);
}
else if(xz1==i||x2==i){
de(3);cout<<"-";de(15);
}
else cout<<" ";
}
}
cout<<"|"<<endl;
}
for(i=1;i<=20;++i){
cout<<"=";
}
if(rw[1].xl<=0||rw[2].xl<=0)return;
cout<<endl<<"1方血量:"<<rw[1].xl;
cout<<endl<<"2方血量:"<<rw[2].xl;
if(GetAsyncKeyState('D'))yd(rw[1].sd,true,1);
if(GetAsyncKeyState('A'))yd(rw[1].sd,false,1);
if(GetAsyncKeyState('W'))ty(rw[1].sd,false,1);
if(GetAsyncKeyState('S'))ty(rw[1].sd,true,1);
if(GetAsyncKeyState(VK_RIGHT))yd(rw[2].sd,true,2);
if(GetAsyncKeyState(VK_LEFT))yd(rw[2].sd,false,2);
if(GetAsyncKeyState(VK_UP))ty(rw[2].sd,false,2);
if(GetAsyncKeyState(VK_DOWN))ty(rw[2].sd,true,2);
Sleep(50);
system("cls");
gb++;
}
}
int main(){
system("mode con cols=50 lines=20");
while(1){
hm();
system("cls");
rw[1]={50,10,1,5,1};
rw[2]={50,10,1,10,1};
if(rw[2].xl<=0)cout<<"1方win";
else cout<<"2方win";
while(1){
if(GetAsyncKeyState('1'))break;
}
}
return 0;
}
迷你跑酷
#include<iostream>
#include<bits/stdc++.h>
#include<cmath>
#include<iomanip>
#include<windows.h>
#define A 150
#define printf cout
#define scanf cin
#include <stdio.h>
using namespace std;
long long int i,j,k,z,xz,gb=1,xz1,x1,x2,x3,x4;
//GetAsyncKeyState()
void de(int x){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
}
struct wj{
long long xl;
long long gj;
long long wzx;
long long wzy;
long long sd;
};
wj rw={50,5,5,5,1};
void cls(HANDLE hConsole) {
COORD coordScreen = {0, 0};
DWORD cCharsWritten;
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(hConsole, &csbi);
DWORD dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
// 填充空格字符
FillConsoleOutputCharacter(hConsole, ' ', dwConSize, coordScreen, &cCharsWritten);
// 重置文本属性(如颜色)
FillConsoleOutputAttribute(hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten);
SetConsoleCursorPosition(hConsole, coordScreen);
}
void ty(int x){
if(x>=5)rw.wzy--;
if(x<=2&&x>=1)rw.wzy++;
if(x==0)x2=6;
}
void hm(){
x1=15;
while(1){
if(x1==0){
x1=20;x3++;
}
for(j=1;j<=5;++j){
for(i=1;i<=20;++i){
if(rw.wzx==i&&rw.wzy==j){
cout<<"0";
if(j==5&&x1==rw.wzx&&j==rw.wzy)return;
}else if(j==5&&x1==i){
cout<<"/";
}else{
cout<<" ";
}
}
cout<<"|"<<endl;
}
for(i=1;i<=21;++i)cout<<"=";
cout<<endl;
cout<<setfill('0')<<setw(5)<<x3<<"分"<<endl;
if(GetAsyncKeyState(VK_UP)&&x2==0){
ty(0);
}else if(x2>0){
ty(x2);
x2--;
}
x1--;
if(x1%2==0)x3++;
Sleep(100-x4);
system("cls");
if(x3%100==0)x4+=5;
}
}
int main(){
system("mode con cols=50 lines=20");
while(1){
hm();
system("cls");
cout<<"你得"<<x3<<"分"<<endl;
cout<<"你试了"<<endl;
while(1){
if(GetAsyncKeyState('1'))break;
}
x3=0;
}
return 0;
}
迷宫
#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
#include<iostream>
#include<bits/stdc++.h>
#include<cmath>
#include<iomanip>
#include<windows.h>
#define A 150
#define printf cout
#define scanf cin
#include <stdio.h>
const int MAP_SIZE = 10; // 迷宫大小
const char PLAYER = 'P'; // 玩家标志
const char EXIT = 'E'; // 出口标志
const char TRAP = 'T'; // 陷阱标志
const char TREASURE = '$'; // 宝藏标志
const char EMPTY = '.'; // 空地标志
using namespace std;
int f;
void de(int x){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
}
// 初始化迷宫
void initializeMaze(char maze[MAP_SIZE][MAP_SIZE], int& playerX, int& playerY) {
// 设置迷宫初始状态
for (int i = 0; i < MAP_SIZE; i++) {
for (int j = 0; j < MAP_SIZE; j++) {
maze[i][j] = EMPTY;
}
}
// 随机设置玩家位置
playerX = std::rand() % MAP_SIZE;
playerY = std::rand() % MAP_SIZE;
maze[playerX][playerY] = PLAYER;
// 随机设置出口
int exitX, exitY;
do {
exitX = std::rand() % MAP_SIZE;
exitY = std::rand() % MAP_SIZE;
} while (maze[exitX][exitY] != EMPTY);
maze[exitX][exitY] = EXIT;
// 随机设置陷阱和宝藏
for (int i = 0; i < 15; i++) {
int trapX, trapY;
do {
trapX = std::rand() % MAP_SIZE;
trapY = std::rand() % MAP_SIZE;
} while (maze[trapX][trapY] != EMPTY);
maze[trapX][trapY] = TRAP;
int treasureX, treasureY;
do {
treasureX = std::rand() % MAP_SIZE;
treasureY = std::rand() % MAP_SIZE;
} while (maze[treasureX][treasureY] != EMPTY);
maze[treasureX][treasureY] = TREASURE;
}
}
// 打印迷宫
void printMaze(const char maze[MAP_SIZE][MAP_SIZE]) {
for (int i = 0; i < MAP_SIZE; i++) {
for (int j = 0; j < MAP_SIZE; j++) {
if(maze[i][j]=='P')de(47);
if(maze[i][j]=='.')de(42);
if(maze[i][j]=='T')de(44);
if(maze[i][j]=='E')de(37);
if(maze[i][j]=='$')de(46);
std::cout << maze[i][j] << " ";
de(15);
}
std::cout << std::endl;
}
}
// 处理玩家移动
bool movePlayer(char maze[MAP_SIZE][MAP_SIZE], int& playerX, int& playerY, int newX, int newY) {
if (newX < 0 || newX >= MAP_SIZE || newY < 0 || newY >= MAP_SIZE) {
std::cout << "你不能移动到那里!超出边界了!\n";
return false;
}
char target = maze[newX][newY];
if (target == TRAP) {
system("color 4C");std::cout << "哎呀!你踩到了陷阱!游戏结束!\n";Sleep(500);
return true; // 游戏结束
} else if (target == TREASURE) {
system("color 6");std::cout << "恭喜!你找到了宝藏!\n";f+=5;Sleep(500);
} else if (target == EXIT) {
system("color 6E");std::cout << "恭喜!你找到了出口!游戏胜利!\n";Sleep(1500);
return true; // 游戏结束
}
system("cls");
// 移动玩家
maze[playerX][playerY] = EMPTY;
playerX = newX;
playerY = newY;
maze[playerX][playerY] = PLAYER;
return false;
}
int main() {
system("mode con cols=80 lines=25");
std::srand(static_cast<unsigned int>(std::time(0))); // 初始化随机种子
char maze[MAP_SIZE][MAP_SIZE];
int playerX, playerY;
initializeMaze(maze, playerX, playerY);
std::cout << "欢迎来到文字冒险游戏!\n";
std::cout << "你需要找到出口(E)来赢得游戏。\n";
std::cout << "小心陷阱(T)!宝藏($)可以给你提示。\n";
std::cout << "使用命令:上(W)、下(S)、左(A)、右(D)来移动。\n";
system("pause");
bool gameOver = false;
while (!gameOver) {
printMaze(maze);Sleep(100);system("cls");
std::string input;
std::cout << "请输入你的移动方向(W/A/S/D):"<<std::endl<<"你得"<<setw(3)<<setfill('0')<<f<<"分"<<endl;
int newX = playerX;
int newY = playerY;
if (GetAsyncKeyState('W')) {
newX--;f++;
} else if (GetAsyncKeyState('S')) {
newX++;f++;
} else if (GetAsyncKeyState('A')) {
newY--;f++;
} else if (GetAsyncKeyState('D')) {
newY++;f++;
} else {
continue;
}
gameOver = movePlayer(maze, playerX, playerY, newX, newY);
}
std::cout << "游戏结束!\n";
cout<<"你得"<<f<<"分";
return 0;
}
提瓦特大陆
#include<bits/stdc++.h>
#include<cmath>
#include<iomanip>
#include<windows.h>
#include<stdio.h>
#include<ctime>
#include<time.h>
#include<windows.h>
using namespace std;
struct player {
char name[21];
int hp;
int gj;
int mola;
int yuanshi;
int jingyan;
}player={"自行",80,5,0,0,1};
struct Guai{
char name[15];
char diaoluowu[12];
int hp;
int gj;
int wupin_sizn;
}shilaimu = {"史莱姆","经验",5,1,1},
qqren = {"QQ人","魔拉",10,2,2},
qqren_mix = {"木盾QQ人","魔拉",25,5,3},
qqren_max = {"板斧QQ人","魔拉",20,10,4},
fenglong={"[ 风魔龙 ]","魔龙晶石",300,25,5},
guai = {"\0","\0",0,0,0};
struct place{
int shop1,trees,qiyuan;
} place={1,2,3};
struct jian{
char name[21];
char yuansu[21];
int sh;
}wufeng={"无锋剑","无",3},
qingfeng={"青风剑","风",5},
wuqi={"\0","\0",0};
void caidan();
void zhandou();
void wupin(int);
int xz;
int xz1;
int xz2;
int xz3;
int xz4;
int xz5;
int xz6;
int xz7;
int a;
int b;
int c;
int place_sizn=5;
int dengji=1;
int molong_jingshi=0;
int yaocao=0;
int zhadan=0;
void SetConsoleColor(WORD color) {
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole, color);
}
int main(){
for(int i=1;i<=1;i=i+2){
cout<<" 元素大陆"<<endl;
cout<<"加载中......."<<endl<<setw(5)<<right<<i<<"%"<<endl;
for(int j=1;j<=i/10;++j){cout<<"█";}
Sleep(200+i*10);
system("cls");
}
cout<<" 元素大陆"<<endl;
cout<<"加载完成!!!"<<endl<<setw(5)<<right<<"100%"<<endl;
for(int j=1;j<=10;++j){cout<<"█";}
system("cls");
cout<<"--------------------------------------------欢迎来到 [提瓦特大陆] 1.2 测试版-------------------------------------------\n\n\n"<<endl;
Sleep(2000);
cout<<"这个大陆是由七个元素之神所创造的,分别是风,雷,岩,草,火,水,冰"<<endl<<endl;
Sleep(3000);
cout<<"同样的,这大陆上也有由人类创造的国度"<<endl<<endl;
Sleep(3000);
cout<<"好了,旅行者,是时候出发了"<<endl<<endl;
cout<<"(输入你的名字,20字内)"<<endl;
cin>>(player.name);
Sleep(1000);
system("cls");
printf("%s,好名字",player.name);
caidan();
}
void caidan() {
while(1){
Sleep(500);
system("cls");
puts("=====================================================================================");
printf("要做什么?\n\n\n 1,行动 2,背包 3,装备 4,查看状态 5,关于游戏 6,祈愿 7,活动 \n\n\n");
puts("=====================================================================================");
cin>>xz;
switch(xz){
case 1:
Sleep(500);
system("cls");
puts("=====================================================================================");
printf("要去哪里?\n\n\n 1,魔拉商店 2,树林-危险程度★3,风龙废墟-危险程度★★ 4,返回 \n\n\n");
puts("=====================================================================================");
cin>>xz1;
switch(xz1){
case 1:
place_sizn =place.shop1;
cout<<"魔拉:"<<player.mola<<endl;
cout<<"1,无锋剑-500"<<" 2,青风剑-800"<<endl;
cout<<"3,药草-100"<<"4,手抛式-蹦蹦炸弹-1000"<<endl;
cout<<"0,返回"<<endl;
cin>>xz2;
switch(xz2){
case 1:
cout<<"你已装备无锋剑"<<endl;
player.mola=player.mola-500;
wuqi =wufeng;
break;
case 2:
cout<<"你已装备青风剑"<<endl;
player.mola=player.mola-800;
wuqi=qingfeng;
break;
case 3:
cout<<"你已购买药草"<<endl;
player.mola=player.mola-100;
yaocao++;
break;
case 4:
cout<<"你已购买手抛式-蹦蹦炸弹"<<endl;
player.mola=player.mola-1000;
zhadan++;
case 0:
break;
}
break;
case 2:
zhandou();
break;
case 3:
zhandou();
break;
case 4:
break;
}
break;
case 2:
Sleep(1000);
system("cls");
cout<<"圆石:"<<player.yuanshi<<" 魔拉:"<<player.mola<<endl;
break;
case 3:
Sleep(1000);
system("cls");
cout<<"装备:"<<wuqi.name<<endl;
Sleep(3000);
break;
case 4:
system("cls");
printf("hp:%d 攻击:%d\n\n\n",player.hp,player.gj);
printf("等级:%d 经验:%d\n\n\n",dengji,player.jingyan);
Sleep(2000);
break;
case 5:
system("cls");
cout<<"本游戏纯属娱乐,无不良影响"<<endl;
cout<<"二创,作者yuan shen ge"<<endl<<endl;
Sleep(5000);
break;
case 6:
Sleep(1000);
system("cls");
cout<<"1000圆石十抽"<<endl;
cout<<" [青龙]5星up★★★★★ 1000圆石一抽,扣1抽 "<<endl;
cout<<" 扣0,返回"<<endl;
cin>>xz3;
switch(xz3){
case 1:
Sleep(1000);
system("cls");
cout<<" o "<<endl;
Sleep(400);
cout<<" o "<<endl;
Sleep(400);
cout<<" o "<<endl;
Sleep(400);
cout<<" o "<<endl;
Sleep(400);
cout<<" o "<<endl;
Sleep(400);
cout<<" o "<<endl;
Sleep(400);
cout<<" o "<<endl;
Sleep(1000);
system("cls");
cout<<" o "<<endl;
Sleep(400);
cout<<" o "<<endl;
Sleep(400);
cout<<" o "<<endl;
Sleep(400);
cout<<" o "<<endl;
player.yuanshi=player.yuanshi-1000;
a=rand()%9+1;
if(a<=7){
cout<<"你什么也没抽到"<<endl;
cout<<"圆石:"<<player.yuanshi<<endl;
break;
}
if(a==8){
Sleep(400);
SetConsoleColor(FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY);
std::cout << " o " << std::endl;
Sleep(400);
SetConsoleColor(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cout<<"恭喜你抽到[绿龙]★★★★"<<endl;
player.gj=15;
player.hp=120;
break;
}
if(a==9){
Sleep(400);
SetConsoleColor(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY);
std::cout << " o " << std::endl;
Sleep(400);
SetConsoleColor(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
std::cout<<"恭喜你抽到[青龙]★★★★★"<<endl;
player.gj=10;
player.hp=150;
break;
}
break;
case 0:
break;
}
break;
case 7:
Sleep(1000);
system("cls");
cout<<"活动一,登录领十连,扣1"<<endl<<endl;
cin>>xz4;
if(xz4==1){
player.yuanshi=player.yuanshi+1000;
}
break;
}
}
}
void zhandou(){
c=rand()%5+1;
if(c==1){
Sleep(1000);
system("cls");
guai =shilaimu;
printf("布豪,%s来袭!",guai.name);
Sleep(1000);
}
if(c==2){
Sleep(1000);
guai =qqren;
system("cls");
printf("布豪,%s来袭!",guai.name);
Sleep(1000);
}
if(c==3){
Sleep(1000);
guai =qqren_mix;
system("cls");
printf("布豪,%s来袭!",guai.name);
Sleep(1000);
}
if(c==4){
Sleep(1000);
guai =qqren_max;
system("cls");
printf("布豪,%s来袭!",guai.name);
Sleep(1000);
}
if(c==5){
Sleep(1000);
guai = fenglong;
system("cls");
printf("布豪,%s来袭!",guai.name);
Sleep(1000);
}
while(guai.hp>0&&player.hp>0){
Sleep(1000);
system("cls");
puts("=============================================================================");
printf("要怎么办?\n\n\n 1,攻击 2,背包 3,查看状态 \n\n\n");
puts("=============================================================================");
cin>>xz5;
switch(xz5){
case 1:
Sleep(1000);
system("cls");
printf("%s对%s造成了%d点伤害\n\n\n",player.name,guai.name,player.gj);
guai.hp=guai.hp-player.gj;
Sleep(1000);
printf("%s对%s造成了%d点伤害",guai.name,player.name,guai.gj);
player.hp=player.hp-guai.gj;
break;
case 2:
Sleep(1000);
system("cls");
cout<<"圆石:"<<player.yuanshi<<" 魔拉:"<<endl;
cout<<"1,药草:"<<yaocao<<"2,手抛式-蹦蹦炸弹"<<zhadan<<endl;
cin>>xz6;
if(xz6==1){
cout<<"你已服用药草"<<endl;
yaocao--;
player.hp =player.hp +20;
}
if(xz6==2){
cout<<"你使用了手抛式-蹦蹦炸弹"<<endl;
guai.hp=guai.hp-1000;
zhadan--;
}
break;
case 3:
system("cls");
printf("hp:%d 攻击:%d\n\n\n",player.hp,player.gj);
Sleep(5000);
break;
if(guai.hp<=0){
Sleep(2000);
system("cls");
printf("你成功打败了%s",guai.name);
caidan();
}
if(player.hp<=0){
cout<<"你死了"<<endl;
}
}
if(player.jingyan%500==0){
dengji++;
Sleep(2000);
system("cls");
cout<<"恭喜你升级为";
printf("%d",dengji);
player.hp=player.hp+10;
player.gj++;
}
}
if(guai.hp<=0){
Sleep(2000);
system("cls");
printf("你成功打败了%s",guai.name);
cout<<"怪物掉落了";
printf("%s",guai.diaoluowu);
wupin(guai.wupin_sizn);
}
if(player.hp<=0){
cout<<"你死了"<<endl;
}
}
void wupin(int wupin_sizn){
switch(wupin_sizn){
case 1:
player.jingyan=player.jingyan+100;
break;
case 2:
player.mola=player.mola+100;
break;
case 3:
player.mola=player.mola+200;
break;
case 4:
player.mola=player.mola+250;
break;
case 5:
molong_jingshi++;
break;
}
}
石头剪刀布
#include <iostream>
using namespace std;
const int N = 2147483647;
string choose[5] = {"", "石头", "剪刀", "布"};
void print(int i, string s, bool b);
int input(string tip);
int main()
{
int playerLostTime = 0;
print(N, "欢迎来到石头剪刀布游戏!", 1);
int intWhatTimeDoPlay = input("要玩几次:");
for (int i = 1; i <= intWhatTimeDoPlay; i++)
{
int intPlayerInput = input("选择(1.石头,2.剪刀,3.布):");
if (intPlayerInput > 3 or intPlayerInput < 1)
{
print(N, "请输入正确的选项(1.石头,2.剪刀,3.布)", 1);
continue;
}
int intComputerInput = (intPlayerInput + 2);
if (intComputerInput > 3)intComputerInput -= 3;
print(N, "电脑选择:", 0);
print(N, choose[intComputerInput], 0);
print(N, ", ", 0);
print(N, "你的选择:", 0);
print(N, choose[intPlayerInput], 1);
print(N, "你输了!", 1);
playerLostTime++;
}
print(N, "你输了,输了", 0);
print(playerLostTime, "", 0);
print(N, "局", 0);
return 0;
}
决斗场
#include<iostream>
#include<bits/stdc++.h>
#include<cmath>
#include<iomanip>
#include<windows.h>
using namespace std;
long int ks,nd=15,y,rj,zb1,zb2,qi,d,i,j,k,x;
char ld1[500][500],ld2[500][500];
std::string xz;
bool sy=false,yl;
long long b[10]={1,1,1,1,1,1,1,1},c=3;
long long e=0,f=0,g=0,h,l,n,m,p,q=1,z=20,dxd,d5;
long long a1,a2;
long long b1,b2;
long long xl[20],jn1[20],jn2[20],x1,x2,bd[20],hh=1,gj,zs1,zs2,zn,gj1;
bool d1=true,d2,d3,d4;
std::string jsjn1[20];
long long int zf[20]={0,78,1110,3,22,102,54188},cjzf[10]={0,9999,114514},zfj,xzf[10],zfz=3,fz,zszf,jn1f[20],jn2f[20],dsb;
long long int cjzfx[100],cs1,cs2,jxl1,jxl2;
long long int gxl[100],gx=1,xld;
void sld(){
for(i=0;i<=nd;++i){
for(j=0;j<=nd;++j){
ld1[i][j]='.';
}
}
const int MAX =(nd+1)/2;
std::srand(std::time(0));
for(i=1;i<=nd;++i){
for(j=1;j<=nd;++j){
x=std::rand()%MAX+1;
if(x==1){
ld1[i][j]='@';qi++;
}else{
ld1[i][j]='.';
}
}
}
for(i=1;i<=nd;++i){
for(j=1;j<=nd;++j){
ld2[i][j]='#';
}
}
}
void san(){
for(i=1;i<=nd;++i){
for(j=1;j<=nd;++j){
int s=0;
if(ld1[i][j]=='.'){
if(ld1[i-1][j-1]=='@')s++;
if(ld1[i-1][j]=='@')s++;
if(ld1[i-1][j+1]=='@')s++;
if(ld1[i][j+1]=='@')s++;
if(ld1[i][j-1]=='@')s++;
if(ld1[i+1][j-1]=='@')s++;
if(ld1[i+1][j]=='@')s++;
if(ld1[i+1][j+1]=='@')s++;
if(s==0)ld1[i][j]='0';
if(s==1)ld1[i][j]='1';
if(s==2)ld1[i][j]='2';
if(s==3)ld1[i][j]='3';
if(s==4)ld1[i][j]='4';
if(s==5)ld1[i][j]='5';
if(s==6)ld1[i][j]='6';
if(s==7)ld1[i][j]='7';
if(s==8)ld1[i][j]='8';
}
}
}
}
void kl(char c1,int c2,int c3){
i=c2;
j=c3;
if(c1=='0'&&ld1[i][j]!='@'){
if(ld1[i-1][j-1]>='0'&&ld1[i-1][j-1]!='@'&&ld2[i-1][j-1]!='|'&&(ld1[i-1][j]=='0'||ld1[i][j-1]=='0')){
ld2[i-1][j-1]=ld1[i-1][j-1];
}
if(ld1[i-1][j]>='0'&&ld1[i-1][j]!='@'&&ld2[i-1][j]!='|'){
ld2[i-1][j]=ld1[i-1][j];
}
if(ld1[i-1][j+1]>='0'&&ld1[i-1][j+1]!='@'&&ld2[i-1][j+1]!='|'&&(ld1[i-1][j]=='0'||ld1[i][j+1]=='0')){
ld2[i-1][j+1]=ld1[i-1][j+1];
}
if(ld1[i][j+1]>='0'&&ld1[i][j+1]!='@'&&ld2[i][j+1]!='|'){
ld2[i][j+1]=ld1[i][j+1];
}
if(ld1[i][j-1]>='0'&&ld1[i][j-1]!='@'&&ld2[i][j-1]!='|'){
ld2[i][j-1]=ld1[i][j-1];
}
if(ld1[i+1][j-1]>='0'&&ld1[i+1][j-1]!='@'&&ld2[i+1][j-1]!='|'&&(ld1[i+1][j]=='0'||ld1[i][j-1]=='0')){
ld2[i+1][j-1]=ld1[i+1][j-1];
}
if(ld1[i+1][j]>='0'&&ld1[i+1][j]!='@'&&ld2[i+1][j]!='|'){
ld2[i+1][j]=ld1[i+1][j];
}
if(ld1[i+1][j+1]>='0'&&ld1[i+1][j+1]!='@'&&ld2[i+1][j+1]!='|'&&(ld1[i+1][j]=='0'||ld1[i][j+1]=='0')){
ld2[i+1][j+1]=ld1[i+1][j+1];
}
}
}
void game1(){
while(1){
for(i=1;i<=nd;++i){
for(j=1;j<=nd;++j){
cout<<ld2[i][j]<<" ";
}
cout<<endl;
}
cout<<"选则插旗或翻开或取消插旗和正确的做标,例如第1个为1 1,,1为行为列,第4个为1 4,1为行4为列"<<endl;
cin>>xz>>zb1>>zb2;
if(zb1<=nd&&zb2<=nd){
}else{
cout<<"不可以输入超过地图的坐标"<<endl;continue;
}
if(xz=="翻开"){
if(ld1[zb1][zb2]==ld2[zb1][zb2]){
cout<<"不可以翻开翻开过的地方"<<endl;
}
ld2[zb1][zb2]=ld1[zb1][zb2];
kl(ld1[zb1][zb2],zb1,zb2);
if(ld1[zb1][zb2]=='@'||ld2[zb1][zb2]=='@'){
cout<<"你被炸了"<<endl;
return ;
}
}
if(xz=="插旗"){
if(ld2[zb1][zb2]==ld1[zb1][zb2]){
cout<<"不可以插翻开过的地方!"<<endl;continue;
}
if(qi>0&&(zb1<=nd&&zb2<=nd)){
ld2[zb1][zb2]='|';qi--;cout<<"旗还剩"<<qi<<endl;
}else{
cout<<"没有旗了,输出别的吧!"<<endl;continue;
}
}
if(xz=="取消插旗"){
if(ld2[zb1][zb2]!='|'){
cout<<"只能取消有旗的地方"<<endl;
}else{
ld2[zb1][zb2]='#';
qi++;cout<<"旗还剩"<<qi<<endl;
}
}
if(qi==0){
yl=true;
for(i=1;i<=nd;++i){
for(j=1;j<=nd;++j){
if(ld1[i][j]=='@'){
if(ld2[i][j]=='|'){
}else
yl=false;
}
}
}
if(yl==true){
sy=true;return ;
}
}
system("cls");
}
}
void C(){
xl[1]=10;jn1[1]=-5;jn2[1]=2;bd[1]=10;
xl[2]=11;jn1[2]=3;jn2[2]=-4;
xl[3]=12;jn1[3]=4;jn2[3]=4;
xl[4]=11;jn1[4]=-5;jn2[4]=2222;
xl[5]=13;jn1[5]=3333;jn2[5]=3;bd[5]=5;
xl[6]=8;jn1[6]=-4;jn2[6]=4;bd[6]=20;
xl[7]=100;jn1[7]=-10;jn2[7]=10;bd[7]=30;
cs1=1;cs2=1;jxl1=0;jxl2=0;
zs1=0;zs2=0;
for(i=1;i<=6;++i){
cjzfx[i]=0;
}
}
void zf3(){
for(i=1;i<=6;++i){
jn1f[i]=jn1[i];
}
for(i=1;i<=6;++i){
jn2f[i]=jn2[i];
}
}
void D(){
int sj,js;
srand(time(0));
sj=rand()%6+1;
if(sj==1){
srand(time(0));
js=rand()%2+1;
gj=js;
}
if(sj==2){
srand(time(0));
js=rand()%2+1;
gj=js+2;
}
if(sj==3){
srand(time(0));
js=rand()%2+1;
gj=js+4;
}
srand(time(0));
gj=rand()%3+1;
}
void E(){
cout<<"1方,血量:"<<xl[x1]<<endl;
cout<<"2方,血量:"<<xl[x2]<<endl;
if(jn1[x1]!=0){
cout<<"1方技能1没有使用";
if(jn2[x1]!=0){
cout<<",技能2没有使用"<<endl;
}else{
cout<<",1方技能2使用"<<endl;
}
}else{
cout<<"1方技能1使用";
if(jn2[x1]!=0){
cout<<",技能2没有使用"<<endl;
}else{
cout<<",技能2使用"<<endl;
}
}
if(jn1[x2]!=0){
cout<<"2方技能1没有使用";
if(jn2[x2]!=0){
cout<<",技能2没有使用"<<endl;
}else{
cout<<",技能2使用"<<endl;
}
}else{
cout<<"2方技能1使用";
if(jn2[x2]!=0){
cout<<",技能2没有使用"<<endl;
}else{
cout<<",技能2使用"<<endl;
}
}
}
bool F(long long c1){
srand(time(0));
d=rand()%100+1;
if(d>=(100-c1)){
return true;
}else{
return false;
}
}
void G(long long c1,long long c2){
if(xl[c2]>=8){
if(jn1[c2]/1111==0){
d=2;
}else{
if(jn2[c2]/1111==0){
d=3;
}
}
}
if(xl[c2]>6){
if(xl[c1]+jn1[c2]<=7){
d=2;
}else{
if(xl[c1]+jn2[c2]<=7){
d=3;
}else{
d=1;
}
}
}else{
if(jn1[c2]>0&&jn1[c2]/1111==0){
d=2;
}else{
if(jn2[c2]>0&&jn2[c2]/1111==0){
d=3;
}else{
d=1;
}
}
}
}
void zf1(int c1,int c2){
if(xzf[c1]==114514){
cjzfx[c2]++;
return ;
}
if(xzf[c1]==9999){
jn1[c2]=jn1f[c2];
jn2[c2]=jn2f[c2];
return ;
}
if(xzf[c1]==78){
xl[c2]/=2;
if(c2==x1){
cs1=2;
}else
cs2=2;
return ;
}
if(xzf[c1]%111==0){
bd[c2]+=xzf[c1]/111;
return ;
}
if(xzf[c1]<=10){
xl[c2]+=xzf[c1];
return ;
}
if(xzf[c1]%11==0){
if(c2==x1){
zs1+=xzf[c1]/11;
}else{
zs2+=xzf[c1]/11;
}
return ;
}
if(xzf[c1]==102){
xl[c2]+=xzf[c1]%100;
if(c2==x1){
zs1+=xzf[c1]/100;
}else{
zs2+=xzf[c1]/100;
}
return ;
}
if(xzf[c1]==54188){
if(c2==x1){
jxl1+=1;
}else{
jxl2+=1;
}
return ;
}
}
void zf2(){
zfz=0;
srand(time(0));
zfj=rand()%10+1;
if(zfj==1){
srand(time(0));
zfj=rand()%2+1;
if(zfj==2){
cout<<"扣1,恢复技能1和技能2"<<endl;
xzf[1]=cjzf[1];
}
if(zfj==1){
cout<<"扣1,每次加上攻击对方的伤害的血量(仅普攻)"<<endl;
xzf[1]=cjzf[2];
}
zfz++;
}
srand(time(0));
for(i=1+zfz;i<=4;++i){
cout<<"扣"<<i<<",";
zfj=rand()%6+1;
if(zfj==1){
cout<<"减50%的血普攻每次加100%"<<endl;
xzf[i]=zf[1];
}
if(zfj==2){
cout<<"加百分之10格挡"<<endl;
xzf[i]=zf[2];
}
if(zfj==3){
cout<<"加3血"<<endl;
xzf[i]=zf[3];
}
if(zfj==4){
cout<<"下次攻击加2"<<endl;
xzf[i]=zf[4];
}
if(zfj==5){
cout<<"加1攻加2血"<<endl;
xzf[i]=zf[5];
}
if(zfj==6){
cout<<"每回合加1血"<<endl;
xzf[i]=zf[6];
}
}
}
void zn1(){
if((xzf[1]==114514||xzf[1]==9999)&&xl[x2]>6){
d=1;
}else{
if(xl[x2]<6){
for(i=1;i<=4;++i){
if(xzf[i]<=10){
d=i;
}
}
}else{
srand(time(0));
d=rand()%4+1;
if(xzf[d]==78&&xl[x2]>=10){
}else{
d5=d;
srand(time(0));
while(d5==d){
d=rand()%4+1;
}
}
}
}
}
void tg(){
for(i=1;i<=100;++i){
gxl[i]=i+11;
}
}
void yxh(int sb){
Sleep(2000);
system("cls");
if(sb==7){
cout<<"恭喜你解锁角色于项航"<<endl;
Sleep(1000);
system("cls");
cout<<"血量100,技能1对面扣10点血,技能2加10血,30%格挡"<<endl;
Sleep(1000);
system("cls");
}
}
int main(){
while(true){
system("cls");
cout<<"扣1,扫雷"<<endl;
cout<<"扣2,对战"<<endl;
cin>>d;
system("cls");
if(d==1){
sy=false;
cout<<"输出难度5-100,例如输出5则为5*5地图"<<endl;
while(1){
cin>>nd;
system("cls");
if(5<=nd&&nd<=100){
break;
}else{
cout<<"只能输出5-100的数,再输出一次"<<endl;
}
}
system("cls");
sld();
san();
game1();
if(sy==true){
cout<<"我的法克,你居然通过了"<<nd<<"*"<<nd<<"的地图,太牛逼了!!!"<<endl;
for(i=1;i<=nd;++i){
for(j=1;j<=nd;++j){
cout<<ld1[i][j]<<" ";
}
cout<<endl;
}
}else{
cout<<"你输了"<<endl;
for(i=1;i<=nd;++i){
for(j=1;j<=nd;++j){
cout<<ld1[i][j]<<" ";
}
cout<<endl;
}
}
}
if(d==2){
cout<<"扣1,无尽之塔"<<endl;
cout<<"扣2,对决"<<endl;
cin>>d;
system("cls");
if(d==1){
gx=1;
tg();
cout<<"扣1,血量10,技能1对方血量减5,技能2加2点血,被动10%格挡"<<endl;
cout<<"扣2,血量11,技能1加3点血,技能2对方血量减4"<<endl;
cout<<"扣3,血量12,技能1加4点血,技能2加4点血"<<endl;
cout<<"扣4,血量11,技能1对方血量减5,技能2每次攻击加2"<<endl;
cout<<"扣5,血量13,技能1伤害本局永久加3,技能2加3点血,被动5%格挡"<<endl;
cout<<"扣6,血量8,技能1对方血量减4,技能2加4点血,被动20%格挡"<<endl;
cout<<"扣7,神秘角色"<<endl;
C();
zf3();
cin>>x1;
yxh(x1);
xld=xl[x1];
Sleep(500);
system("cls");
while(1){
cout<<"第"<<gx<<"层"<<endl;
while(gxl[gx]>0){
cout<<"攻击"<<endl;
cout<<"扣1,普攻"<<endl;
cout<<"扣2,技能1"<<endl;
cout<<"扣3,技能2"<<endl;
while(gxl[gx]>0){
xl[x1]+=jxl1;
cin>>d;
if(d==1){
D();
cout<<"攻击对方"<<(gj+zs1)*cs1<<"点伤害"<<endl;
gxl[gx]-=(gj+zs1)*cs1;
}
if(cjzfx[x1]!=0&&d==1){
cout<<"吸血"<<(gj+zs1)*cs1<<endl;
xl[x1]+=(gj+zs1)*cs1;
break;
}
if(d==1){break;}
if(d==2&&jn1[x1]!=0){
if(jn1[x1]>0){
if(jn1[x1]/1111>0){
zs1+=jn1[x1]/1111;
cout<<"伤害本局永久加"<<jn1[x1]/1111<<endl;
}else{
cout<<"血量加"<<jn1[x1]<<endl;
xl[x1]+=jn1[x1];
}
}else{
cout<<"对方血量减"<<0-jn1[x1]<<endl;
gxl[gx]+=jn1[x1];
}
jn1[x1]=0;
break;
}
if(d==3&&jn2[x1]!=0){
if(jn2[x1]>0){
if(jn2[x1]/1111>0){
cout<<"伤害本局永久加"<<jn2[x1]/1111<<endl;
zs1+=jn2[x1]/1111;
}else{
cout<<"血量加"<<jn2[x1]<<endl;
xl[x1]+=jn2[x1];
}
}else{
cout<<"对方血量减"<<0-jn2[x1]<<endl;
gxl[gx]+=jn2[x1];
}
jn2[x1]=0;
break;
}else{
if(jn2[x1]==0||jn1[x1]==0){
cout<<"技能用过了!不能再用了!"<<endl;
continue;
}
}
}
srand(time(0));
dsb=rand()%4+1;
srand(time(0));
if(dsb==1)gj=rand()%2+1;
if(dsb==2)gj=rand()%2+3;
if(dsb==3)gj=rand()%2+5;
if(dsb==4)gj=rand()%3+1;
gj+=gx*2/3;
if(bd[x1]>0){
if(F(bd[x1])){
cout<<"你格挡"<<endl;
}else{
xl[x1]-=gj;
cout<<"对方攻击你"<<gj<<"点伤害"<<endl;
}
}else{
xl[x1]-=gj;
cout<<"对方攻击你"<<gj<<"点伤害"<<endl;
}
if(xl[x1]<=0){
break;
}
Sleep(1000);
system("cls");
cout<<"血量:"<<xl[x1]<<endl;
cout<<"怪血还剩:"<<gxl[gx]<<endl;
if(jn1[x1]!=0){
cout<<"技能1没有使用";
if(jn2[x1]!=0){
cout<<",技能2没有使用"<<endl;
}else{
cout<<",技能2使用"<<endl;
}
}else{
cout<<"技能1使用";
if(jn2[x1]!=0){
cout<<",技能2没有使用"<<endl;
}else{
cout<<",技能2使用"<<endl;
}
}
}
if(xl[x1]<=0){
cout<<"你死亡"<<endl;
cout<<"您打通"<<gx<<"层"<<endl;
break;
}
gx++;
cout<<"增幅"<<endl;
zf2();
cin>>d;
zf1(d,x1);
}
continue;
}
if(d==2){
zs1=0;
zs2=0;
cout<<"规则:普攻会随机给对方扣1-6点伤害,在第1回合不能用技能,第2回合开启技能,一共有2个技能+一个被动,血量没了对方就获胜,血量都没了平局"<<endl;
cout<<"1 vs 1,扣0"<<endl;
cout<<"AI vs 人类,扣1"<<endl;
cin>>zn;
cout<<"扣1,血量10,技能1对方血量减5,技能2加2点血,被动10%格挡"<<endl;
cout<<"扣2,血量11,技能1加3点血,技能2对方血量减4"<<endl;
cout<<"扣3,血量12,技能1加4点血,技能2加4点血"<<endl;
cout<<"扣4,血量11,技能1对方血量减5,技能2每次攻击加2"<<endl;
cout<<"扣5,血量13,技能1伤害本局永久加3,技能2加3点血,被动5%格挡"<<endl;
cout<<"扣6,血量8,技能1对方血量减4,技能2加4点血,被动20%格挡"<<endl;
cout<<"扣7,神秘角色"<<endl;
C();
zf3();
cout<<"不可以选一样的角色"<<endl;
cout<<"选择1号角色"<<endl;
cin>>x1;
yxh(x1);
if(zn>0){
srand(time(0));
x2=rand()%6+1;
while(x2==x1){
srand(time(0));
x2=rand()%6+1;
}
cout<<"AI选择"<<x2<<endl;
}else{
cout<<"选择2号角色"<<endl;
cin>>x2;
}
Sleep(500);
system("cls");
while(x2==x1){
if(zn>0){
srand(time(0));
x2=rand()%6+1;
}else{
cout<<"不可以选一样的角色"<<endl;
cin>>x2 ;
}
}
Sleep(500);
system("cls");
cout<<"第"<<hh<<"回合"<<endl<<endl;
cout<<"扣1,攻击"<<endl;
cin>>d;
D();
if(bd[x2]>0){
if(F(bd[x2])){
cout<<"2方格挡"<<endl;
}else{
xl[x2]-=gj;
cout<<"1方攻击2方"<<gj<<"点伤害"<<endl;
}
}else{
xl[x2]-=gj;
cout<<"1方攻击2方"<<gj<<"点伤害"<<endl;
}
if(zn>0){
d=1;
}else{
cout<<"扣1,攻击"<<endl;
cin>>d;
}
D();
if(bd[x1]>0){
if(F(bd[x1])){
cout<<"1方格挡"<<endl;
}else{
xl[x1]-=gj;
cout<<"2方攻击1方"<<gj<<"点伤害"<<endl;
}
}else{
xl[x1]-=gj;
cout<<"2方攻击1方"<<gj<<"点伤害"<<endl;
}
Sleep(500);
system("cls");
E();
hh++;
cout<<"开启技能!!!"<<endl;
cout<<"扣1,普攻"<<endl;
cout<<"扣2,技能1"<<endl;
cout<<"扣3,技能2"<<endl;
Sleep(500);
system("cls");
while(xl[x1]>0&&xl[x2]>0){
fz++;
cout<<"第"<<hh<<"回合"<<endl<<endl;
if(fz%4==0){
cout<<"增幅"<<endl;
zf2();
cout<<"1方"<<endl;
cin>>d;
zf1(d,x1);
if(zn>0){
zn1();
cout<<"AI选择"<<d<<endl;
}else{
cout<<"2方"<<endl;
cin>>d;
}
zf1(d,x2);
continue;
}
cout<<"1方攻击"<<endl;
while(true){
if(jxl1==1){
xl[x1]++;
}
cin>>d;
if(d==1){
D();
if(bd[x2]>0){
if(F(bd[x2])){
cout<<"2方格挡"<<endl;break;
}else{
cout<<"1方攻击2方"<<(gj+zs1)*cs1<<"点伤害"<<endl;
xl[x2]-=(gj+zs1)*cs1;
}
}else{
cout<<"1方攻击2方"<<(gj+zs1)*cs1<<"点伤害"<<endl;
xl[x2]-=(gj+zs1)*cs1;
}
if(cjzfx[x1]!=0){
cout<<"1方吸血"<<(gj+zs1)*cs1<<endl;
xl[x1]+=(gj+zs1)*cs1;
break;
}
break;
}
if(d==2&&jn1[x1]!=0){
if(jn1[x1]>0){
if(jn1[x1]/1111>0){
zs1+=jn1[x1]/1111;
cout<<"伤害本局永久加"<<jn1[x1]/1111<<endl;
}else{
cout<<"1方血量加"<<jn1[x1]<<endl;
xl[x1]+=jn1[x1];
}
}else{
cout<<"2方血量减"<<0-jn1[x1]<<endl;
xl[x2]+=jn1[x1];
}
jn1[x1]=0;
break;
}else{
if(jn1[x1]==0&&jn2[x1]==0){
cout<<"技能用过了!不能再用了!"<<endl;
continue;
}
}
if(d==3&&jn2[x1]!=0){
if(jn2[x1]>0){
if(jn2[x1]/1111>0){
cout<<"伤害本局永久加"<<jn2[x1]/1111<<endl;
zs1+=jn2[x1]/1111;
}else{
cout<<"1方血量加"<<jn2[x1]<<endl;
xl[x1]+=jn2[x1];
}
}else{
cout<<"2方血量减"<<0-jn2[x1]<<endl;
xl[x2]+=jn2[x1];
}
jn2[x1]=0;
break;
}else{
if(jn2[x1]==0||jn1[x1]==0){
cout<<"技能用过了!不能再用了!"<<endl;
continue;
}
}
}
cout<<"2方攻击"<<endl;
while(true){
if(jxl2==1){
xl[x2]++;
}
if(zn>=1){
G(x1,x2);
}else{
cin>>d;
}
if(d==1){
D();
if(zn>=1){if(gj+2<=6){srand(time(0));gj+=rand()%2+1;}else{srand(time(0));gj=rand()%2+5;}}
if(bd[x1]>0){
if(F(bd[x1])){
cout<<"1方格挡"<<endl;
break;
}else{
xl[x1]-=(gj+zs2)*cs2;
cout<<"2方攻击1方"<<(gj+zs2)*cs2<<"点伤害"<<endl;
}
}else{
xl[x1]-=(gj+zs2)*cs2;
cout<<"2方攻击1方"<<(gj+zs2)*cs2<<"点伤害"<<endl;
}
if(cjzfx[x2]!=0&&d==1){
cout<<"2方吸血"<<(gj+zs2)*cs2<<endl;
xl[x1]+=(gj+zs2)*cs2;
break;
}
break;
}
if(d==2&&jn1[x2]!=0){
if(jn1[x2]>0){
if(jn1[x2]/1111>0){
cout<<"伤害本局永久加"<<jn1[x2]/1111<<endl;
zs2+=jn1[x2]/1111;
}else{
cout<<"2方血量加"<<jn1[x2]<<endl;
xl[x2]+=jn1[x2];
}
}else{
cout<<"1方血量减"<<0-jn1[x2]<<endl;
xl[x1]+=jn1[x2];
}
jn1[x2]=0;
break;
}else{
if(jn1[x2]==0&&jn2[x2]==0&&zn>1){
cout<<"技能用过了!不能再用了!"<<endl;
continue;
}
}
if(d==3&&jn2[x2]!=0){
if(jn2[x2]>0){
if(jn2[x2]/1111>0){
cout<<"伤害本局永久加"<<jn2[x2]/1111<<endl;
zs2+=jn2[x2]/1111;
}else{
cout<<"2方血量加"<<jn2[x2]<<endl;
xl[x2]+=jn2[x2];
}
}else{
cout<<"1方血量减"<<0-jn2[x2]<<endl;
xl[x1]+=jn2[x2];
}
jn2[x2]=0;
break;
}else{
if((jn2[x2]==0||jn1[x2]==0)&&zn<1){
cout<<"技能用过了!不能再用了!"<<endl;
continue;
}
}
}
Sleep(2000);
system("cls");
E();
Sleep(2000);
system("cls");
hh++;
}
if(xl[x1]<1&&xl[x2]>0){
cout<<"2方获胜"<<endl;
}else{
if(xl[x2]<1&&xl[x1]>0){
cout<<"1方获胜"<<endl;
}else{
cout<<"平局"<<endl;
}
}
}
}
Sleep(500);
system("cls");
}
return 0;
}
恶魔轮盘赌
#include<windows.h>
#include<bits/stdc++.h>
using namespace std;
int Your=6,Other=6;
string daojuname[]={"放大镜","手铐","小刀","烟","饮料"};
double Yourmoney;
int shi,kong;
int q[10],qlen;//1 实 2 空
int Rand(int x,int y){
int A=rand(),B=rand();
return A*1ll*B%(y-x+1)+x;
}
int T;//ou->you
int daojulen;
int daoju[10];
int daojulen1;
int daoju1[10];
void build_gun(){
kong=Rand(1,4);
shi=Rand(1,4);
qlen=0;
printf("%d发实弹,%d发空弹\n",shi,kong);
int a1=kong,a2=shi;
for(int i=1;i<=kong+shi;i++){
// Sleep(50);
int sum=Rand(1,a1+a2);
if(sum<=a1){
a1--;
q[++qlen]=2;
}else{
a2--;
q[++qlen]=1;
}
}
int maxn=min(4,8-daojulen);
printf("你获得了%d个道具:\n",maxn);
daojulen+=maxn;
for(int i=1;i<=maxn;i++){
// Sleep(50);
int kkk=Rand(0,4);
daoju[kkk]++;
cout<<daojuname[kkk];
if(i!=maxn){
printf(",");
}
}
printf("\n");
maxn=min(4,8-daojulen1);
printf("恶魔获得了%d个道具:\n",maxn);
daojulen1+=maxn;
for(int i=1;i<=maxn;i++){
int kkk=Rand(0,4);
daoju1[kkk]++;
cout<<daojuname[kkk];
if(i!=maxn){
printf(",");
}
}
printf("\n");
system("pause");
system("cls");
}
void IsOver(){
if(Your<=0){
printf("你输了\n");
system("pause");
exit(0);
}
if(Other<=0){
printf("你赢了\n你获得了奖金$%.2lf\n",Yourmoney);
system("pause");
exit(0);
}
}
void wait(){
for(int i=1;i<=3;i++){
Sleep(500);
printf(".");
}
Sleep(500);
}
int Hurt=1;
int shoukao_you;
void Timeyou(){
int x;
while(1){
printf("你的生命:%d/6\n恶魔生命:%d/6\n",Your,Other);
printf("剩余实弹数:%d 剩余空弹数:%d\n",shi,kong);
printf("你现在拥有的道具:\n");
for(int i=0;i<=4;i++){
cout<<daojuname[i];
printf("%d",daoju[i]);
printf("个");
if(i!=4){
printf(",");
}
}
printf("\n");
printf("恶魔现在拥有的道具:\n");
for(int i=0;i<=4;i++){
cout<<daojuname[i];
printf("%d",daoju1[i]);
printf("个");
if(i!=4){
printf(",");
}
}
printf("\n");
printf("现在是你的回合\n");
printf("你要\n1.向恶魔开枪\n2.向自己开枪\n");
for(int i=0;i<=4;i++){
printf("%d.使用",i+3);
cout<<daojuname[i]<<'\n';
}
scanf("%d",&x);
if(1<=x&&x<=7){
break;
}
printf("输入不合法\n");
Sleep(1145);
system("cls");
}
if(x==1){
printf("你决定向恶魔开枪");
T++;
wait();
if(q[qlen]==2){
Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(shi)*1.0/(double)(shi+kong)));
kong--;
qlen--;
Hurt=1;
printf("是空弹\n");
if(shoukao_you==1){
shoukao_you=0;
printf("因为你使用了手铐,所以可以再来一次\n");
Sleep(500);
T--;
}
}else{
// printf("((%lf))\n",Yourmoney);
Yourmoney+=(double)(5000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong)));
// printf("{{%lf}}\n",Yourmoney);
shi--;
qlen--;
Other-=Hurt;
Hurt=1;
printf("是实弹\n");
Sleep(500);
IsOver();
if(shoukao_you==1){
shoukao_you=0;
Yourmoney+=1000.0;
printf("因为你使用了手铐,所以可以再来一次\n");
Sleep(500);
T--;
}
}
}else if(x==2){
printf("你决定向自己开枪");
wait();
if(q[qlen]==2){
Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong)));
kong--;
qlen--;
Hurt=1;
printf("是空弹\n");
}else{
Yourmoney+=5000.0*(1+(double)(shi)*1.0/(double)(shi+kong));
T++;
shi--;
qlen--;
Your-=Hurt;
Hurt=1;
printf("是实弹\n");
Sleep(500);
IsOver();
if(shoukao_you==1){
shoukao_you=0;
printf("因为你使用了手铐,所以可以再来一次\n");
Sleep(500);
T--;
}
}
}else if(x==3){//{"放大镜","手铐","小刀","烟","饮料"};
if(daoju[0]){
daoju[0]--;
daojulen--;
printf("你使用了放大镜\n");
wait();
printf("\n你看到了");
if(q[qlen]==1){
printf("实弹\n");
Yourmoney+=2500.0;
}else{
printf("空弹\n");
}
Sleep(500);
printf("\n");
}else{
printf("你现在没有放大镜\n");
Sleep(1145);
system("cls");
}
}else if(x==4){
if(daoju[1]){
if(!shoukao_you){
daoju[1]--;
daojulen--;
printf("你使用了手铐\n");
printf("你获得了连开两枪的机会\n");
shoukao_you=1;
}else{
printf("你已经用过手铐了\n");
}
Sleep(1145);
system("cls");
}else{
printf("你现在没有手铐\n");
Sleep(1145);
system("cls");
}
}else if(x==5){
if(daoju[2]){
if(Hurt==1){
daoju[2]--;
daojulen--;
printf("你使用了小刀\n");
printf("若下一发为实弹则伤害+1\n");
Yourmoney+=500.0;
Hurt=2;
}else{
printf("你已经用过小刀了\n");
}
Sleep(1145);
system("cls");
}else{
printf("你现在没有小刀\n");
Sleep(1145);
system("cls");
}
}else if(x==6){
if(daoju[3]){
if(Your^6){
daoju[3]--;
daojulen--;
printf("你使用了烟\n");
printf("你回复了一点生命\n");
Yourmoney+=500.0;
Your++;
}else{
printf("你现在不需要烟\n");
}
Sleep(1145);
}else{
printf("你现在没有烟\n");
Sleep(1145);
system("cls");
}
}else{
if(daoju[4]){
daoju[4]--;
daojulen--;
printf("你使用了饮料\n");
wait();
printf("\n");
printf("你退了一发");
if(q[qlen]==2){
printf("空弹");
kong--;
}else{
printf("实弹");
Yourmoney+=500.0;
shi--;
}
qlen--;
Sleep(500);
}else{
printf("你现在没有饮料\n");
Sleep(1145);
system("cls");
}
}
Sleep(1000);
system("cls");
}
int Know;//通过放大镜得知下一发子弹
int shoukaoemo;
void fightyou(){
printf("恶魔决定向你开枪");
T++;
wait();
if(q[qlen]==2){
Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong)));
kong--;
qlen--;
Hurt=1;
Know=0;
printf("是空弹\n");
if(shoukaoemo){
printf("因为恶魔使用了手铐,所以可以再来一次\n");
T--;
Sleep(500);
shoukaoemo=0;
}
}else{
Yourmoney+=(double)(5000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong)));
shi--;
qlen--;
Your-=Hurt;
Hurt=1;
printf("是实弹\n");
Know=0;
Sleep(500);
IsOver();
if(shoukaoemo){
printf("因为恶魔使用了手铐,所以可以再来一次\n");
Yourmoney+=1000.0;
T--;
Sleep(500);
shoukaoemo=0;
}
}
}
void fightemo(){
printf("恶魔决定向自己开枪");
wait();
if(q[qlen]==2){
Yourmoney+=2000.0*(1+(double)(shi)*1.0/(double)(shi+kong));
kong--;
qlen--;
printf("是空弹\n");
Know=0;
}else{
Yourmoney+=5000.0*(1+(double)(kong)*1.0/(double)(shi+kong));
shi--;
T++;
qlen--;
Other-=Hurt;
Hurt=1;
printf("是实弹\n");
Know=0;
Sleep(500);
IsOver();
if(shoukaoemo){
printf("因为恶魔使用了手铐,所以可以再来一次\n");
T--;
Sleep(500);
shoukaoemo=0;
}
}
}
void Timeother(){
printf("你的生命:%d/6\n恶魔生命:%d/6\n",Your,Other);
printf("剩余实弹数:%d 剩余空弹数:%d\n",shi,kong);
printf("你现在拥有的道具:\n");
for(int i=0;i<=4;i++){
cout<<daojuname[i];
printf("%d",daoju[i]);
printf("个");
if(i!=4){
printf(",");
}
}
printf("\n");
printf("恶魔现在拥有的道具:\n");
for(int i=0;i<=4;i++){
cout<<daojuname[i];
printf("%d",daoju1[i]);
printf("个");
if(i!=4){
printf(",");
}
}
printf("\n");
printf("现在是恶魔的回合\n");
Sleep(1500);
if(Other!=6){
if(daoju1[3]){
daoju1[3]--;
daojulen1--;
printf("恶魔使用了烟\n");
printf("恶魔回复了一点生命\n");
Other++;
Yourmoney+=500.0;
Sleep(1145);
system("cls");
return ;
}
}
if(Know==0&&kong==0){
Know=1;
}
if(Know==0){
if(abs(shi-kong)<2&&kong!=0){
if(daoju1[0]){
daoju1[0]--;
daojulen1--;
printf("恶魔使用了放大镜\n");
wait();
printf("\n恶魔看到了");
if(q[qlen]==1){
printf("实弹");
Yourmoney+=2500.0;
Know=1;
}else{
printf("空弹");
Know=2;
}
Sleep(1145);
system("cls");
return ;
}
}
}else if(Know==1){
if(Hurt==1&&daoju1[2]){
daoju1[2]--;
daojulen1--;
Hurt++;
printf("恶魔使用了小刀\n");
printf("若下一发为实弹则伤害+1");
Yourmoney+=500.0;
Sleep(1145);
system("cls");
return ;
}else{
if(shi>=kong+1&&daoju1[1]&&shoukaoemo!=1){
daoju1[1]--;
daojulen1--;
shoukaoemo=1;
printf("恶魔使用了手铐\n");
printf("恶魔获得了连开两枪的机会\n");
Sleep(1145);
system("cls");
return ;
}
fightyou();
system("cls");
return ;
}
}else{
if(daoju1[4]){
daoju1[4]--;
daojulen1--;
printf("恶魔使用了饮料\n");
wait();
printf("\n");
printf("恶魔退了一发");
if(q[qlen]==2){
printf("空弹");
kong--;
}else{
printf("实弹");
shi--;
}
Know=0;
qlen--;
Sleep(500);
Sleep(1145);
system("cls");
return ;
}else{
fightemo();
Sleep(1145);
system("cls");
return ;
}
}
if(shi>=kong){
fightyou();
}else{
fightemo();
}
Sleep(1145);
system("cls");
}
void Play(){
while(1){
if(shi==0){
build_gun();
T=0;
continue;
}
if(T%2==0){
Timeyou();
}else{
Timeother();
}
}
}
void danrenplay(){
for(int i=1;i<=3;i++){
printf(".");
// Sleep(1000);
}
printf("\n");
printf("又来了一位挑战者...\n");
Sleep(1000);
int x;
while(1){
printf("准备好参与恶魔的游戏吗?胜者带走奖金,败者将会在此长眠\n1.好的\n2.没问题\n");
scanf("%d",&x);
if(x==1||x==2){
break;
}
printf("输入不合法\n");
Sleep(1145);
system("cls");
}
while(1){
printf("你清楚我们的规则吗?\n1.清楚\n2.不清楚\n");
scanf("%d",&x);
if(x==1||x==2){
break;
}
printf("输入不合法\n");
Sleep(1145);
system("cls");
}
if(x==1){
}else{
for(int i=1;i<=3;i++){
printf(".");
Sleep(1000);
}
printf("\n");
printf("规则:\n");
printf("你和恶魔都各有6点生命\n") ;
printf("每一回合开始前,你将知道一共有几发实弹,几发空弹,同时双方都将获得4个道具作为补给(上限为8个)\n");
printf("每一回合,你可以选择对自己开枪,对恶魔开枪或者使用道具\n");
printf("如果你对自己开枪,若为空弹,则可以继续行动,否则,停止行动\n");
printf("如果你对恶魔开枪,无论如何,都将停止行动\n");
printf("道具一览:\n");
printf("放大镜:可以知道下一发子弹是空弹还是实弹\n");
printf("手铐:增加一次本回合的行动次数\n");
printf("小刀:若下一发子弹为实弹,则伤害+1\n");
printf("烟:可以回复1点体力\n");
printf("饮料:可以退一发子弹\n");
system("pause");
system("cls");
}
printf("好吧\n");
Sleep(1145);
printf("游戏将要开始了哦\n");
Sleep(1145);
system("cls");
Play();
}
void IsOver_duo(){
if(Your<=0){
printf("玩家B赢了\n玩家B获得了奖金$%.2lf\n",Yourmoney);
system("pause");
exit(0);
}else if(Other<=0){
printf("玩家A赢了\n玩家A获得了奖金$%.2lf\n",Yourmoney);
system("pause");
exit(0);
}
}
void build_gun_duo(){
kong=Rand(1,4);
shi=Rand(1,4);
qlen=0;
printf("%d发实弹,%d发空弹\n",shi,kong);
int a1=kong,a2=shi;
for(int i=1;i<=kong+shi;i++){
// Sleep(50);
int sum=Rand(1,a1+a2);
if(sum<=a1){
a1--;
q[++qlen]=2;
}else{
a2--;
q[++qlen]=1;
}
}
int maxn=min(2,8-daojulen);
printf("玩家A获得了%d个道具:\n",maxn);
daojulen+=maxn;
for(int i=1;i<=maxn;i++){
// Sleep(50);
int kkk=Rand(0,4);
daoju[kkk]++;
cout<<daojuname[kkk];
if(i!=maxn){
printf(",");
}
}
printf("\n");
maxn=min(2,8-daojulen1);
printf("玩家B获得了%d个道具:\n",maxn);
daojulen1+=maxn;
for(int i=1;i<=maxn;i++){
int kkk=Rand(0,4);
daoju1[kkk]++;
cout<<daojuname[kkk];
if(i!=maxn){
printf(",");
}
}
printf("\n");
system("pause");
system("cls");
}
void Timeyou_duo(){
int x;
while(1){
printf("玩家A的生命:%d/4\n玩家B的生命:%d/4\n",Your,Other);
printf("剩余实弹数:%d 剩余空弹数:%d\n",shi,kong);
printf("玩家A现在拥有的道具:\n");
for(int i=0;i<=4;i++){
cout<<daojuname[i];
printf("%d",daoju[i]);
printf("个");
if(i!=4){
printf(",");
}
}
printf("\n");
printf("玩家B现在拥有的道具:\n");
for(int i=0;i<=4;i++){
cout<<daojuname[i];
printf("%d",daoju1[i]);
printf("个");
if(i!=4){
printf(",");
}
}
printf("\n");
printf("现在是玩家A的回合\n");
printf("玩家A要\n1.向玩家B开枪\n2.向自己开枪\n");
for(int i=0;i<=4;i++){
printf("%d.使用",i+3);
cout<<daojuname[i]<<'\n';
}
scanf("%d",&x);
if(1<=x&&x<=7){
break;
}
printf("输入不合法\n");
Sleep(1145);
system("cls");
}
if(x==1){
printf("玩家A决定向玩家B开枪");
T++;
wait();
if(q[qlen]==2){
Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(shi)*1.0/(double)(shi+kong)));
kong--;
qlen--;
Hurt=1;
printf("是空弹\n");
if(shoukao_you==1){
shoukao_you=0;
printf("因为玩家A使用了手铐,所以可以再来一次\n");
Sleep(500);
T--;
}
}else{
// printf("((%lf))\n",Yourmoney);
Yourmoney+=(double)(5000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong)));
// printf("{{%lf}}\n",Yourmoney);
shi--;
qlen--;
Other-=Hurt;
Hurt=1;
printf("是实弹\n");
Sleep(500);
IsOver_duo();
if(shoukao_you==1){
shoukao_you=0;
Yourmoney+=1000.0;
printf("因为玩家A使用了手铐,所以可以再来一次\n");
Sleep(500);
T--;
}
}
}else if(x==2){
printf("玩家A决定向自己开枪");
wait();
if(q[qlen]==2){
Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong)));
kong--;
qlen--;
Hurt=1;
printf("是空弹\n");
}else{
Yourmoney+=5000.0*(1+(double)(shi)*1.0/(double)(shi+kong));
T++;
shi--;
qlen--;
Your-=Hurt;
Hurt=1;
printf("是实弹\n");
Sleep(500);
IsOver_duo();
if(shoukao_you==1){
shoukao_you=0;
printf("因为玩家A使用了手铐,所以可以再来一次\n");
Sleep(500);
T--;
}
}
}else if(x==3){//{"放大镜","手铐","小刀","烟","饮料"};
if(daoju[0]){
daoju[0]--;
daojulen--;
printf("玩家A使用了放大镜\n");
wait();
printf("\n玩家A看到了");
if(q[qlen]==1){
printf("实弹\n");
Yourmoney+=2500.0;
}else{
printf("空弹\n");
}
Sleep(500);
printf("\n");
}else{
printf("玩家A现在没有放大镜\n");
Sleep(1145);
system("cls");
}
}else if(x==4){
if(daoju[1]){
if(!shoukao_you){
daoju[1]--;
daojulen--;
printf("玩家A使用了手铐\n");
printf("玩家A获得了连开两枪的机会\n");
shoukao_you=1;
}else{
printf("玩家A已经用过手铐了\n");
}
Sleep(1145);
system("cls");
}else{
printf("玩家A现在没有手铐\n");
Sleep(1145);
system("cls");
}
}else if(x==5){
if(daoju[2]){
if(Hurt==1){
daoju[2]--;
daojulen--;
printf("玩家A使用了小刀\n");
printf("若下一发为实弹则伤害+1\n");
Yourmoney+=500.0;
Hurt=2;
}else{
printf("玩家A已经用过小刀了\n");
}
Sleep(1145);
system("cls");
}else{
printf("玩家A现在没有小刀\n");
Sleep(1145);
system("cls");
}
}else if(x==6){
if(daoju[3]){
if(Your^4){
daoju[3]--;
daojulen--;
printf("玩家A使用了烟\n");
printf("玩家A回复了一点生命\n");
Yourmoney+=500.0;
Your++;
}else{
printf("玩家A现在不需要烟\n");
}
Sleep(1145);
}else{
printf("玩家A现在没有烟\n");
Sleep(1145);
system("cls");
}
}else{
if(daoju[4]){
daoju[4]--;
daojulen--;
printf("玩家A使用了饮料\n");
wait();
printf("\n");
printf("玩家A退了一发");
if(q[qlen]==2){
printf("空弹");
kong--;
}else{
printf("实弹");
Yourmoney+=500.0;
shi--;
}
qlen--;
Sleep(500);
}else{
printf("玩家A现在没有饮料\n");
Sleep(1145);
system("cls");
}
}
Sleep(1000);
system("cls");
}
void Timeother_duo(){
int x;
while(1){
printf("玩家A的生命:%d/4\n玩家B的生命:%d/4\n",Your,Other);
printf("剩余实弹数:%d 剩余空弹数:%d\n",shi,kong);
printf("玩家A现在拥有的道具:\n");
for(int i=0;i<=4;i++){
cout<<daojuname[i];
printf("%d",daoju[i]);
printf("个");
if(i!=4){
printf(",");
}
}
printf("\n");
printf("玩家B现在拥有的道具:\n");
for(int i=0;i<=4;i++){
cout<<daojuname[i];
printf("%d",daoju1[i]);
printf("个");
if(i!=4){
printf(",");
}
}
printf("\n");
printf("现在是玩家B的回合\n");
printf("玩家B要\n1.向玩家A开枪\n2.向自己开枪\n");
for(int i=0;i<=4;i++){
printf("%d.使用",i+3);
cout<<daojuname[i]<<'\n';
}
scanf("%d",&x);
if(1<=x&&x<=7){
break;
}
printf("输入不合法\n");
Sleep(1145);
system("cls");
}
if(x==1){
printf("玩家B决定向玩家A开枪");
T++;
wait();
if(q[qlen]==2){
Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(shi)*1.0/(double)(shi+kong)));
kong--;
qlen--;
Hurt=1;
printf("是空弹\n");
if(shoukaoemo==1){
shoukaoemo=0;
printf("因为玩家B使用了手铐,所以可以再来一次\n");
Sleep(500);
T--;
}
}else{
// printf("((%lf))\n",Yourmoney);
Yourmoney+=(double)(5000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong)));
// printf("{{%lf}}\n",Yourmoney);
shi--;
qlen--;
Your-=Hurt;
Hurt=1;
printf("是实弹\n");
Sleep(500);
IsOver_duo();
if(shoukaoemo==1){
shoukaoemo=0;
Yourmoney+=1000.0;
printf("因为玩家B使用了手铐,所以可以再来一次\n");
Sleep(500);
T--;
}
}
}else if(x==2){
printf("玩家B决定向自己开枪");
wait();
if(q[qlen]==2){
Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong)));
kong--;
qlen--;
Hurt=1;
printf("是空弹\n");
}else{
Yourmoney+=5000.0*(1+(double)(shi)*1.0/(double)(shi+kong));
T++;
shi--;
qlen--;
Other-=Hurt;
Hurt=1;
printf("是实弹\n");
Sleep(500);
IsOver_duo();
if(shoukao_you==1){
shoukao_you=0;
printf("因为玩家B使用了手铐,所以可以再来一次\n");
Sleep(500);
T--;
}
}
}else if(x==3){//{"放大镜","手铐","小刀","烟","饮料"};
if(daoju1[0]){
daoju1[0]--;
daojulen1--;
printf("玩家B使用了放大镜\n");
wait();
printf("\n玩家B看到了");
if(q[qlen]==1){
printf("实弹\n");
Yourmoney+=2500.0;
}else{
printf("空弹\n");
}
Sleep(500);
printf("\n");
}else{
printf("玩家B现在没有放大镜\n");
Sleep(1145);
system("cls");
}
}else if(x==4){
if(daoju1[1]){
if(!shoukaoemo){
daoju1[1]--;
daojulen1--;
printf("玩家B使用了手铐\n");
printf("玩家B获得了连开两枪的机会\n");
shoukaoemo=1;
}else{
printf("玩家B已经用过手铐了\n");
}
Sleep(1145);
system("cls");
}else{
printf("玩家B现在没有手铐\n");
Sleep(1145);
system("cls");
}
}else if(x==5){
if(daoju1[2]){
if(Hurt==1){
daoju1[2]--;
daojulen1--;
printf("玩家B使用了小刀\n");
printf("若下一发为实弹则伤害+1\n");
Yourmoney+=500.0;
Hurt=2;
}else{
printf("玩家B已经用过小刀了\n");
}
Sleep(1145);
system("cls");
}else{
printf("玩家B现在没有小刀\n");
Sleep(1145);
system("cls");
}
}else if(x==6){
if(daoju1[3]){
if(Other^4){
daoju1[3]--;
daojulen1--;
printf("玩家B使用了烟\n");
printf("玩家B回复了一点生命\n");
Yourmoney+=500.0;
Other++;
}else{
printf("玩家B现在不需要烟\n");
}
Sleep(1145);
}else{
printf("玩家B现在没有烟\n");
Sleep(1145);
system("cls");
}
}else{
if(daoju1[4]){
daoju1[4]--;
daojulen1--;
printf("玩家B使用了饮料\n");
wait();
printf("\n");
printf("玩家B退了一发");
if(q[qlen]==2){
printf("空弹");
kong--;
}else{
printf("实弹");
Yourmoney+=500.0;
shi--;
}
qlen--;
Sleep(500);
}else{
printf("玩家B现在没有饮料\n");
Sleep(1145);
system("cls");
}
}
Sleep(1000);
system("cls");
}
int asdasd;
void duorenplay(){
while(1){
if(shi==0){
build_gun_duo();
T=asdasd;
asdasd++;
continue;
}
if(T%2==0){
Timeyou_duo();
}else{
Timeother_duo();
}
}
}
int main(){
srand(time(0));
int x;
while(1){
printf("请选择你想要的模式:\n1.单人\n2.双人(此模式中,生命值为4,道具补给为2)\n");
scanf("%d",&x);
if(x==1||x==2){
break;
}
printf("输入不合法\n");
Sleep(1145);
system("cls");
}
system("cls");
if(x==1){
danrenplay();
}else{
Your=Other=4;
duorenplay();
}
return 0;
}