没想到二关关底的这段还挺难写,在if块中判断.true.和.false.的方法上卡住了
改天决定直接用赋值这样粗暴的方法,赋值再判断还是简单的吧
这点块其实已经可以运行了
program test_01
implicit none
integer::hp=100
integer::xz
integer::round
integer::round2
integer::zxd=3 !止血带数量
integer::sx=0 !失血程度
integer::xl=100 !失血最大量
integer::move !冲锋阶段选择
integer::mover !冲锋阶段计数
integer::act=1
integer::exp=1
integer::aidkit=2
integer::trangle=2
integer::bandage=2
integer::jijiu
integer::e
integer::hujiu
integer::jiuren=0
integer::ss=0
integer::gjxz
integer::zd=0
integer::xunlian
integer::xlxz
integer::cf
integer::lxcd !判断流血,伤势程度
integer::zqxz !炸碉堡前的准备
integer::lx=0 !判断是否流血
real::o=0
real::p=0
real::q=0
real::randNum
real::lbound,ubound
real::my_randomprint*,'战斗已经进行到了最后的阶段'
print*,'同志们正一鼓作气,对敌人的阵地发起冲锋'
print*,'可一个掩藏的很好的暗堡突然开火,前方的同志纷纷中弹倒地'
print*,'可这些勇敢的战友依然挣扎着爬起身来互相掩护,勇敢向前'
print*,'你看到了这副情景,眼里全是对敌人的悲愤'
print*,'你下定决心,从负伤的爆破手手里接过炸药包,决定除掉这个“眼中钉”'
print*,'在腰间缠好了三条止血带,你整理好身上的装备,握紧武器,冒着弹雨迎了上去'
print*,' “止血带”现在可以使用了 '
print*,' “止血带”可以强行回复耐力值到80 '
print*,' 并防止伤处由于大出血而恶化 '
print*,' 但有数量限制,并只能包扎腿部枪伤'
print*,' 即使处理伤口,也照样有失去意识乃至牺牲的风险, '
print*,' 腹部,胸部中弹仍只能用绷带,三角巾处理 '
print*,' 但由于要摧毁的暗堡位置较低,腿部中弹的几率更大'
print*,' 机枪子弹也会对命中的部位造成动脉贯穿导致的大出血'
print*,' 所以要随时注意自己的伤势和失血情况 '
print*,'剩余耐力值:',hp
print*,'身上有',zxd,'条止血带',bandage,'卷绷带',trangle,'块三角巾'
print*,'时间紧迫,你心急如焚,只有一点准备时间,你选择:'
print*,'1:处理旧伤,2:补充绷带,3:补充三角巾'
read*,zqxz
if(zqxz<1.5) then
print*,'你重新将身上包扎起来的伤口检查了一下,做了最后的止血处理'
hp=90
goto 9000
elseif(zqxz>1.5.and.zqxz<2.5) then
print*,'你从卫生员手里接过了几卷新的纱布,以防万一'
bandage=(bandage+2)
goto 9000
elseif(zqxz>2.5.and.zqxz<3.5) then
print*,'你从卫生员手里接过了几卷新的纱布,以防万一'
trangle=(trangle+2)
goto 9000
end if
9000 do cf=1,20,1
call random_seed()
randNum=my_random(0.0,200.0)
print*,'你背着爆破筒,紧紧端着武器,机警地观察着前方的情况'
if(randNum>=0.0.and.randNum<=100.0) then
print*,'你发现暗堡中的机枪正向右边瞄准'
print*,'你心中一沉,决定:'
print*,'1,向右翻身,寻找掩蔽,2,合身向左边扑去'
read*,move
if(move>1.5) then !这么做是对的
if(randNum>0.0.and.randNum<=170) then
print*,'你躲闪过了射来的子弹'
mover=(mover+1)
elseif(randNum>170.and.randNum<=200.0) then
print*,'纵使你果断地做出了反应,子弹还是'
goto 9001
end if
elseif(move<1.5) then !这么做是错的
if(randNum>0.0.and.randNum<=170) then
print*,'敌人的射击封锁了你前进的路线'
goto 9001
elseif(randNum>170.and.randNum<=200.0) then
print*,'你心中一紧,本以为自己会中弹'
mover=(mover+1)
end if
end if
elseif(randNum>100.0.and.randNum<=200.0) then
print*,'你发现暗堡中的机枪正向左边瞄准'
print*,'你心中一沉,决定:'
print*,'1,向右翻身,寻找掩蔽,2,合身向左边扑去'
read*,move
if(move<1.5) then !这么做是对的
if(randNum>0.0.and.randNum<=170) then
print*,'你躲闪过了射来的子弹'
mover=(mover+1)
elseif(randNum>170.and.randNum<=200.0) then
print*,'纵使你果断地做出了反应,子弹还是'
goto 9001
end if
elseif(move>1.5) then !这么做是错的
if(randNum>0.0.and.randNum<=170) then
print*,'敌人的射击封锁了你前进的路线'
goto 9001
elseif(randNum>170.and.randNum<=200.0) then
print*,'你心中一紧,本以为自己会中弹'
mover=(mover+1)
end if
goto 9001
end if
end if
end do9001 print*,'test/'
call random_seed()
randNum=my_random(0.0,200.0)
if(randNum<=90.0.and.randNum>=0) then
print*,'数发子弹呼啸着钻进了你的左大腿'
hp=(hp-70)
lx=1
goto 9002
elseif(randNum>90.0.and.randNum<=180.0) then
print*,'好几发子弹呼啸着钻进了你的右大腿'
hp=(hp-70)
goto 9002
elseif(randNum>180.0.and.randNum<=190.0) then
print*,'几发流弹打中了你的肚子,你捂着肚子倒了下去'
hp=(hp-70)
goto 9003
elseif(randNum>190.0.and.randNum<=200.0) then
print*,'子弹命中了你的左肋,登时血流如注'
hp=(hp-70)
goto 9004
end if9002 print*,'test/'
print*,'没有时间了,你在腰间摸索着止血带,一边望向自己的伤口,却突然愣住了'
print*,'数个弹孔赫然使血肉模糊的伤口连成了一片,整条裤腿都被染红了'
print*,'剧痛中的你意识到,这恐怕是大出血,只能用止血带暂时处理'
if(zxd<=0) then
print*,'可是,用来救命的止血带已经用完了,你受伤的频率和严重程度已经超出了想象'
print*,'但是,选择了这项可能有去无回的任务,你就已经下定了决心'
print*,'你只能用一只手按着伤口,拖着失去知觉的伤腿继续向前'
goto 9000
elseif(zxd>0)then
print*,'你咬紧牙关,把止血带捆在伤口上沿绕了一圈'
print*,'然后在地上摸索到了一根木棍,把它卡在了止血带下随时能够到的地方'
print*,'不顾伤腿那令人麻木的剧痛,狠狠的转了几圈,把止血带勒紧'
print*,'然后又将橡皮管子绕了一圈,系在了木棍把手上'
print*,'弹孔中涌出的血逐渐变少,你咬咬牙,翻身又开始了前进'
zxd=(zxd-1)
goto 9000
endif
9003 print*,'test/'
print*,'你没有想到,腹部被暗堡中的机枪打中居然会产生如此的痛楚'
print*,'你已经不敢再去检查被鲜血染的通红的腹部伤口,但你知道'
print*,'你的时间,恐怕不多了,'
print*,'你叹了口气,腹部的大出血根本不能用止血带处理'
print*,'没时间犹豫,你掏出急救包,强忍着眼前发黑的剧痛翻找着'
print*,'你的身上有',zxd,'条止血带',bandage,'卷绷带',trangle,'块三角巾'
9004 print*,'test/'
print*,'你没有想到,腹部被暗堡中的机枪打中居然会产生如此的痛楚'
print*,'你已经不敢再去检查被鲜血染的通红的腹部伤口,但你知道'
print*,'你的时间,恐怕不多了,'
print*,'你叹了口气,腹部的大出血根本不能用止血带处理'
print*,'没时间犹豫,你掏出急救包,强忍着眼前发黑的剧痛翻找着'
print*,'你的身上有',zxd,'条止血带',bandage,'卷绷带',trangle,'块三角巾'end
function my_random (lbound,ubound)
implicit none
real :: lbound,ubound
real :: len
real :: my_random
real :: t
len=ubound-lbound
call random_number(t)
my_random=lbound+len*t
return
read(*,*)
end