Untitled
unknown
fortran
a year ago
1.2 kB
7
Indexable
module factory
implicit none
private
public :: mob
public :: new_mob
type mob
integer :: id = 0
integer :: hp = 0
contains
procedure :: yell
end type mob
contains
! Construct a mobly mob. Count how many we have.
function new_mob() result(a_mob)
use, intrinsic :: iso_fortran_env
use string
implicit none
type(mob) :: a_mob
integer, save :: total_mobs = 0
real :: randomness = 0.0
! Seed the random generator.
if (total_mobs == 0) then
call random_seed()
end if
call random_number(randomness)
! 0 - 100.0
randomness = randomness * 100.0
! Mob has random hp
a_mob%hp = floor(randomness)
a_mob%id = total_mobs
! Tick up mob count.
total_mobs = total_mobs + 1
end
subroutine yell(this)
use string
implicit none
class(mob) :: this
print"(A)","HELLO, I AM MOB ["//int_to_string(this%id)//"] WITH HP ["//int_to_string(this%hp)//"]"
end subroutine yell
end module factory
program main
use factory
implicit none
type(mob) :: mobly
integer :: i
do i = 1,100
mobly = new_mob()
call mobly%yell()
end do
end program mainEditor is loading...
Leave a Comment