大富翁竞技场

#include<iostream>
#include<string>
#include<cstring>
#include<stdio.h>
#include<stdlib.h>
#include<windows.h> //Xcode涓嶈兘鐢ㄣ€?
#include<time.h>
#include<unistd.h> //sleep()//1s//usleep()//1/1000000s
#include<cstdlib>//system("cls")
#include<conio.h>//getch()
#define random(x) (rand()%x)
using namespace std;
int a[5000],a2[5000],a3[5000],game=0,start=0,move1=0,move2=1,move3=0,e=0,now[5],money[5]={10,10,10,10,10},i=0,j=0,fight=0,b=0,p=0,prop[5][11],st[30],pstar[5],fg[15][15],fn=0,fm=0,f2n=0,f2m=0,win;
double tim;
struct player{
int m;
int hp;
int arrow;
string bow;
string knife;
};
player pp[3];
void outside(string o){
for(int k=0;k<o.length();k++){
    cout<<o[k];
    usleep(38000);
}
cout<<endl<<endl;
}
void colour(int d){
    if(d==1){
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |FOREGROUND_GREEN|
        FOREGROUND_BLUE);
    }else if(d==2){
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |
        FOREGROUND_RED);
    }else if(d==3){
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |
        FOREGROUND_GREEN);
    }else if(d==4){
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |FOREGROUND_RED|
        FOREGROUND_BLUE);
    }else if(d==5){
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
    }else if(d==6){
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |FOREGROUND_BLUE);
    }else if(d==7){
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_BLUE|FOREGROUND_INTENSITY |
        FOREGROUND_RED|FOREGROUND_GREEN);
    }else if(d==8){
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |BACKGROUND_INTENSITY|FOREGROUND_GREEN|BACKGROUND_RED|
    BACKGROUND_BLUE|FOREGROUND_BLUE);
    }else if(d==9){
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
        FOREGROUND_INTENSITY);
    }else
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |
        FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE);
    cout<<d<<" ";
}
void say(int a){
cout<<endl<<endl<<endl;
outside("1会给你三块钱。");
outside("2会扣掉你三块钱。");
outside("3会给你一个随机事件。");
outside("4会给你一个邪恶的转盘。");
outside("5会给你一个好的转盘。");
outside("6会让你和一个人决斗。如果你赢了,你可以拿走那个玩家一半的钱。");
outside("7是星星商家的家,你可以用30元换一个星星。在你买了星星后,星星商人会去地图上的任何地方。一张地图上有30个星星商人。");
outside("8是道具店。(开发中)");
outside("9号是道具供应点。你可以通过经过或停留来获得道具。");
outside("10,11,12,13 分别是玩家 1,2,3,4。");
outside("收集10颗星的玩家就获胜。");
outside("游戏中有10种道具。");
outside("道具1:两倍樱桃。功能:步数乘以2(5块钱)");
outside("道具二:三倍樱桃。功能:步数乘3(10块钱)");
outside("道具三:钱包。功能:给你10元(5元)");
outside("道具四:加速蘑菇。功能:加5步(10元)");
outside("道具5:黄金加速蘑菇。功能:加10步(15元)");
outside("道具六:管道。功能:把你送到地图上的任意位置(15元)");
outside("道具七:金色的管子。功能:传送你到地图上随机星星商人的位置(25元)");
outside("道具八:夹娃娃机。功能:可作为任何道具使用(30元)");
outside("道具9:嘘(boo)。功能:从指定玩家那里偷10块钱,再加35元可以从指定玩家那里偷一颗星星(15块钱)");
outside("道具十:战斗手套。功能:让你和一个指定的玩家战斗,如果你赢了,你可以偷那个玩家的一半钱(15钱)");
outside("按1掷骰子");
outside("按2使用道具");
system("pause");
return;
}
void say2(){
outside("Alpha 1.7.2:增加了更新日志。修复了一些bug。");
outside("Alpha 1.8.0:改进了随机事件。修复了一些bug。");
outside("Alpha 1.9.0:添加了好转盘。修复了一些bug。");
outside("Alpha 1.9.2:修复了一些bug。");
outside("Alpha 1.9.3:增加了夹娃娃机。修复了一些bug。");
outside("Alpha 1.9.4:增加了嘘(boo)。修复了一些bug。");
outside("Alpha 1.9.5:修复了一些bug。");
outside("Alpha 1.10.0:增加了战斗1和战斗手套。修复了一些bug。");
outside("Alpha 1.10.1:修复了一些bug。");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
outside("Bata 1.0.0:添加了星星商人。你可以成为这场比赛的赢家!!!");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
system("pause");
return;
}
void merchant(int c){
int cc=0,cd=0;
pstar[j]++;
outside("Loading...");
for(int i=0;i<30;i++){
    if(st[i]==now[j]){
        cc=i;
        break;
    }
}
a3[now[j]]=a2[now[j]];
a[now[j]]=a2[now[j]];
a3[cd=(random(5000))]=7;
a[cd=(random(5000))]=7;
return;
}
void begg(int ran,int use){
int give=0;
if(ran>use*25){
    outside("Thank you");
    outside("I have a prop");
    outside("But I can't use it");
    outside("So I want to give you!");
    sleep(1);
    give=(random(10));
    switch(give){
        case 0:outside("The begger will give you a double cherry");prop[j][0]++;prop[j][10]++;
                break;
        case 1:outside("The begger will give you a triple cherry");prop[j][1]++;prop[j][10]++;
                break;
        case 2:outside("The begger will give you a wallet");prop[j][2]++;prop[j][10]++;
            break;
        case 3:outside("The begger will give you a sprint mushroom");prop[j][3]++;prop[j][10]++;
            break;
        case 4:outside("The begger will give you a golden mushroom");prop[j][4]++;prop[j][10]++;
                break;
        case 5:outside("The begger will give you a pipe");prop[j][5]++;prop[j][10]++;
                break;
        case 6:outside("The begger will give you a golden pipe");prop[j][6]++;prop[j][10]++;
                break;
        case 7:outside("The begger will give you a doll clamping machine");prop[j][7]++;prop[j][10]++;
                break;
                case 8:outside("The begger will give you a boo");prop[j][8]++;prop[j][10]++;
                                break;
                            case 9:outside("The begger will give you the combat gloves");prop[j][9]++;prop[j][10]++;
                                break;
                        }
}else
    outside("Sorry.I don't have any props. :(");

return;
}
void event(int player){
int e=0,use=0,ran=0,qqq,qqqq,qqqqq,qn;
e=(random(6));
switch(e){
    case 0:outside("Nothing happened");break;
    case 1:cout<<"Player "<<j<<" meets a beggar"<<endl;
        outside("Press 1 to gives the begger twenty money");
        outside("Press 2 to gives the begger ten money");
        outside("Press 3 to gives the begger five money");
        outside("Press 4 not to give money to beggars");
        cin>>use;
        ran=(random(100));
        switch(use){
            case 1:if(money[j]<20){
                outside("You don't have enouth money");
                break;
            }money[j-1]-=20;
                begg(ran,use);
                break;
            case 2:if(money[j]<10){
                outside("You don't have enouth money");
                break;
            }money[j-1]-=10;begg(ran,use);
                    break;
            case 3:if(money[j]<5){
                outside("You don't have enouth money");
                break;
            }money[j]-=5;begg(ran,use);
                    break;
            case 4:outside("QAQ");break;
        }
        break;
    case 2:cout<<"Player "<<j<<" meets a student"<<endl;
        outside("Your money -10 because you give a student 10 money");money[j]-=10;break;
    case 3:cout<<"Player "<<j<<" going to the park now"<<endl;
        outside("Please waiting 20 seconds. :)");
        sleep(20);break;
    case 4:cout<<"Player "<<j<<" going to the school now"<<endl;
        sleep(1);
        qqq=(random(1000000000));
        qqqq=(random(1000000000));
        cout<<"teacher:"<<qqq<<"+"<<qqqq<<"=? :)"<<endl;
        cin>>qqqqq;
        if(qqqqq==qqq+qqqq){
            outside("GREAT!give you 15 money. :D");
            money[j]+=15;break;
        }else
            outside("NO! (your money-13)");
            money[j]-=13;break;
    case 5:cout<<"Player "<<j<<" going to the S* tree."<<endl;
        sleep(1);
        outside("tree:can you give me 11 money?(1 or 0)");
        cin>>qn;
        if(qn==1){
            outside("tree: thank you.");money[j]-=11;break;
        }else
            outside("tree: ww... (waiting 40 seconds)");
            sleep(40);break;
}
}
void evil(int pl,int &yuan){
int ran=0,w=0;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |FOREGROUND_RED | FOREGROUND_BLUE);
outside("clear your 10 money(2/9)");
outside("clear your 20 money(2/9)");
outside("clear your a half of money(2/9)");
outside("clear your a prop(2/9)");
outside("clear your all money(1/18)");
outside("clear your a star(1/18)");
system("pause");
ran=(random(18));
if(ran<4){
    yuan-=10;
    cout<<"player "<<pl<<"'s tan money has been cleared. :|"<<endl<<endl;
    sleep(1);
    return;
}else if(ran<8){
    yuan-=20;
    cout<<"player "<<pl<<"'s twenty money has been cleared. :("<<endl<<endl;
    sleep(1);
    return;
}else if(ran<12){
    yuan/=2;
    cout<<"player "<<pl<<"'s half of the money has been cleared. :|"<<endl<<endl;
    sleep(1);
    return;
}else if(ran<16){
    cout<<"player "<<pl<<" will clear a prop. :|"<<endl<<endl;
    sleep(1);
    w=(random(10));
    prop[pl][w]--;
    cout<<"The prop "<<w<<" has been removed."<<endl<<endl;
    sleep(1);
    if(prop[pl][w]<0){
        prop[pl][w]++;
        outside("But he or she doesn't have the prop. :)");
        sleep(1);
    }else
        prop[pl][10]--;
    return;
}else if(ran=16){
    yuan=0;
    cout<<"player "<<pl<<"'s money has been cleared. X("<<endl<<endl;
    sleep(1);
    return;
}else 
    pstar[pl]--;
    cout<<"player "<<pl<<"'s star -1. XX("<<endl<<endl;
    if(pstar[pl]<0){
        pstar[pl]++;
        outside("But he or she doesn't have a star. XD");
    }
    sleep(1);
    return;
}
void ppp(){
int ran;
ran=(random(100));
prop[j][10]++;
cout<<"player "<<j<<" get a ";
if(ran<20){
    cout<<"double cherry!"<<endl<<endl;//20%
    prop[j][1]++;
}else if(ran<40){
    cout<<"sprint mushroom!"<<endl<<endl;//20%
    prop[j][4]++;
}else if(ran<60){
    cout<<"pipe!"<<endl<<endl;//20%
    prop[j][6]++;
}else if(ran<70){
    cout<<"wallet!"<<endl<<endl;//10%
    prop[j][3]++;
}else if(ran<78){
    cout<<"triple cherry!!"<<endl<<endl;//8%
    prop[j][2]++;
}else if(ran<86){
    cout<<"combat gloves!!"<<endl<<endl;//8%
    prop[j][9]++;
}else if(ran<91){
    cout<<"boo!!"<<endl<<endl;//5%
    prop[j][8]++;
}else if(ran<95){
    cout<<"golden mushroom!!"<<endl<<endl;//4%
    prop[j][5]++;
}else if(ran<98){
    cout<<"golden pipe!!!"<<endl<<endl;//3%
    prop[j][7]++;
}else
    cout<<"doll clamping machine!!!"<<endl<<endl;//2%
    prop[j][8]++;
sleep(2);
return;
}
void good(int pl){
int ran=0,w=0;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |FOREGROUND_RED | FOREGROUND_BLUE|FOREGROUND_GREEN);
outside("give you 10 money(2/9)");
outside("give you 20 money(2/9)");
outside("give you 10~25 money(2/9)");
outside("give you a prop(2/9)");
outside("give you a star(1/9)");
system("pause");
ran=(random(9));
if(ran<2){
    cout<<"player "<<pl<<"'s money+10."<<endl;money[j]+=10;sleep(1);return;
}else if(ran<4){
    cout<<"player "<<pl<<"'s money+20."<<endl;money[j]+=20;sleep(1);return;
}else if(ran<6){
    w=(random(15))+11;
    cout<<"player "<<pl<<"'s money+"<<w<<endl;money[j]+=w;sleep(1);return;
}else if(ran<8){
    cout<<"player "<<pl<<"'s prop+1."<<endl;ppp();sleep(1);return;
}else
    cout<<"player "<<pl<<"'s star+1!!!"<<endl;pstar[j]++;return;
}
void fight1_1b(){
pp[1].arrow--;
if(fn==f2n||fm==f2m){
    pp[2].hp--;
}
return;
}
void fight1_2b(){
pp[2].arrow--;
if(fn==f2n||fm==f2m){
    pp[1].hp--;
}
return;
}
void fight1_1c(){
if(fg[fn-1][fm]=='2'||fg[fn+1][fm]=='2'||fg[fn][fm-1]=='2'||fg[fn][fm+1]=='2'||fg[fn-1][fm-1]=='2'||fg[fn-1][fm+1]=='2'||fg[fn+1][fm-1]=='2'||fg[fn+1][fm+1]=='2'){
    pp[2].hp-=7;
}
}
void fight1_2c(){
if(fg[f2n-1][f2m]=='1'||fg[f2n+1][f2m]=='1'||fg[f2n][f2m-1]=='1'||fg[f2n][f2m+1]=='1'||fg[f2n-1][f2m-1]=='1'||fg[f2n-1][f2m+1]=='1'||fg[f2n+1][f2m-1]=='1'||fg[f2n+1][f2m+1]=='1'){
    pp[1].hp-=7;
}
}
void fight1_2(int mo2,int &p1m,int &p2m){
if(mo2=='w'){
    if(fn>0&&fg[fn-1][fm]!='2'){
        fn--;
        fg[fn+1][fm]=' ';
        fg[fn][fm]='1';
    }
    p1m+=(random(5))+1;
    return;
}
if(mo2=='s'){
    if(fn<12&&fg[fn+1][fm]!='2'){
        fn++;
        fg[fn-1][fm]=' ';
        fg[fn][fm]='1';
    }
    p1m+=(random(5))+1;
    return;
}
if(mo2=='a'){
    if(fm>0&&fg[fn][fm-1]!='2'){
        fm--;
        fg[fn][fm+1]=' ';
        fg[fn][fm]='1';
    }
    p1m+=(random(5))+1;
    return;
}
if(mo2=='d'){
    if(fm<12&&fg[fn][fm+1]!='2'){
        fm++;
        fg[fn][fm-1]=' ';
        fg[fn][fm]='1';
    }
    p1m+=(random(5))+1;
    return;
}
if(mo2=='8'){
    if(f2n>0&&fg[f2n-1][f2m]!='1'){
        f2n--;
        fg[f2n+1][f2m]=' ';
        fg[f2n][f2m]='2';
    }
    p2m+=(random(5))+1;
    return;
}
if(mo2=='5'){
    if(f2n<12&&fg[f2n+1][f2m]!='1'){
        f2n++;
        fg[f2n-1][f2m]=' ';
        fg[f2n][f2m]='2';
    }
    p2m+=(random(5))+1;
    return;
}
if(mo2=='4'){
    if(f2m>0&&fg[f2n][f2m-1]!='1'){
        f2m--;
        fg[f2n][f2m+1]=' ';
        fg[f2n][f2m]='2';
    }
    p2m+=(random(5))+1;
    return;
}
if(mo2=='6'){
    if(f2m<12&&fg[f2n][f2m+1]!='1'){
        f2m++;
        fg[f2n][f2m-1]=' ';
        fg[f2n][f2m]='2';
    }
    p2m+=(random(5))+1;
    return;
}
if(mo2=='q'){
    if(p1m>=50&&pp[1].bow=="no"){
        p1m-=50;
        pp[1].bow="yes";
        return;
    }
    if(pp[1].arrow>=1){
        fight1_1b();
    }
    return;
}
if(mo2=='x'){
    if(pp[1].m>=20){
        pp[1].arrow+=5;
        p1m-=20;
    }
    return;
}
if(mo2=='7'){
    if(p2m>=50&&pp[2].bow=="no"){
        p2m-=50;
        pp[2].bow="yes";
        return;
    }
    if(pp[2].arrow>=1){
        fight1_2b();
    }
    return;
}
if(mo2=='2'){
    if(pp[2].m>=20){
        pp[2].arrow+=5;
        p2m-=20;
    }
    return;
}
if(mo2=='e'){
    if(p1m>=80&&pp[1].knife=="no"){
        p1m-=80;
        pp[1].knife="yes";
        return;
    }
    fight1_1c();
}
if(mo2=='9'){
    if(p2m>=80&&pp[1].knife=="no"){
        p2m-=80;
        pp[2].knife="yes";
        return;
    }
    fight1_2c();
}
}
int fight1_1(){
char mo;
for(int i=1;i<=2;i++){
    pp[i].hp=100;
    pp[i].m=100;
    pp[i].arrow=0;
    pp[i].bow="no";
    pp[i].knife="no";
}
memset(fg,' ',sizeof(fg));
fg[0][0]='1';
fg[13][0]='2';
fn=0;fm=0;f2n=12;f2m=0;
for( ; ; ){
    system("cls");
    if(pp[1].hp<=0){
    return j;
    }
    if(pp[2].hp<=0){
    return fight;
    }
    cout<<"# # # # # # # # # # # # # # #| | | | | | | | | | | | | | |"<<endl;
    cout<<"# ";for(int i=0;i<13;i++) cout<<fg[0][i]<<" ";cout<<"| | |      player 1     | | |"<<endl;
    cout<<"# ";for(int i=0;i<13;i++) cout<<fg[1][i]<<" ";cout<<"| | |        $:"<<pp[1].m<<"      | | |"<<endl;
        cout<<"# ";for(int i=0;i<13;i++) cout<<fg[2][i]<<" ";cout<<"| | |       hp:"<<pp[1].hp<<"      | | |"<<endl;
        cout<<"# ";for(int i=0;i<13;i++) cout<<fg[3][i]<<" ";cout<<"| | |       arrow:"<<pp[1].arrow<<"     | | |"<<endl;
        cout<<"# ";for(int i=0;i<13;i++) cout<<fg[4][i]<<" ";cout<<"| | | Bow:"<<pp[1].bow<<"   Knife:"<<pp[1].knife<<" | | |"<<endl;
        cout<<"# ";for(int i=0;i<13;i++) cout<<fg[5][i]<<" ";cout<<"| | |                   | | |"<<endl;
        cout<<"# ";for(int i=0;i<13;i++) cout<<fg[6][i]<<" ";cout<<"| | | | | | | | | | | | | | |"<<endl;
        cout<<"# ";for(int i=0;i<13;i++) cout<<fg[7][i]<<" ";cout<<"| | |      player 2     | | |"<<endl;
        cout<<"# ";for(int i=0;i<13;i++) cout<<fg[8][i]<<" ";cout<<"| | |        $:"<<pp[2].m<<"      | | |"<<endl;
    cout<<"# ";for(int i=0;i<13;i++) cout<<fg[9][i]<<" ";cout<<"| | |       hp:"<<pp[2].hp<<"      | | |"<<endl;
    cout<<"# ";for(int i=0;i<13;i++) cout<<fg[10][i]<<" ";cout<<"| | |       arrow:"<<pp[2].arrow<<"     | | |"<<endl;
    cout<<"# ";for(int i=0;i<13;i++) cout<<fg[11][i]<<" ";cout<<"| | | Bow:"<<pp[2].bow<<"   Knife:"<<pp[2].knife<<" | | |"<<endl;
    cout<<"# ";for(int i=0;i<13;i++) cout<<fg[12][i]<<" ";cout<<"| | |                  | | |"<<endl;
    cout<<"# # # # # # # # # # # # # # #| | | | | | | | | | | | | | |"<<endl<<endl<<endl;
    mo=getch();
    fight1_2(mo,pp[1].m,pp[2].m);
}
return 0;
}
void winner(){
cout<<"Player "<<win<<" won the game!";
cout<<"Time uesd: "<<(double)clock()/CLOCKS_PER_SEC-tim<<" second!"<<endl<<endl;
sleep(1);
cout<<"You get he or she a half of money!"<<endl<<endl;
if(win==j){
    money[j]+=money[fight]/2;
    money[fight]/=2;
}else{
    money[fight]+=money[j]/2;
    money[j]/=2;
}
system("pause");
return;
}
void fight1(){
int e;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |BACKGROUND_INTENSITY|FOREGROUND_GREEN|
        FOREGROUND_BLUE|BACKGROUND_RED|BACKGROUND_GREEN);
system("cls");
cout<<"------------C++ good game-----------"<<endl;
outside("Press 1 to start this game.\nPress 2 to view help.");
cin>>e;
if(e==1){
    outside("GOGOGO!!!");
    tim=(double)clock()/CLOCKS_PER_SEC;
    win=fight1_1();
    winner();
}else{
    outside("1./*map*/");
    cout<<"# # # # # # # # # # # # # # #| | | | | | | | | | | | | | |"<<endl;
    cout<<"# 1/*player 1*/             #| | |      player 1     | | |"<<endl;
    cout<<"#                           #| | /*money*/$:100      | | |"<<endl;
        cout<<"#                           #| | |       hp:100      | | |"<<endl;
        cout<<"#                           #| | |       arrow:0/*arrow's namber*/|"<<endl;
        cout<<"#                           #| | | Bow:no   Knife:no | | |"<<endl;
        cout<<"#                           #| | |                   | | |"<<endl;
        cout<<"#                           #| | | | | | | | | | | | | | |"<<endl;
        cout<<"#                           #| | |      player 2     | | |"<<endl;
        cout<<"#                           #| | |        $:100      | | |"<<endl;
    cout<<"#                           #| | |       hp:100      | | |"<<endl;
    cout<<"#                           #| | |       arrow:0     | | |"<<endl;
    cout<<"#                           #| | | Bow:no   Knife:no | | |"<<endl;
    cout<<"# 2/*player 2*/             #| | |                   | | |"<<endl;
    cout<<"# # # # # # # # # # # # # # #| | | | | | | | | | | | | | |"<<endl<<endl<<endl;
    sleep(5);
    outside("2.How to play.");
    outside("player 1:\n                           w:up s:down a:left d:right");
    outside("                           q:buy or use the bow(50 $ to buy.1 arrow to use)");
        outside("                           e:buy or use the knife(80 $ to buy)");
    outside("                           x:buy the arrow(20$ 5 arrow)");
        outside("player 2:\n                           8:up 5:down 4:left 6:right");
        outside("                           7:buy or use the bow(50 $ to buy.1 arrow to use)");
    outside("                           9:buy or use the knife(80 $ to buy)");
        outside("                           2:buy the arrow(20$ 5 arrow)");
    outside("Bow:attack 1 you need use an arrow to use it.\n    You and a player in a straight line you can fight it.");
    outside("Knife:attack 7.\n      You near a player 1M you can fight it.");
    outside("every round your $ +1~5");
    system("pause");
    tim=(double)clock()/CLOCKS_PER_SEC;
    win=fight1_1();
    winner();
}
return; 
}
void fight_(int fgame){
outside("Which player do you want to fight?");
cin>>fight;
cout<<"Player "<<j<<" will fight player "<<fight;
sleep(1);
fight1();
return;
}
void star(int yy){
outside("这就跟你问声好!你想要一个星星吗?(1或0)");sleep(1);
outside("30元买1个~~~");
cin>>yy;
if(yy==1){
    if(money[j]>=30){
        outside("谢谢~~~");sleep(1);
        outside("星星商人将去一个随机的地点。");
        merchant(yy);
        return;
    }
    outside("你没有足够的钱。");sleep(1);
}
outside("BYE~~~~~~~~~~");
return;
}
void shop(int &yuan){
}
void moved(int max){
move1=0;
move1+=(random(4));
move1+=(random(4));
move1+=(random(4));
move1+=1;
move1*=move2;
move1+=move3;
sleep(1);
cout<<"Loading..."<<endl;
sleep(1);
cout<<"玩家"<<j<<"可以走"<<move1<<"步。"<<endl<<endl;
while(move1>1){
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
    a[now[j]]=9+j;
    a[now[j]-1]=a2[now[j]-1];   
    cout<<a[now[j]-2]<<" "<<a[now[j]-1]<<" "<<a[now[j]]<<" "<<a[now[j]+1]<<" "<<a[now[j]+2]<<endl<<endl<<endl<<endl<<endl;
    cout<<"                                                                      钱"<<endl;
    cout<<"                                                                    玩家1:"<<money[1]<<endl;
    cout<<"                                                                    玩家2:"<<money[2]<<endl;
    cout<<"                                                                    玩家3:"<<money[3]<<endl;
    cout<<"                                                                    玩家4:"<<money[4]<<endl;
    now[j]++;
    sleep(1);
    move1--;
    cout<<endl<<endl<<endl<<endl<<endl<<endl;
    if(a[now[j]]==7&&move1>1){
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |
            FOREGROUND_RED | FOREGROUND_GREEN);cout<<"玩家"<<j<<"将要去买星星!!!"<<endl<<endl;star(b);system("cls");sleep(3);system("cls");
    }
    if(a[now[j]]==8&&move1>1){
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
        cout<<"玩家"<<j<<"将要去购物!"<<endl<<endl;system("cls");shop(money[j]);sleep(2);system("cls");
    }
    if(a[now[j]]==9&&move1>1){
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY);
        cout<<"玩家"<<j<<"将要获得一个道具"<<endl<<endl;sleep(2),system("cls");ppp();system("cls");
    }
}
a[now[j]]=9+j;
a[now[j]-1]=a2[now[j]-1];
cout<<a[now[j]-2]<<" "<<a[now[j]-1]<<" "<<a[now[j]]<<" "<<a[now[j]+1]<<" "<<a[now[j]+2]<<endl<<endl;
switch(a3[now[j]]){
                case 1:cout<<"玩家"<<j<<"将要加3块钱"<<endl<<endl;money[j]+=3;sleep(2);system("cls");break;
                case 2:cout<<"玩家"<<j<<"将要扣3块钱"<<endl<<endl;money[j]-=3;sleep(2);system("cls");break;
                case 3:cout<<"玩家"<<j<<"将遇到一个事件发生"<<endl<<endl;event(j);sleep(2);system("cls");break;
                case 4:cout<<"玩家"<<j<<"将要转动一个邪恶的转盘"<<endl<<endl;system("cls");evil(j,money[j]);sleep(2);system("cls");break;
                case 5:cout<<"玩家"<<j<<"将要转动一个好的转盘"<<endl<<endl;system("cls");good(j);sleep(2);system("cls");break;
                case 6:cout<<"玩家"<<j<<"将要与一个玩家决斗"<<endl<<endl;system("cls");fight_(b);sleep(2);system("cls");break;
                case 7:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |
                       FOREGROUND_RED | FOREGROUND_GREEN);cout<<"玩家"<<j<<"将要去买星星!!!"<<endl<<endl;system("cls");star(b);sleep(3);system("cls");break;
                case 8:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
                    cout<<"玩家"<<j<<"将要去购物!"<<endl<<endl;system("cls");shop(money[j]);sleep(2);system("cls");break;
                case 9:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY);cout<<"玩家"<<j<<"将要获得一个道具"<<endl<<endl;system("cls");sleep(2),ppp();system("cls");break;
                default:cout<<"HaHa"<<endl<<endl;sleep(2);system("cls");a[now[j]-1]=a2[now[j]-1];break;
}
move2=1;
move3=0;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
return;
}
void boo(){
int p,s;
outside("你想抢哪个人的钱?");
cin>>p;
if(money[p]>=10){
    if(money[j]>=45&&pstar[p]>0){
            outside("你想偷他或她一颗星星吗?(钱-35)(1 or 0)");
            cin>>s;
            if(s>0){
                outside("OK!");
                money[j]-=35;
                pstar[p]--;pstar[j]++;
                prop[j][8]--;prop[j][10]--;
                return;
            }else
                outside("OK!");
                sleep(1);
    }
    outside("你偷了他或她10块钱。");
    prop[j][8]--;prop[j][10]--;
}else
    outside("他或她没有10块钱");
return;
}
void dcm(){
int p;
outside("你想用什么道具(输入编号)");
cin>>p;
outside("道具已使用");
switch(p){
    case 1:move2=2;moved(b);break;
    case 2:move2=3;moved(b);break;
    case 3:money[j]+=10;moved(b);break;
    case 4:move3+=5;moved(b);break;
    case 5:move3+=10;moved(b);break;
    case 6:now[j]=(random(5000));moved(b);break;
    case 7:now[j]=st[(random(30))];moved(b);break;  
}
}
int main(){
int m,m2,ran,s=0;
char mm,mm2,ee;
memset(now,0,sizeof(now));
memset(prop,0,sizeof(prop));
memset(pstar,0,sizeof(pstar));
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
cout<<"---------------大富翁----------------"<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |FOREGROUND_RED|FOREGROUND_GREEN);
cout<<"          \\ Bata 1.0.0 /            "<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
cout<<"--------请输入你们的玩家数-----------"<<endl;
cout<<"               (2~4)"<<endl;
mm=getch();
m=mm-'0';
if(m<2){
    m=2;
}
if(m>4){
    m=4;
}
cout<<m<<endl;
cout<<"-------------按1查看帮助-------------"<<endl;
cout<<"------------按2不查看帮助------------"<<endl;
cout<<"-----------按3查看更新日志-----------"<<endl;
mm2=getch();
m2=mm2-'0';
cout<<m2<<endl;
cout<<"                  GO       "<<endl;
cout<<"Tip:Press '9999'view help."<<endl;
sleep(3);
cout<<endl;
srand((int)time(0));
for(i=0;i<5000;i++){
    ran=(random(100));
    if(ran<40){//40%
        a[i]=1;
    }else if(ran<70){//30%
        a[i]=2;
    }else if(ran<87){//17%
        a[i]=3;
    }else if(ran<92){//5%
        a[i]=4;
    }else if(ran<97){//5%
        a[i]=5;
    }else if(ran<99){//2%
        a[i]=6;
    }else a[i]=0;//1%
    a2[i]=a[i];
    a3[i]=a[i];
    cout<<i<<"/5000   loading..."<<endl;
    usleep(10);
}
system("cls");
if(m2==1){
    say(b);
}else if(m2==3){
    say2();
}
cout<<"loading..."<<endl;
sleep(3);
system("cls");
for(int i=0;i<200;i++){
    ran=(random(5000));
    a[ran]=9;
    a2[ran]=9;
    a3[ran]=9;
}
for(int i=0;i<150;i++){
    ran=(random(5000));
    a[ran]=8;
    a2[ran]=8;
    a3[ran]=8;
}
for(int i=0;i<30;i++){
    ran=(random(5000));
    a[ran]=7;
    a3[ran]=7;
}
for(int i=0;i<5000;i++){
    colour(a[i]);
    if(a[i]==7){
        st[s]=i;
        s++;
    }
}
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE
        |FOREGROUND_INTENSITY);
system("pause");
system("cls");
game=0;
for(int i=1;game!=38264;i++){
    cout<<"第"<<i<<"轮"<<endl;
    for(j=1;j<=m;j++){
        if(money[j]<0){
            money[j]=0;
        }
        if(pstar[j]>=10){
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |
                       FOREGROUND_RED | FOREGROUND_GREEN);
            cout<<"PLAYER ";sleep(1);cout<<j;sleep(1);cout<<" WIN!!!"<<endl<<endl;sleep(1);
            return 0;
        }
        cout<<"现在是玩家"<<j<<"的回合"<<endl;
        ee=getch();
        e=ee-'0';
        cout<<e<<endl;
        if(e==1){
            if(i>1){
                now[j]+=1;
            }
            moved(m);
        }
        if(e==2){
            if(prop[j][10]==0){
                cout<<"错误!!!"<<endl;
                outside("你必须有道具!");
                sleep(3);
                outside("自动调整为骰子。");
                moved(b);
                break;
            }else
                outside("你想用什么道具(输入编号)");
                cin>>p;
                    if(prop[j][p]==0){
                        cout<<"错误!!!"<<endl;
                        outside("你必须有这个道具!");
                        sleep(3);
                        outside("自动调整为骰子。");
                        moved(m);
                        break;
                    }else
                        outside("道具已使用");
                        switch(p){
                            case 1:move2=2;prop[j][10]--;prop[j][0]--;moved(b);break;
                            case 2:move2=3;prop[j][10]--;prop[j][1]--;moved(b);break;
                            case 3:money[j]+=10;prop[j][10]--;prop[j][2]--;moved(b);break;
                            case 4:move3+=5;prop[j][10]--;prop[j][3]--;moved(b);break;
                            case 5:move3+=10;prop[j][10]--;prop[j][4]--;moved(b);break;
                            case 6:now[j]=(random(5000));prop[j][10]--;prop[j][5]--;moved(b);break;
                            case 7:now[j]=st[(random(30))]-1;prop[j][10]--;prop[j][6]--;moved(b);break; 
                            case 8:dcm();prop[j][10]--;prop[j][7]--;moved(b);break;
                            case 9:boo();moved(b);break;
                            case 10:fight_(b);prop[j][10]--;prop[j][9]--;moved(b);break;
                        }
            }
    }
}
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值