fortran编程

这是一个战争场景的模拟程序,玩家需要在受伤和失血情况下作出决策,如使用止血带、绷带或三角巾来处理伤口,同时面对随机的敌方火力。游戏通过随机数生成事件,模拟战斗中的不确定性和紧张感,测试玩家在压力下的判断和生存技巧。
摘要由CSDN通过智能技术生成

冗余冗余冗余

最害怕的一集

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=0 !冲锋阶段计数
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::cf2
integer::lxcd !判断流血,伤势程度
integer::fbzd=0 !腹部受伤情况,防止止血带把腹部流血也一并清零
integer::zqxz !炸碉堡前的准备
integer::js=0 !因失血过多而减速
integer::jd=0 !最后的两个阶段
real::o=0
real::p=0
real::q=0
real::randNum
real::lbound,ubound
real::my_random

     print*,'战斗已经进行到了最后的阶段' 
     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
     if(mover>=10)then
     goto 9010
     end if
     if(fbzd+lxcd==0) then
     print*,'目前失血状况:尚可'
     js=0
     elseif(fbzd+lxcd==1) then
     print*,'目前失血状况:轻微'
     js=0
     elseif(fbzd+lxcd==2) then
     print*,'目前失血状况:严重'
     js=1
     elseif(fbzd+lxcd>=2) then
     print*,'目前失血状况:危急'
     js=1
     endif    
     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+2-js)
      print*,mover
      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+2-js)
      print*,mover
      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+2-js)
      print*,mover
      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+2-js)
      print*,mover
      end if
     goto 9001
     end if
    end if
    end do

9010 print*,'历经千辛万苦,你终于抵达了暗堡所在高地的坡下'
     print*,'你不禁暗暗松了一口气,这下,敌人想要命中你就很难了'
     print*,'没有想到,背后暗藏许久的一个倒打火力点突然向你开火'
     print*,'不断线的子弹泼水般打来,几发子弹结结实实的钉进了你的右大腿'
     print*,'你一下子趴在了泥泞的土坡上'
     print*,'翻过身来,你看到那个倒打火力点离你隔得很远'
     print*,'你发了狠,坡顶上的暗堡离你最近,一定...一定要先拿下它!'
     print*,'下定决心,准备做最后的努力——但你先要处理右腿新出现的伤口'
     print*,'                  注意:'
     print*,'          由于倒打火力点的存在     '
     print*,'         你中弹的概率将会大大增加     '
     goto 9500
     

9001 call random_seed()
     randNum=my_random(0.0,200.0)
     if(randNum<=90.0.and.randNum>=0) then
     print*,'数发子弹呼啸着钻进了你的左大腿'
     hp=(hp-70)
     goto 9002
     elseif(randNum>90.0.and.randNum<=180.0) then
     print*,'好几发子弹呼啸着钻进了你的右大腿'
     hp=(hp-70)
     goto 9002
     elseif(randNum>180.0.and.randNum<=200.0) then
     print*,'几发流弹打中了你的肚子,你捂着肚子倒了下去'
     hp=(hp-70)
     goto 9004
     end if

9002 print*,'没有时间了,你在腰间摸索着止血带,一边望向自己的大腿处的伤口,却突然愣住了'
     print*,'数个弹孔赫然使血肉模糊的伤口连成了一片,整条裤腿都被染红了'
     print*,'剧痛中的你意识到,这恐怕是大出血,只能用止血带暂时处理'
     if(zxd<=0) then
     print*,'可是,用来救命的止血带已经用完了,你受伤的频率和严重程度已经超出了想象'
     print*,'但是,选择了这项可能有去无回的任务,你就已经下定了决心'
     print*,'你只能用一只手按着伤口,拖着失去知觉的伤腿继续向前'
     lxcd=(lxcd+1)
     goto 9000
     elseif(zxd>0)then
     print*,'你咬紧牙关,把止血带捆在伤口上沿绕了一圈'
     print*,'然后在地上摸索到了一根木棍,把它卡在了止血带下随时能够到的地方'
     print*,'不顾伤腿那令人麻木的剧痛,狠狠的转了几圈,把止血带勒紧'
     print*,'然后又将橡皮管子绕了一圈,系在了木棍把手上'
     print*,'弹孔中涌出的血逐渐变少,你咬咬牙,翻身又开始了前进'
     hp=80
     zxd=(zxd-1)
     lxcd=0
     goto 9000
     endif

    
9004 print*,'test/'
     print*,'你没有想到,腹部被暗堡中的机枪打中居然会产生如此的痛楚'
     print*,'你已经不敢再去检查被鲜血染的通红的腹部伤口,但你知道'
     print*,'你的时间,恐怕不多了,'
     print*,'你叹了口气,腹部的大出血根本不能用止血带处理'
     print*,'没时间犹豫,你掏出急救包,强忍着眼前发黑的剧痛翻找着'
     print*,'你的身上有',zxd,'条止血带',bandage,'卷绷带',trangle,'块三角巾'
     print*,'开放的大伤口让你无从着手,但必须冷静下来,否则,真的会倒在这里'
     print*,'你下定决心,1:用绷带包扎,2,用三角巾包扎'
     read*,jijiu
     if(jijiu>1.5)then
       if(trangle>=1) then
       print*,'你按照战前的训练,以标准的动作包扎着这“不标准”的伤口'
       print*,'白色的纱布瞬间被涌出的鲜血和脏器染红,勒紧绷带结的时候'
       hp=(hp+45)
       trangle=(trangle-1)
       print*,'眼前一阵一阵的发黑,但你几乎已经没有呻吟的力气了'
       print*,'默不吭声,你翻过身来,任由鲜血在身后、身下晕出一片血泊'
       fbzd=(fbzd+1)
       print*,'你咬咬牙,坚定意志,又开始了匍匐前进'
       goto 9000
       elseif(trangle<1) then
       print*,'你费力地在急救包里翻找着,却没有找到适合包扎的纱布'
       print*,'由于之前用手按压伤口,你的手上满是血渍,你抽出手来在旁边抹了一下'
       print*,'继续全神贯注的在溅上鲜血,绣着红十字的药箱里寻找着替代品'
       if(bandage>=1) then
        print*,'你发现还有几条绷带能用,虽然这点根本无法应付腹部的重伤'
        print*,'你麻木的撕开绷带,然后开始往自己的腹部伤口上缠,'
        print*,'绕了几圈后,你苦笑了一下——半截绷带连肚子上的弹孔都无法覆盖'
        print*,'没有做过多尝试,你右手抓住武器,左手拉紧另一端没法系好的绷带头'
        bandage=(bandage-1)
        hp=(hp+35)
        print*,'用右臂承受着全身的力气,翻身继续艰难的朝着目标挪动'
        fbzd=(fbzd+1)
        goto 9000
        elseif(bandage<1)then
        print*,'你摸了个空,染满血渍的手停住了,医疗箱里一卷绷带都没有'
        print*,'“连这个... ...都用完了吗... ...”'
        print*,'但你想起之前救下来的战友,丝毫没有后悔'
        print*,'或者说,当你选择了这个任务,就没有后悔的可能了。'
        print*,'你咬咬牙,用颤抖的手虚弱的摁住伤口,艰难的向前继续挪动'
        fbzd=(fbzd+1)
        goto 9000
        end if
       end if
      
      elseif(jijiu<1.5) then !计算绷带包扎情况
        if(bandage>=1) then
        print*,'你想都没想,撕开一卷绷带就往肚子上缠'
        print*,'可是没能注意,绷带并不适合包扎腹部伤口,何况还这么严重'
       print*,'白色的纱布瞬间被涌出的鲜血和脏器染红'
       print*,'不过,你没有纠结包扎的是否有效,不断威胁着大部队的暗堡,'
       print*,'才是你眼中最重要的事情,你左手扯紧最后无法打结的那段绷带'
       hp=(hp+35)
       bandage=(bandage-1)
       print*,'默不吭声,翻过身来,任由鲜血在身后、身下晕出一片血泊'
       fbzd=(fbzd+1)
       print*,'你咬咬牙,坚定意志,又开始了匍匐前进'
       goto 9000
        elseif(bandage<1)then
        print*,'你费力地在急救包里翻找着,却没有找到适合包扎的纱布'
       print*,'由于之前用手按压伤口,你的手上满是血渍,你抽出手来在旁边抹了一下'
       print*,'继续全神贯注的在溅上鲜血,绣着红十字的药箱里寻找着替代品'
       if(trangle>=1) then
        print*,'你发现还有几条三角巾能用,虽然这点应付腹部的重伤也很勉强'
        print*,'你麻木的展开三角,然后开始往自己的腹部伤口上缠,'
        print*,'你叹了口气——三角巾很难扎紧,特别是在重伤虚弱的情况下'
        print*,'没有做过多尝试,你右手抓住武器,左手拉紧另一端的绷带头'
        trangle=(trangle-1)
        hp=(hp+45)
        print*,'用右臂承受着全身的力气,翻身继续艰难的朝着目标挪动'
        fbzd=(fbzd+1)
        goto 9000
        elseif(trangle<1)then
        print*,'你摸了个空,染满血渍的手停住了,医疗箱里一卷三角巾都没有'
        print*,'三角巾本应是包扎的首要选择'
        print*,'“都... ...都用完了吗... ...”'
        print*,'但你想起之前救下来的战友,丝毫没有后悔'
        print*,'或者说,当你选择了这个任务,就没有后悔的可能了。'
        print*,'你咬咬牙,用颤抖的手虚弱的摁住伤口,艰难的向前继续挪动'
        fbzd=(fbzd+1)
        goto 9000
        end if
        end if
        end if
!//接下来是第二阶段///
     
9500 print*,'没有时间了,你在腰间摸索着止血带,一边望向自己的大腿处的伤口,却突然愣住了'
     print*,'数个弹孔赫然使血肉模糊的伤口连成了一片,整条裤腿都被染红了'
     print*,'剧痛中的你意识到,这恐怕是大出血,只能用止血带暂时处理'
     if(zxd<=0) then
     print*,'可是,用来救命的止血带已经用完了,你受伤的频率和严重程度已经超出了想象'
     print*,'但是,选择了这项可能有去无回的任务,你就已经下定了决心'
     print*,'你只能用一只手按着伤口,拖着失去知觉的伤腿继续向前'
     lxcd=(lxcd+1)
     goto 9501
     elseif(zxd>0)then
     print*,'你咬紧牙关,把止血带捆在伤口上沿绕了一圈'
     print*,'然后在地上摸索到了一根木棍,把它卡在了止血带下随时能够到的地方'
     print*,'不顾伤腿那令人麻木的剧痛,狠狠的转了几圈,把止血带勒紧'
     print*,'然后又将橡皮管子绕了一圈,系在了木棍把手上'
     print*,'弹孔中涌出的血逐渐变少,你咬咬牙,翻身又开始了前进'
     hp=80
     zxd=(zxd-1)
     lxcd=0
     goto 9501
     endif

9501 do cf2=1,20,1
     if(mover>=30)then
     goto 9510
     end if
     if(fbzd+lxcd==0) then
     print*,'目前失血状况:尚可'
     js=0
     elseif(fbzd+lxcd==1) then
     print*,'目前失血状况:轻微'
     js=0
     elseif(fbzd+lxcd==2) then
     print*,'目前失血状况:严重'
     js=1
     elseif(fbzd+lxcd>=2) then
     print*,'目前失血状况:危急'
     js=1
     endif    
     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<=160) then
      print*,'你躲闪过了射来的子弹'
      mover=(mover+2-js)
      print*,mover
      elseif(randNum>160.and.randNum<=200.0) then
      print*,'纵使你果断地做出了反应,子弹还是'
      goto 9502
      end if 
     elseif(move<1.5) then !这么做是错的
     if(randNum>0.0.and.randNum<=160) then
      print*,'敌人的射击封锁了你前进的路线'
      goto 9502
      elseif(randNum>160.and.randNum<=200.0) then
      print*,'你心中一紧,本以为自己会中弹'
      mover=(mover+2-js)
      print*,mover
      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<=150) then
      print*,'你躲闪过了射来的子弹'
      mover=(mover+2-js)
      print*,mover
      elseif(randNum>150.and.randNum<=200.0) then
      print*,'纵使你果断地做出了反应,子弹还是'
      goto 9502
      end if
     elseif(move>1.5) then !这么做是错的
      if(randNum>0.0.and.randNum<=150) then
      print*,'敌人的射击封锁了你前进的路线'
      goto 9502
      elseif(randNum>150.and.randNum<=200.0) then
      print*,'你心中一紧,本以为自己会中弹'
      mover=(mover+2-js)
      print*,mover
      end if
     goto 9001
     end if
    end if
    end do

9502 call random_seed()
     randNum=my_random(0.0,200.0)
     if(randNum<=70.0.and.randNum>=0) then
     print*,'数发子弹呼啸着钻进了你的左大腿'
     hp=(hp-70)
     goto 9500
     elseif(randNum>70.0.and.randNum<=140.0) then
     print*,'好几发子弹呼啸着钻进了你的右大腿'
     hp=(hp-70)
     goto 9500
     elseif(randNum>140.0.and.randNum<=200.0) then
     print*,'几发流弹打中了你的肚子,你捂着肚子倒了下去'
     hp=(hp-70)
     goto 9503
     end if

9503 print*,'test/'
     print*,'你没有想到,腹部被暗堡中的机枪打中居然会产生如此的痛楚'
     print*,'你已经不敢再去检查被鲜血染的通红的腹部伤口,但你知道'
     print*,'你的时间,恐怕不多了,'
     print*,'你叹了口气,腹部的大出血根本不能用止血带处理'
     print*,'没时间犹豫,你掏出急救包,强忍着眼前发黑的剧痛翻找着'
     print*,'你的身上有',zxd,'条止血带',bandage,'卷绷带',trangle,'块三角巾'
     print*,'开放的大伤口让你无从着手,但必须冷静下来,否则,真的会倒在这里'
     print*,'你下定决心,1:用绷带包扎,2,用三角巾包扎'
     read*,jijiu
     if(jijiu>1.5)then
       if(trangle>=1) then
       print*,'你按照战前的训练,以标准的动作包扎着这“不标准”的伤口'
       print*,'白色的纱布瞬间被涌出的鲜血和脏器染红,勒紧绷带结的时候'
       hp=(hp+45)
       trangle=(trangle-1)
       print*,'眼前一阵一阵的发黑,但你几乎已经没有呻吟的力气了'
       print*,'默不吭声,你翻过身来,任由鲜血在身后、身下晕出一片血泊'
       fbzd=(fbzd+1)
       print*,'你咬咬牙,坚定意志,又开始了匍匐前进'
       goto 9501
       elseif(trangle<1) then
       print*,'你费力地在急救包里翻找着,却没有找到适合包扎的纱布'
       print*,'由于之前用手按压伤口,你的手上满是血渍,你抽出手来在旁边抹了一下'
       print*,'继续全神贯注的在溅上鲜血,绣着红十字的药箱里寻找着替代品'
       if(bandage>=1) then
        print*,'你发现还有几条绷带能用,虽然这点根本无法应付腹部的重伤'
        print*,'你麻木的撕开绷带,然后开始往自己的腹部伤口上缠,'
        print*,'绕了几圈后,你苦笑了一下——半截绷带连肚子上的弹孔都无法覆盖'
        print*,'没有做过多尝试,你右手抓住武器,左手拉紧另一端没法系好的绷带头'
        bandage=(bandage-1)
        hp=(hp+35)
        print*,'用右臂承受着全身的力气,翻身继续艰难的朝着目标挪动'
        fbzd=(fbzd+1)
        goto 9501
        elseif(bandage<1)then
        print*,'你摸了个空,染满血渍的手停住了,医疗箱里一卷绷带都没有'
        print*,'“连这个... ...都用完了吗... ...”'
        print*,'但你想起之前救下来的战友,丝毫没有后悔'
        print*,'或者说,当你选择了这个任务,就没有后悔的可能了。'
        print*,'你咬咬牙,用颤抖的手虚弱的摁住伤口,艰难的向前继续挪动'
        fbzd=(fbzd+1)
        goto 9501
        end if
       end if
      
      elseif(jijiu<1.5) then !计算绷带包扎情况
        if(bandage>=1) then
        print*,'你想都没想,撕开一卷绷带就往肚子上缠'
        print*,'可是没能注意,绷带并不适合包扎腹部伤口,何况还这么严重'
       print*,'白色的纱布瞬间被涌出的鲜血和脏器染红'
       print*,'不过,你没有纠结包扎的是否有效,不断威胁着大部队的暗堡,'
       print*,'才是你眼中最重要的事情,你左手扯紧最后无法打结的那段绷带'
       hp=(hp+35)
       bandage=(bandage-1)
       print*,'默不吭声,翻过身来,任由鲜血在身后、身下晕出一片血泊'
       fbzd=(fbzd+1)
       print*,'你咬咬牙,坚定意志,又开始了匍匐前进'
       goto 9501
        elseif(bandage<1)then
        print*,'你费力地在急救包里翻找着,却没有找到适合包扎的纱布'
       print*,'由于之前用手按压伤口,你的手上满是血渍,你抽出手来在旁边抹了一下'
       print*,'继续全神贯注的在溅上鲜血,绣着红十字的药箱里寻找着替代品'
       if(trangle>=1) then
        print*,'你发现还有几条三角巾能用,虽然这点应付腹部的重伤也很勉强'
        print*,'你麻木的展开三角,然后开始往自己的腹部伤口上缠,'
        print*,'你叹了口气——三角巾很难扎紧,特别是在重伤虚弱的情况下'
        print*,'没有做过多尝试,你右手抓住武器,左手拉紧另一端的绷带头'
        trangle=(trangle-1)
        hp=(hp+45)
        print*,'用右臂承受着全身的力气,翻身继续艰难的朝着目标挪动'
        fbzd=(fbzd+1)
        goto 9501
        elseif(trangle<1)then
        print*,'你摸了个空,染满血渍的手停住了,医疗箱里一卷三角巾都没有'
        print*,'三角巾本应是包扎的首要选择'
        print*,'“都... ...都用完了吗... ...”'
        print*,'但你想起之前救下来的战友,丝毫没有后悔'
        print*,'或者说,当你选择了这个任务,就没有后悔的可能了。'
        print*,'你咬咬牙,用颤抖的手虚弱的摁住伤口,艰难的向前继续挪动'
        fbzd=(fbzd+1)
        goto 9501
        end if
        end if
        end if


9510 print*,'你摧毁了那个暗堡'


!/以上是第二阶段/

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值