概述
一、介绍
二、代码实现
#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
int money=100;
int water=2,food=0,ore=0,land=0;
int zh[4];
int zjs,js=1;
int kd,sj;
int tims=10;
using namespace std;
void zb()
{
int m1=5*(rand()%4+1),f1=m1+5*(rand()%4+1),o1=f1+10*(rand()%4+1),d1=o1+10*(rand()%4+1);
zh[0]=m1*2;
zh[1]=m1*2+f1;
zh[2]=m1*4+f1*2+o1;
zh[3]=m1*6+f1*4+o1*2+d1;
kd=10*(rand()%4+1)+10;
sj=10*(rand()%4+1)+10;
}
int main()
{
srand((unsigned)time(NULL));
system("cls");
cout<<endl;
cout<<endl;
cout<<endl;
cout<<" 水粮矿地"<<endl;
cout<<" 按a开始"<<endl;
cout<<" 按b设置"<<endl;
cout<<" 按c教程"<<endl;
sta:
if(kbhit())
{
char sst=getch();
if(sst=='c')
{
system("cls");
cout<<" 教程"<<endl;
cout<<" 游戏初始有100元与2水,通过买入,卖出物资以赚钱"<<endl;
cout<<"游戏共有10多局,每局物价各不相同,并有一分钟时间"<<endl;
cout<<"供决策。物资等级:水<粮<矿<地。每局会提供四种不同"<<endl;
cout<<"组合,买入或卖出只能按着组合进行。同时你也可以花一"<<endl;
cout<<"定的钱扩大(同样的钱买两份物资)或升级(每个物资替换"<<endl;
cout<<"为上级物资,如水变粮,而地不变)。每局只能进行上述"<<endl;
cout<<"操作各一次,可撤销(不反钱)。"<<endl;
cout<<"操作介绍:符号 组合 价格"<<endl;
cout<<"页面例子: a.2水 20"<<endl;
cout<<" b.2水+1粮 40"<<endl;
cout<<" c.4水+2粮+1矿 110"<<endl;
cout<<" d.6水+4粮+2矿+1地 240"<<endl;
cout<<" e.20元升级"<<endl;
cout<<" f.20元扩大"<<endl;
cout<<"输入对应符号"<<endl;
cout<<"a到d,大写卖出小写买入,ef小写购买,大写撤销"<<endl;
system("pause");
return main();
}
else if(sst=='b')
{
sz1:
system("cls");
cout<<" 设置"<<endl;
cout<<" 由于某些原因,不同电脑运行速度不同"<<endl;
cout<<"可于此进行修正。"<<endl;
cout<<"目前修正量:"<<tims<<endl;
cout<<"a.加快"<<endl;
cout<<"b.减慢"<<endl;
cout<<"c.退出"<<endl;
sz2:
if(kbhit())
{
char wha=getch();
if(wha=='a'&&tims<=100)
{
tims*=10;goto sz1;
}
else if(wha=='b'&&tims>=1)
{
tims/=10;goto sz1;
}
else if(wha=='c') return main();
else goto sz2;
}
else goto sz2;
}
else if(sst=='a')
{
water=2,food=0,ore=0,land=0;
money=100;
js=1;
zjs=rand()%10+5;
int sfs=1,sfk=0;
system("cls");
while(1)
{
neww:
system("cls");
if(js>=zjs)
{
cout<<" 游戏结束"<<endl;
cout<<" 结余:"<<money<<endl;
system("pause");
system("cls");
return main();
}
if(js==zjs-1)
{
cout<<endl<<endl<<endl;
cout<<" 最终局!"<<endl;
Sleep(1000);
system("cls");
}
zb();
sfs=1,sfk=0;
int ticks=600*tims;
ds:
system("cls");
cout<<"钱:"<<money<<endl;
cout<<"水:"<<water<<" 粮:"<<food<<" 矿:"<<ore<<" 地:"<<land<<endl;
cout<<" 公式(未升级前):"<<endl;
cout<<"a."<<2*sfs<<"水 "<<zh[0]<<endl;
cout<<"b."<<2*sfs<<"水+"<<sfs<<"粮 "<<zh[1]<<endl;
cout<<"c."<<4*sfs<<"水+"<<2*sfs<<"粮+"<<sfs<<"矿 "<<zh[2]<<endl;
cout<<"d."<<6*sfs<<"水+"<<4*sfs<<"粮+"<<2*sfs<<"矿+"<<sfs<<"地 "<<zh[3]<<endl;
if(sfk==0)
cout<<"e."<<kd<<"元升级"<<endl;
else cout<<"e.已升级"<<endl;
if(sfs==1)
cout<<"f."<<sj<<"元扩大"<<endl;
else cout<<"f.已扩大"<<endl;
cout<<"g.下一局"<<endl;
cout<<"离下一局还有:"<<endl;
cout<<ticks/(10*tims)<<"s"<<endl;
if(ticks<0)
{
js++;
goto neww;
}
ds3:
if(kbhit())
{
char cho=getch();
if(cho=='a')
{
if(money>=zh[0])
{
money-=zh[0];
if(sfk==0)
water+=2*sfs;
else
food+=2*sfs;
}
ticks--;
goto ds;
}
else if(cho=='A')
{
if(water>=2*sfs&&sfk==0)
{
water-=2*sfs;
money+=zh[0];
}
else if(food>=2*sfs&&sfk==1)
{
food-=2*sfs;
money+=zh[0];
}
ticks--;
goto ds;
}
else if(cho=='b')
{
if(money>=zh[1])
{
money-=zh[1];
if(sfk==0)
water+=2*sfs,food+=sfs;
else
food+=2*sfs,ore+=sfs;
}
ticks--;
goto ds;
}
else if(cho=='B')
{
if(water>=2*sfs&&food>=sfs&&sfk==0)
{
water-=2*sfs;
food-=sfs;
money+=zh[1];
}
else if(food>=2*sfs&&ore>=sfs&&sfk==1)
{
food-=2*sfs;
ore-=sfs;
money+=zh[1];
}
ticks--;
goto ds;
}
else if(cho=='c')
{
if(money>=zh[2])
{
money-=zh[2];
if(sfk==0)
water+=4*sfs,food+=2*sfs,ore+=sfs;
else
food+=4*sfs,ore+=2*sfs,land+=sfs;
}
ticks--;
goto ds;
}
else if(cho=='C')
{
if(water>=4*sfs&&food>=2*sfs&&ore>=sfs&&sfk==0)
{
water-=4*sfs;
food-=2*sfs;
ore-=sfs;
money+=zh[2];
}
else if(food>=4*sfs&&ore>=2*sfs&&land>=sfs&&sfk==1)
{
food-=4*sfs;
ore-=2*sfs;
land-=sfs;
money+=zh[2];
}
ticks--;
goto ds;
}
else if(cho=='d')
{
if(money>=zh[3])
{
money-=zh[3];
if(sfk==0)
water+=6*sfs,food+=4*sfs,ore+=2*sfs,land+=sfs;
else
food+=6*sfs,ore+=4*sfs,land+=3*sfs;
}
ticks--;
goto ds;
}
else if(cho=='D')
{
if(water>=6*sfs&&food>=4*sfs&&ore>=2*sfs&&land>=sfs&&sfk==0)
{
water-=6*sfs;
food-=4*sfs;
ore-=2*sfs;
land-=sfs;
money+=zh[3];
}
else if(food>=6*sfs&&ore>=4*sfs&&land>=3*sfs&&sfk==1)
{
food-=6*sfs;
ore-=4*sfs;
land-=3*sfs;
money+=zh[3];
}
ticks--;
goto ds;
}
else if(cho=='e'&&sfk==0)
{
if(money>=kd)
{
sfk=1;
money-=kd;
goto ds;
}
}
else if(cho=='E'&&sfk==1)
{
sfk=0;
goto ds;
}
else if(cho=='f'&&sfs==1)
{
if(money>=sj)
{
sfs=2;
money-=sj;
goto ds;
}
}
else if(cho=='F'&&sfs==2)
{
sfs=1;
goto ds;
}
else if(cho=='g')
{
ticks=-1;
goto ds;
}
else
{
ticks--;
if(ticks%(10*tims)==0)
goto ds;
else goto ds3;
}
}
else
{
Sleep(1);
ticks--;
if(ticks%(10*tims)==0)
goto ds;
else goto ds3;
}
}
}
else goto sta;
}
else goto sta;
}
三、注
由于某些原因,不同电脑运行速度不同,可于设置中修正。
最后
以上就是无限刺猬为你收集整理的devc++小游戏:水粮矿地的全部内容,希望文章能够帮你解决devc++小游戏:水粮矿地所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复