Post by hedgehog7777 on Jan 25, 2020 14:53:39 GMT -5
last edit: 2023,apr20 ,find: new layout
'
send information or demonstrations Basic_4Gl and Freebasic to : chuck.summer@mail.com
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
01) new match it version
02) [11 Examples Basic4GL]
03) copy a video_game
04) Basic4GL and tools
05) (text)_minesweeper
06) feel free to Upload here:
www.opendrive.com/
CHUCK001001@protonmail.com
75122300554a
'*****************************************************************************************************************************************************************************
01:new match it version (28mb):sub match it_16.01.05m.fin.zip [may 2022]
www.mediafire.com/file/ldl2zvjl0ooct1y/sub_match_it_16.01.05m.fin.zip/file
'*****************************************************************************************************************************************************************************
02:find [11 Examples Basic4GL] in one Zip-folder:
www.mediafire.com/file/hqm7hbo1linxxlx/basic_4GL_%252811_Examples%2529_%2528canada%2529%2528v20%2529.zip/file
'*****************************************************************************************************************************************************************************
03:Good news for all who want to copy a video_game:
'
www.free80sarcade.com/
www.tripletsandus.com/play-classic-80s-arcade-games/free-online-sega-classic-video-games-from-the-1980s/
www.ssega.com/
www.tgx16.com/
www.snesfun.com/
'
www.xlatari.com/
www.retrosega.com/
www.xtdos.com/
www.gbafun.com/
www.jamsx.com/
'
myemulator.online/nintendo-64
myemulator.online/neo-geo
arcadespot.com/games/n64/
emulatorgames.online/games/n64
www.vizzed.com/play/banjo-kazooie-n64-online-nintendo-64-8906-playable
'
'
NOV_2021:i try to copy :oilswell .A game for the MSX-sytem >> search and find this game in: jamsx.com
'*****************************************************************************************************************************************************************************
04:Basic4GL and tools:
'
www.facebook.com/groups/basic4gl/
twitter.com/basic4gl?lang=en
github.com/search?q=Basic4Gl
'
gluLookAt_1.0.zip (489.94 KB) 'Basic 4Gl example
'*****************************************************************************************************************************************************************************
05:(text_mine_sweeper)
05.01:z.02_vector_minesweeper_(no folders).fin.gb 22728 bytes
05.02:00.00.txt 1240 bytes (original)
05.03:00.05.txt 3744 bytes (original)
05.04:minesweeper_notice_02.txt 1988 bytes (original)
'
5.02-5.04: copy text into Notepad and save with name.txt
(have these 4 files into the same folder)
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
05.01: z.02_vector_minesweeper_(no folders).fin.gb
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'minesweeper:0.01(2:13 PM 1/28/2019) to 1.00(5:33 PM 2/20/2019)...ctrl+z undo
'-------------------------------------------------------------------------------------------------------------------------
'pre-dim
dim v0=15'vertex-amount
dim v2=14
'-------------------------------------------------------------------------------------------------------------------------
n2:
'a
dim a,a1(50),a2,a3,a4,a5,a6
dim a04,a05
dim a$,a3$,a4$
'b
dim b$(50),b1$(50),b2$
dim b,b1,b2,b3
dim Box(2),bomb,bd#,bd1,bd2,bd3#,bd4#,bd5,bd6#
'c
dim c$
dim c,c0
'd
'dim d
'f
dim file,fe$
dim f0,f1,f2#(5),f3#(5),f4,f5,f6
dim f01,f02,f03,f04,f05,f06,f07,f08,f09,f10,f11,f12,f14,f15,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30
dim f31,f32,f33,f34,f35,f36,f37,f38,f39,f40
'h
dim h,h1
'i everywhere
dim i$
dim i,i0,i1,i2,i3,i4,i9
dim i#,i10#
dim in,in2,in3
'l
dim l0(v2,v0)
'm
dim max_b,mb0,mb1,ms(300,160),ms2(300,160),ms3(300,160),ms4(300,160)
dim mb2,mb3
dim mx,mx2,mx3,mx4,mx5,mx6#,mx7#,mx8
dim my,my2,my3,my4,my5,my6#,my7#,my8
dim mrx#(1),mry#(1),mrp
'r everywhere
dim r1
dim rc(v0)
's
dim search
't
dim t1(1),tl,tl1,ty,ty#,ty1,ty2#
'w
dim w1,w2,w as double
dim wf
'v
dim v1
dim v#(v0,1,2),vertex#(v0,1,2),ver#(v0+1,1,2)
dim ver2#(2),ver3#(2)
'x
dim x,x0,x1,x2, x3,x4,x5,x6,x7,x8,x9
'y
dim y,y0,y1,y2,y3,y4,y5,y6,y7,y9
'z
dim ze
'--------------------------------------------------------
declare sub col(b)
declare sub c2(b)
declare sub l(b,x,y)
declare sub line(i0,i1,i2,i3,i4,i5)
declare sub cr(i0,i1,i2,i3)
Function r(min,max):Return rnd()% (max - min + 1) + min:End Function
'--------------------------------------------------------
ver#( 0,0) = vec3 ( 0,10,0):ver#( 0,1) = vec3 ( 0,20,0)
ver#( 1,0) = vec3 ( 0, 0,0):ver#( 1,1) = vec3 ( 0,10,0)
ver#( 2,0) = vec3 ( 10,10,0):ver#( 2,1) = vec3 ( 10,20,0)
ver#( 3,0) = vec3 ( 10, 0,0):ver#( 3,1) = vec3 ( 10,10,0)
ver#( 4,0) = vec3 ( 0,20,0):ver#( 4,1) = vec3 ( 10,20,0)
ver#( 5,0) = vec3 ( 0, 0,0):ver#( 5,1) = vec3 ( 10, 0,0)
ver#( 6,0) = vec3 ( 0,10,0):ver#( 6,1) = vec3 ( 10,10,0)
ver#( 7,0) = vec3 ( 10,10,0):ver#( 7,1) = vec3 ( 5, 5,0)'............7
ver#( 8,0) = vec3 ( 5, 5,0):ver#( 8,1) = vec3 ( 5, 1,0)'............8
ver#( 9,0) = vec3 ( 5, 0,0):ver#( 9,1) = vec3 ( 5,20,0)
ver#(10,0) = vec3 ( 0,10,0):ver#(10,1) = vec3 ( 5,20,0)
ver#(11,0) = vec3 ( 10,10,0):ver#(11,1) = vec3 ( 5,20,0)
ver#(12,0) = vec3 ( 0,10,0):ver#(12,1) = vec3 ( 5, 0,0)
ver#(13,0) = vec3 ( 10,10,0):ver#(13,1) = vec3 ( 5, 0,0)
ver#(14,0) = vec3 (4.5,10,0):ver#(14,1) = vec3 (5.5,10,0)
ver#(15,0) = vec3 (4.5, 0,0):ver#(15,1) = vec3 (5.5, 0,0)'............15
ver#(16,1) = vec3 (1,1,1)
'
ver#(16,0) = ver#( 0,0) + vec3 ( 0,120,0)
'--------------------------------------------------------
for r1=0 to v0:rc(r1)=r(1,4):next
reset m1:for i=0 to 5:read f2#(i):next
reset m2:
for i1=0 to v2:for i=0 to v0:read l0(i1,i):next:next
'--------------------------------------------------------n5
gosub load1
bd6#=0.01'exempt
bd3#=0.1:bd4#=0.9:bd5=(bd#=bd6#)'limits:0.1-0.9,exempt bd6#
bd1=(bd#<bd3#):bd2=(bd#>bd4#):
bd#=-bd4#*bd2-bd3#*bd1-(bd1=0 and bd2=0)*bd#
bd#=-bd#*not(bd5):bd#=bd#-bd6#*bd5
'
if y4<0 then y4=0:endif:if y4>10 then y4=10:endif
if y4=0 and y5=3 then f10=true:endif
if y5>45-y4 then y5=45-y4:endif
if y5<3 then y5=4:endif
if x4<0 then x4=0:endif:if x4>10 then x4=10:endif
if x5>50-x4 then x5=50-x4:endif
if x5<3 then x5=4:endif
if x5=3 and x4=0 then f11=true:endif
'--------------------------------------------------------
'w1=WindowWidth():h1=WindowHeight():wf=WindowFullscreen()
'
w1=1600:h1=1000:
if wf then:w1=1920:h1=1080:f25=true:endif
SetWindowWidth(w1):SetWindowHeight(h1):SetWindowBorder(true):UpdateWindow()
w=.02*w1:h=-.02*h1 'gl_vertex
x3=100:y3=100: 'glVertex3f
tl=2 'texture_length.loop
tl1=5: 'smile
search=100
f31=1:f35=true
'--------------------------------------------------------n01
mrx#(0)=0.77:mry#(0)=0.575
mrx#(1)=1.02:mry#(1)=0.575
'--------------------------------------------------------
if w1=1024 and h1= 768 then mrp=0:f27=true:endif
if w1=1600 and h1=1000 then mrp=1:f28=true:endif
if w1=1920 and h1=1080 then mrp=1:f28=true:endif
'--------------------------------------------------------
if not(f27 or f28) then
Locate 1,2:col(2):print "error:set w1,h1 (window_size)"
Locate 1,3:col(2):print "...press esc"
gosub draw_buf:do:gosub mousebutton:loop
endif
'--------------------------------------------------------
Function y65(y6):a=(((y6-50)/10)-5)*-1:Return a:End Function
mx4=100:my4=50
'*****************************************************************************************************************************************
do'do.01
f19=0
x6=mx4:y6=my4 'resizetext:x6,y6:50,60,70,80,90,100
'
ty=39:ty#=ty:ty#=ty#/50:ty1=ty#*y6*1:ty=ty1+abs(ty#+1)*(6*y6/100)'text_location.y
ty2#=f2#(y65(y6)):ty2#=ty2#*y6
'
if f11 then x5=mx4:endif
if f10 then y5=ty2#:endif 'x5:field(<=x6),y5..y5=94:
'
x5=-(x5<=x6)*x5-x6*(x5>x6) 'x5:field.grv.max=x6
y5=-(y5>3)*y5-4*(y5<4) 'y5:field.min=4
max_b=x5*y5 'max.bomb
bomb=(max_b*bd#)+1 'bomb.amount
'---------------------------------------------------------------
y0=y5*10 :x0=x5*10 'rnd_bomb
y1=(y0-1)/10:x1=(x0-1)/10 'lower border*10
'-------------------------------------------------------------------------------------------------
glLoadIdentity()
gluPerspective(60, (WindowWidth()) / WindowHeight(), .01, 10000)
glMatrixMode(GL_MODELVIEW)
glLoadIdentity()
glEnable(GL_DEPTH_TEST)
glDepthFunc(GL_LEQUAL)
glClearColor(.01, .01, .01, 1)
a2=windowborder()
'-------------------------------------------------------------------------------------------------
textmode(texT_OVERLAID):'textmode(texT_simple)
resizetext(x6,y6)
'
f1=true:f06=true:f5=true
b2$="":for i=0 to x1:b2$=b2$+"#":next
do
glClear (GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT)
glLoadIdentity()
glTranslatef (0, 0, -100)
'----------------------------------------------------------------------------
gosub mouse1:gosub mouse2:gosub mouse4:gosub mouse5:gosub mousebutton
gosub key:gosub inkey
'----------------------------------------------------------------------------
gosub l_print
gosub resize
gosub arrow
gosub compare
gosub vec_draw
'----------------------------------------------------------------------------
gosub bug
DrawText():SwapBuffers ()
loop until (f5 and f09=0)
gosub game_over
loop
'*****************************************************************************************************************************************
vec_draw:
if f35 then gosub line_loop3
for y=0 to y1
for x=0 to x1
if ms4(x,y) and ms2(x,y)=0 then l(12,x,y):endif
if ms4(x,y) and ms2(x,y)>0 then l(ms2(x,y),x,y):endif
if ms3(x,y)=1 then l(14,x,y):endif
if ms3(x,y)=2 then l(13,x,y):endif
next
next
endif
return
'
key:gosub scankey:
if (f26=0 and f18) then gosub write1:f26=true:endif
return
scankey:
if f18=0 then:if (ScanKeyDown (vk_f1)) then f18=true :endif:endif'write_bug
if f18 then:if not (ScanKeyDown (vk_f1)) then f18=0:f26=0 :endif:endif
'
if f24=0 then:if (ScanKeyDown (vk_f2)) then f24=true:f25=not(f25):endif:endif
if f24 then:if not (ScanKeyDown (vk_f2)) then f24=0 :endif:endif
'
if f30=0 and (ScanKeyDown (vk_f3)) then
f30=true:f29=not(f29):f31=f31+1:if f31=7 then f31=1:endif
endif
if f30 then:if not (ScanKeyDown (vk_f3)) then f30=0 :endif:endif
'
if f36=0 then:if (ScanKeyDown (vk_f4)) then f36=true:f35=not(f35):endif:endif
if f36 then:if not (ScanKeyDown (vk_f4)) then f36=0 :endif:endif
'
if f38=0 then:if (ScanKeyDown (vk_f5)) then f38=true:f37=not(f37):endif:endif
if f38 then:if not (ScanKeyDown (vk_f5)) then f38=0 :endif:endif
return
'*********************************************************************************************************
resize:
if f4 then: gosub mouse3:gosub mousebutton:if f01 then f4=0:f5=true:endif:endif
return
'n3*********************************************************************************************************
compare:
if (f12=0 and f04=0 and f05=0 and f4=0) then
if mx<0 then mx=0 :endif:if mx>x1 then mx=x1 :endif
if my-y4<0 then my=y4 :endif:if my>y1+y4 then my=y1+y4 :endif
f02=(f01 and (ms2(mx,my-y4)=-1))
if f02 then
col(6):locate x4+mx,my:print "-"
gosub draw_buf
f02=0:f05=true:f5=true
else:
if my>y4-1 and my<=y1+y4 and mx<=x1 then
if f21=0 then
f23=(ms4(mx,my-y4)=0):f20=f20+1
f03=(f01 and (ms2(mx,my-y4)>-1) and f23)
if (f04=0 and f03) then
gosub open_zero
gosub open_number:'if f25=0 then gosub write1:f25=true:endif
gosub count_closed_numbers
endif'if (f04=0 and f03)
if f22=0 then gosub find_all_zeros:endif
endif'if f21=0 and
endif'if my>y4-1
endif'if f02
endif'if (f12=0
'
if my>y4-1 and my<=y1+y4 and mx<=x1 and mx>-1 then
if (f04=0 and f12 and f14=0 and ms4(mx,my-y4)=0) then f14=true
ms3(mx,my-y4)=ms3(mx,my-y4)+1:if ms3(mx,my-y4)=3 then ms3(mx,my-y4)=0:endif
if ms3(mx,my-y4)=0 then col(5):locate x4+mx,my:print "#":endif
if ms3(mx,my-y4)=1 then col(6):locate x4+mx,my:print "#":endif
if ms3(mx,my-y4)=2 then col(1):locate x4+mx,my:print "?":endif
col(1):
endif'if (f04=0
endif
'
if f05 then c=2
cr(0,y6-1,x6,y6-1)
do:
gosub mb3:gosub mouse3:cr(0,y6-1,x6,y6-1):
gosub t1:gosub t2:gosub t3:gosub draw_buf:
loop until f08:f08=0
gosub game_over:c=1:f1=true:f4=true:f5=true:f09=0
endif
'game_win:
return
'*********************************************************************************************************
open_zero:
if ms2(mx,my-y4)=0 and ms4(mx,my-y4)=0 then:f04=true:f09=true:ms4(mx,my-y4)=true:endif
return
'*********************************************************************************************************
open_number:
if ms2(mx,my-y4)>0 and ms4(mx,my-y4)=0 then:f04=true:f09=true:ms4(mx,my-y4)=true:f22=true:endif
return
'*********************************************************************************************************
find_all_zeros:
my5=my:mx5=mx:col(7)
for i9=0 to search
for my=0 to y1
for mx=0 to x1
if ms2(mx,my)=0 and ms4(mx,my) then 'at a zero and open
if my>0 then'...up
if ms2(mx,my-1)=0 and ms4(mx,my-1)=0 then ms4(mx,my-1)=true:endif
endif
'
if my<y1 then'...down
if ms2(mx,my+1)=0 and ms4(mx,my+1)=0 then ms4(mx,my+1)=true:endif
endif
'
if mx>0 then'...left
if ms2(mx-1,my)=0 and ms4(mx-1,my)=0 then ms4(mx-1,my)=true:endif
endif
'
if mx<x1 then'...right
if ms2(mx+1,my)=0 and ms4(mx+1,my)=0 then ms4(mx+1,my)=true:endif
endif
endif
next
next
next'i0
'
for my=0 to y1'open_numbers
for mx=0 to x1
if ms2(mx,my)=0 and ms4(mx,my) then 'at a zero and open
'
if my>0 then'...up
if ms2(mx,my-1)>0 and ms4(mx,my-1)=0 then ms4(mx,my-1)=true:endif
if mx>0 and mx<=x1 then 'left
if ms2(mx-1,my-1)>-1 and ms4(mx-1,my-1)=0 then ms4(mx-1,my-1)=true:endif
endif'if mx>0
if mx>-1 and mx<x1 then 'right
if ms2(mx+1,my-1)>-1 and ms4(mx+1,my-1)=0 then ms4(mx+1,my-1)=true:endif
endif'if mx>-1
endif
'
if my<y1 then'...down
if ms2(mx,my+1)>0 and ms4(mx,my+1)=0 then ms4(mx,my+1)=true:endif
if mx>0 and mx<=x1 then'left
if ms2(mx-1,my+1)>-1 and ms4(mx-1,my+1)=0 then ms4(mx-1,my+1)=true:endif
endif'if mx>0
if mx>-1 and mx<x1 then'right
if ms2(mx+1,my+1)>-1 and ms4(mx+1,my+1)=0 then ms4(mx+1,my+1)=true:endif
endif'if mx>-1
endif
'
if mx>0 then'...left
if ms2(mx-1,my)>0 and ms4(mx-1,my)=0 then ms4(mx-1,my)=true:endif
endif
'
if mx<x1 then'...right
if ms2(mx+1,my)>0 and ms4(mx+1,my)=0 then ms4(mx+1,my)=true:endif
endif
endif
next
next
'
gosub count_closed_numbers:
my=my5:mx=mx5:f21=true:search=search/2:if search<10 then search=10:endif
return
'*********************************************************************************************************
count_closed_numbers:
a4=0:col(7)
for my=0 to y1
for mx=0 to x1: i0=ms2(mx,my):i1=ms4(mx,my):i2=ms3 (mx,my):i3=mx+x4:i4=my+y4
if i0>-1 and i1=0 then a4=a4+1:endif
if i0= 0 and i1 then col(7): locate i3,i4:print "." :endif
if i0> 0 and i1 then col(7): locate i3,i4:print i0 :ms3 (mx,my)=0:endif
if f37 and i1=0 then locate i3,i4:print" ":f39=true :endif'f5
if f37=0 and i1=0 and i2=0 then col(5):locate i3,i4:print"#":f40=true:f39=0:endif
next
next
if f39 then f37=1:f39=0:endif
if a4=0 then f05=true:f19=true:endif
return
'*********************************************************************************************************
t2: col(5):locate x6-19,y6-1:print "|game.over|mx:";mx4;" ":Return
'*********************************************************************************************************
t3: if f19 then:col(2):locate x6-19,y6-2:print " |YOU.WIN!| ":endif:Return
'*********************************************************************************************************
sub cr(i0,i1,i2,i3):textmode(texT_simple):clearregion(i0,i1,i2,i3):textmode(texT_OVERLAID):end sub
'*********************************************************************************************************
game_over:
for y=0 to y1:for x=0 to x1:ms2(x,y)=0:ms(x,y)=0:ms3(x,y)=0:ms4(x,y)=0:next:next
f05=0:f1=true:f4=true:f5=true
clearregion (0,y4,x1,y1+y4):clearregion (20,40,30,40)
return
'*********************************************************************************************************
draw_buf:drawtext():SwapBuffers ():return
'*********************************************************************************************************
mousebutton:
if f01=0 then :mb0=mouse_button(0):if mb0 then f01=true:f21=0:f22=0:endif:endif
if (f01 and mouse_button(0)=0) then f04=0:f01=0: f1=0:f4=0:mb0=0:endif
if f12=0 then :mb1=mouse_button(1):if mb1 then f12=true:endif:endif
if (f12 and mouse_button(1)=0) then f12=0:f14=0:mb1=0:endif
return
'*********************************************************************************************************
sub col(b):
color(255*-(b=5 or b=4 or b=6)-200*(b=7),255*-(b=2 or b=1 or b=6)-200*(b=7),255*-(b=3 or b=4 or b=1)-200*(b=7)):
end sub'4:101,5:110,6:011,7:grey
sub c2(b):
glColor3f(-(b=5 or b=4 or b=1)-.75*(b=7),-(b=2 or b=1 or b=6)-.75*(b=7),1*-(b=3 or b=4 or b=6)-.75*(b=7))
end sub
'n1*********************************************************************************************************
l_print:
if f1 then:
col(5):for y=0 to y1:locate x4,y+y4:print b2$:next:
f1=0:f06=0:f4=true
'
for a=1 to bomb
do
x=(rnd()%x0)/10:y=(rnd()%y0)/10
if not(ms(x,y)) then
ms(x,y)=true:f0=true:
if x=0 then b1=b1+1:endif
else:f0=0:
endif
loop until f0
next
'
x=0 '3 cases,'left,middle and right case,case_1:
for y2=0 to y1
if not(ms(x,y2)) then b3=b3+1
if y2=0 then
ms2(x,y2)=-ms(x+1,y2)-ms(x+1,y2+1)-ms(x,y2+1)
endif
if y2>0 and y2<y1 then
ms2(x,y2)=-ms(x,y2-1)-ms(x+1,y2-1)-ms(x+1,y2)-ms(x+1,y2+1)-ms(x,y2+1)
endif
if y2=y1 then
ms2(x,y2)=-ms(x,y2-1)-ms(x+1,y2-1)-ms(x+1,y2)
endif
endif
next
'
for x=1 to x1'case_2
for y2=0 to y1
if not(ms(x,y2)) then b3=b3+1
if y2=0 then
ms2(x,y2)=-ms(x-1,y2)-ms(x-1,y2+1)-ms(x,y2+1)-ms(x+1,y2+1)-ms(x+1,y2)
endif
if y2>0 and y2<y1 then
ms2(x,y2)=-ms(x-1,y2-1)-ms(x-1,y2)-ms(x-1,y2+1) -ms(x,y2-1)-ms(x,y2+1) -ms(x+1,y2-1)-ms(x+1,y2)-ms(x+1,y2+1)
endif
if y2=y1 then
ms2(x,y2)=-ms(x-1,y2)-ms(x-1,y2-1) -ms(x,y2-1) -ms(x+1,y2)-ms(x+1,y2-1)
endif
endif
next
next
'
x=x1'case_3
for y2=0 to y1
if not(ms(x,y2)) then b3=b3+1
if y2=0 then
ms2(x,y2)=-ms(x-1,y2)-ms(x-1,y2+1)-ms(x,y2+1)
endif
if y2>0 and y2<y1 then
ms2(x,y2)=-ms(x,y2-1)-ms(x-1,y2-1) -ms(x-1,y2) -ms(x-1,y2+1)-ms(x,y2+1)
endif
if y2=y1 then
ms2(x,y2)=-ms(x,y2-1)-ms(x-1,y2-1) -ms(x-1,y2)
endif
endif
next
'
gosub text_begin
'
for y=0 to y1:for x=0 to x1:if ms(x,y) then ms2(x,y) = -1:endif:next:next
endif'if f1
return
'*********************************************************************************************************
text_begin:
locate 0,ty+6:for r1=0 to x6-1:print"-";:next:printr
col(2): locate x6-24,ty+7 :print "minesweeper 1.04";:col(7):print"_2.28.19"
col(5): locate x6-14,ty+8 :print "mouse.adjust"
col(1)
return
'*********************************************************************************************************
bug:
c=1:gosub t1
col(2): locate 0,ty+7:print "x1/y1:";x1;"/";y1;"__bomb.max:";max_b;"__bomb.amount.";bd#*100;"%:";bomb;" ** "
col(4):'gosub look_bomb
'
locate 0,ty+8 :print "mx/my:";mx;"/";my"__my/my6:";my;"/";int(my6#);" "
return
'*********************************************************************************************************
look_bomb:
if mx>-1 and my>y4-1 then
if ms(mx,my-y4) then col(6) else col(5):endif
locate 0,ty+11:print "bomb:"; ms(mx,my-y4) ;" "
col(4): locate 10,ty+11:print "ms2:" ;ms2(mx,my-y4) ;" "
endif
return
'*********************************************************************************************************
t1:col(3): '1:light_blue,2:green
locate 0,ty+9:print "wf:";wf;" "
locate 0,ty+10:col(5):print "a4:";a4:col(1):print"__x2/y7:";x2;"/";y7;"__f31:";f31;" "
return
'n4*********************************************************************************************************
mouse1: mx =INT(mouse_x()*x6)-x4 :my =INT(mouse_y()*y6) :return
mouse2: mx2 =INT(mouse_x()*w1+1) :my2 =INT(mouse_y()*h1) :return
mouse3: mx3 =INT(mouse_x()*105)+50 :mx4 =(mx3/10)*10
my3 =INT(mouse_y()*55)+50 :my4 =(my3/10)*10 :return
mouse4: mx6#=(mouse_x()*200-100)*mrx#(mrp):my6#=-(mouse_y()*200-100)*mry#(mrp):return
mouse5: mx8=(mouse_x()*12-6):my8=(mouse_y()*12-6):
x9=(x1+1)*12+5
if scankeydown(vk_CONTROL) then
f33=(mx8> 2):if f33 and (-x2<x9) then x2=x2+(f33)*f31:endif
f34=(mx8<-2):if f34 and (-x2>0) then x2=x2-(f34)*f31:endif
y9=y1*22-5
f33=(my8> 2):if f33 and (y7<y9) then:y7=y7-(f33)*f31:endif
f34=(my8<-2):if f34 and (y7>0) then:y7=y7+(f34)*f31:endif
endif
return
'*********************************************************************************************************
line_loop3:c2(1)
glBegin (GL_LINE_LOOP)
glVertex3f( x2-5 ,y7 +1*22 ,0) :glVertex3f(x2+(x1+1)*12+5,y7 +1*22 ,0)
glVertex3f( x2+(x1+1)*12+5,y7-y1*22-5,0) :glVertex3f(x2-5 ,y7-y1*22-5,0)
glend()
return
'*********************************************************************************************************
arrow:
if f25 then
gllinewidth(1):glcolor3f(0,1,0):
glBegin (GL_LINES)
glVertex3f(mx6# ,my6#-10 ,0):glVertex3f(mx6# ,my6# ,0)
glVertex3f(mx6#-1 ,my6#-3 ,0):glVertex3f(mx6#-.10 ,my6#-.4 ,0)
glVertex3f(mx6#+1 ,my6#-3 ,0):glVertex3f(mx6#+.10 ,my6#-.4 ,0)
glend()
endif
return
'*********************************************************************************************************
sub line(i0,i1,i2,i3,i4,i5):glVertex3f(i0,i1,i2):glVertex3f(i3,i4,i5):end sub
'*********************************************************************************************************
mb2 :do:mb1=mouse_button(1):loop until mb1 :return
mb20:do:mb1=mouse_button(1):loop until not(mb1):return
'
mb3 : gosub mb
if (f07=0 and mb1) then f07=true :endif
if (f07 and mb1=0) then f07=0:f08=true:endif
return
'
mb:mb1=mouse_button(1):mb0=mouse_button(0):return
'*********************************************************************************************************
load1:
file = openfileread("00.00.txt") '("files/00.00.txt")
fe$=FileError ():if fe$ <> "" then col(7):Locate 1,23:print fe$:Locate 1,24:col(2):print "error occured...press esc":
gosub draw_buf:do:gosub mousebutton:loop:endif
'
i$=ReadLine(file):i$=ReadLine(file)
i$=ReadLine(file):i$=left$(i$,10):bd#=val(i$)
i$=ReadLine(file):i$=left$(i$,10):y4 =val(i$)
i$=ReadLine(file):i$=left$(i$,10):y5 =val(i$)
i$=ReadLine(file):i$=left$(i$,10):x4 =val(i$)
i$=ReadLine(file):i$=left$(i$,10):x5 =val(i$)
'
CloseFile (file)
return
'*********************************************************************************************************
write1:
file = openfilewrite("00.05.txt")'("files/00.05.txt")
'
for y=0 to y1
for x=0 to x1
if ms4(x,y) and ms2(x,y)=0 then a$=".":endif
if ms4(x,y) and ms2(x,y)>0 then a$=str$(ms2(x,y)):a$=left$(a$,len(a$)-1):endif
if ms4(x,y)=0 then a$="*":endif
c$=c$+a$
next
writeLine(file,c$):c$=""
next
'
CloseFile (file)
return
''*********************************************************************************************************
sub l(b,x,y)'ver#( 0,0) = ver#( 0,0) +vec3 ( 0,120,0)
gllinewidth(4)
glBegin (GL_lineS)
for v1=0 to v0'15
if l0(b,v1) then c2(rc(v1)):
ver2#=ver#(v1,0)+vec3(x2+x*12,y7-y*22,0):ver3#=ver#(v1,1)+vec3(x2+x*12,y7-y*22,0)
glVertex3fv (ver2#):glVertex3fv (ver3#)
endif
next
glend()
end sub
'*********************************************************************************************************
inscan:
a04=PerformanceCounter():
if a04>(a05+500) then f29=0:f6=0:endif'
if f29=0 then in=InScanKey():if in<>0 then in2=in:in3=in3+1:clearkeys():endif:endif
if f29=0 then f6=in2:f29=true:in2=0:a05=PerformanceCounter():endif:
return
'*********************************************************************************************************
inkey:a3$=inkey$():if a3$<>"" then a4$=a3$:a5=asc(a4$):a6=a5-97:endif:return
'*********************************************************************************************************
m1:
data .94'100
data .85' 90
data .86' 80
data .86' 70
data .88' 60
data .90' 50
'
'data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
m2:
data 1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0'0
data 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0'1
data 0,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0'2
data 0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0'3
data 1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0'4
data 1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0'5
data 1,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0'6
data 0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0'7
data 1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0'8
data 1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0'9
data 0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0'#...10
data 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0'-...11
data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0'.___12
data 0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,1'?...13
data 0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0'<>...14
'0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
05.02: 00.00.txt
minesweeper:12:39 PM 2/20/2019 '(1st line)
----------------------------------------------------------------------------------------------------------
0.1 'a:bomb_factor:0.1-0.9
0 'b:upper_border.y4:0-10
3 'c:y_lenght.y5 4 - (45-y4) '3 for long field '
0 'd:left.border.x4:0-10
3 'e:x_wide.x5 4 - (50-x4) '3 for long field
----------------------------------------------------------------------------------------------------------
bomb.amount=maximal.bomb*bomb_factor
bomb.factor 0.0:no bomb
bomb.factor 0.9:bomb.amount=maximal(90%_field)
------------------------------------------------------
choose.long.field:
'
choose.maximale lenght.y5:
upper_border:0
y_lenght.y5:3
'
choose.maximale lenght.x5:
left.border.x4:0
x_wide.x5:3
------------------------------------------------------
choose.a.short.field:
'
upper_border.y4 :00 to 10
y_lenght.y5 :4 to 45-y4
'
left.border.x4 :0 to 10
x_wide.x5 :4 to 50-x4
------------------------------------------------------
example:choose long field
a:0.3,
b:0,
c:3, '3 for a long_field
d:0,
e:3 '3 for a long_field
'
example:choose a short field
a:0.5,
b:10,
c:10,
d:10,
e:10
------------------------------------------------------
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
05.03: 00.05.txt
****1............1**2.......1******1.1*1..1**1............1***********
**211............1**2...111.1******1.1*1..1**211....111...1*212*******
*21..111111.111..1221...1*1122211111.111..12***1....2*2...111.12******
*1...1****2.1*1.........12***1.............1*211....2*2........1******
*1...12***2.111..........1***1..........1122*1......111111...112******
*1....1***1......111..11112**1..........2****211.....1***1...1********
11....12**111....1*3211*1.12*1...111...13******1.....1***21112********
*.111..1****1....12**2111..111..12*1...1****1111..1111****************
.*1*1..111111.....13*2..........1**21..1111*1.....1*******************
*.1*21.............111.111......112*1.....111.....1*******************
.*1**1......111........1*1........1*1.111.........1*******************
11**21...1111*1......112*1......123*112*1.........1*******************
**211....1****11232212***111..112*******1.........111*****************
111......1*****************1..2*********11..........1*****************
........11****1123*211111111..3**********1.....111..1*****************
.....1111*****1..1*1..........2**********21....1*1..122***************
111112*1112***11.1*1.....1221.1***********1....111....1**213**********
******21..1111*1.111..1112**321***********1......111..1*21.3*******311
******1......111......1*******************1......1*1..111..3*****321..
******1.......111...112**21223************1111...111.......2*311*1....
******111....12*21..1*1111...1***************1.............111.111111.
********1111.1***1..111......111.**********211.111111.............1*1.
***********1.11211......111.....1*********11...1****1.............111.
***********2............1*1.....1*********1....1****2111..111.........
***********21...........111.....1111*1112*1..111*******1..1*1.....1221
************1..111....111..111.....1*1..111..1*********1..2*2.....1***
***********11..1*211..1*1..1*1...123*1.......12********11.1*1....12***
**********.*.112***1113*2..111...2***11.......1*********211*1....1****
**********1.12**********1........2****211.....2*************111..1****
**********211***********1........111112*1...112***************2211****
************************1.............1122211*************************
************************1...111.........1*****************************
***********************21...1*1....111112*****************************
***********************1....1*1....1**********************************
***********************31...1*1111.111********************************
************************1...1****1...1********************************
************************1...2*21221..1********************************
************************11.13*2.1*1..2********************************
********************2212*1.1**2.111..1********************************
******************211..111.1221......11*******************************
******************1...............111.*.******************************
******************1111.....111....1*1*.*.*****************************
*********************1.....1*211111*1.*.1*****************************
*********************2.....12*******12111*****************************
*********************1.111..1*****************************************
*********************212*3221*****************************************
**********************************************************************
**********************************************************************
**********************************************************************
**********************************************************************
**********************************************************************
**********************************************************************
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
05.04: minesweeper_notice_02.txt
"minesweeper 2.00"__"_3.13.19"
z.01_vector_minesweeper_03.fin.gb
***************************************************************************
start Game with GO:
use mouse_X and mouse_Y to change field_size
put mouse_pointer over a :# and
click (with left mouse_button) on to this: #
to open this particluar spot(#)
now we hope that here is no bomb
the game is over if you click a bomb:
***
*3*
***
------> around number 3 can be found :3 Bombs
try not to click the bombs (-).(or GAME OVER)
'
choose particular spot (#) and click right mouse_button (RMB) 2 times:
**?
*3*
***
? appear to indicate that here could be (or maybe) a bomb
if you are sure that here is a bomb then click RMB only one time:a yellow #
'
(if here is no bomb then a number appears to explain how many bombs
surround this number)
'
clear the whole field without finding a bomb
sometimes click left mouse_button a few times to clear the field
***************************************************************************
before you start a game you have the option:Fullscreen_mode :yes/no
with mouse choose:
Settings/Basic Runtime Settings/
check :Fullscreen
and :OK
***************************************************************************
'f-keys:
'f01:write bug:00.05.txt...1:06 PM 3/11/2019,12:21 PM 10/21/2021
'f02:arrow on/off
'f03:scroll_speed:1,2,3,4 for vector_graphic
'ctrl+(mouse_x,mouse_y):scroll.vector_graphic
'f04:vector_graphic.on/off
'f05:# ON/OFF
'***************************************************************************
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'
send information or demonstrations Basic_4Gl and Freebasic to : chuck.summer@mail.com
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
01) new match it version
02) [11 Examples Basic4GL]
03) copy a video_game
04) Basic4GL and tools
05) (text)_minesweeper
06) feel free to Upload here:
www.opendrive.com/
CHUCK001001@protonmail.com
75122300554a
'*****************************************************************************************************************************************************************************
01:new match it version (28mb):sub match it_16.01.05m.fin.zip [may 2022]
www.mediafire.com/file/ldl2zvjl0ooct1y/sub_match_it_16.01.05m.fin.zip/file
'*****************************************************************************************************************************************************************************
02:find [11 Examples Basic4GL] in one Zip-folder:
www.mediafire.com/file/hqm7hbo1linxxlx/basic_4GL_%252811_Examples%2529_%2528canada%2529%2528v20%2529.zip/file
'*****************************************************************************************************************************************************************************
03:Good news for all who want to copy a video_game:
'
www.free80sarcade.com/
www.tripletsandus.com/play-classic-80s-arcade-games/free-online-sega-classic-video-games-from-the-1980s/
www.ssega.com/
www.tgx16.com/
www.snesfun.com/
'
www.xlatari.com/
www.retrosega.com/
www.xtdos.com/
www.gbafun.com/
www.jamsx.com/
'
myemulator.online/nintendo-64
myemulator.online/neo-geo
arcadespot.com/games/n64/
emulatorgames.online/games/n64
www.vizzed.com/play/banjo-kazooie-n64-online-nintendo-64-8906-playable
'
'
NOV_2021:i try to copy :oilswell .A game for the MSX-sytem >> search and find this game in: jamsx.com
'*****************************************************************************************************************************************************************************
04:Basic4GL and tools:
'
www.facebook.com/groups/basic4gl/
twitter.com/basic4gl?lang=en
github.com/search?q=Basic4Gl
'
gluLookAt_1.0.zip (489.94 KB) 'Basic 4Gl example
'*****************************************************************************************************************************************************************************
05:(text_mine_sweeper)
05.01:z.02_vector_minesweeper_(no folders).fin.gb 22728 bytes
05.02:00.00.txt 1240 bytes (original)
05.03:00.05.txt 3744 bytes (original)
05.04:minesweeper_notice_02.txt 1988 bytes (original)
'
5.02-5.04: copy text into Notepad and save with name.txt
(have these 4 files into the same folder)
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
05.01: z.02_vector_minesweeper_(no folders).fin.gb
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'minesweeper:0.01(2:13 PM 1/28/2019) to 1.00(5:33 PM 2/20/2019)...ctrl+z undo
'-------------------------------------------------------------------------------------------------------------------------
'pre-dim
dim v0=15'vertex-amount
dim v2=14
'-------------------------------------------------------------------------------------------------------------------------
n2:
'a
dim a,a1(50),a2,a3,a4,a5,a6
dim a04,a05
dim a$,a3$,a4$
'b
dim b$(50),b1$(50),b2$
dim b,b1,b2,b3
dim Box(2),bomb,bd#,bd1,bd2,bd3#,bd4#,bd5,bd6#
'c
dim c$
dim c,c0
'd
'dim d
'f
dim file,fe$
dim f0,f1,f2#(5),f3#(5),f4,f5,f6
dim f01,f02,f03,f04,f05,f06,f07,f08,f09,f10,f11,f12,f14,f15,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30
dim f31,f32,f33,f34,f35,f36,f37,f38,f39,f40
'h
dim h,h1
'i everywhere
dim i$
dim i,i0,i1,i2,i3,i4,i9
dim i#,i10#
dim in,in2,in3
'l
dim l0(v2,v0)
'm
dim max_b,mb0,mb1,ms(300,160),ms2(300,160),ms3(300,160),ms4(300,160)
dim mb2,mb3
dim mx,mx2,mx3,mx4,mx5,mx6#,mx7#,mx8
dim my,my2,my3,my4,my5,my6#,my7#,my8
dim mrx#(1),mry#(1),mrp
'r everywhere
dim r1
dim rc(v0)
's
dim search
't
dim t1(1),tl,tl1,ty,ty#,ty1,ty2#
'w
dim w1,w2,w as double
dim wf
'v
dim v1
dim v#(v0,1,2),vertex#(v0,1,2),ver#(v0+1,1,2)
dim ver2#(2),ver3#(2)
'x
dim x,x0,x1,x2, x3,x4,x5,x6,x7,x8,x9
'y
dim y,y0,y1,y2,y3,y4,y5,y6,y7,y9
'z
dim ze
'--------------------------------------------------------
declare sub col(b)
declare sub c2(b)
declare sub l(b,x,y)
declare sub line(i0,i1,i2,i3,i4,i5)
declare sub cr(i0,i1,i2,i3)
Function r(min,max):Return rnd()% (max - min + 1) + min:End Function
'--------------------------------------------------------
ver#( 0,0) = vec3 ( 0,10,0):ver#( 0,1) = vec3 ( 0,20,0)
ver#( 1,0) = vec3 ( 0, 0,0):ver#( 1,1) = vec3 ( 0,10,0)
ver#( 2,0) = vec3 ( 10,10,0):ver#( 2,1) = vec3 ( 10,20,0)
ver#( 3,0) = vec3 ( 10, 0,0):ver#( 3,1) = vec3 ( 10,10,0)
ver#( 4,0) = vec3 ( 0,20,0):ver#( 4,1) = vec3 ( 10,20,0)
ver#( 5,0) = vec3 ( 0, 0,0):ver#( 5,1) = vec3 ( 10, 0,0)
ver#( 6,0) = vec3 ( 0,10,0):ver#( 6,1) = vec3 ( 10,10,0)
ver#( 7,0) = vec3 ( 10,10,0):ver#( 7,1) = vec3 ( 5, 5,0)'............7
ver#( 8,0) = vec3 ( 5, 5,0):ver#( 8,1) = vec3 ( 5, 1,0)'............8
ver#( 9,0) = vec3 ( 5, 0,0):ver#( 9,1) = vec3 ( 5,20,0)
ver#(10,0) = vec3 ( 0,10,0):ver#(10,1) = vec3 ( 5,20,0)
ver#(11,0) = vec3 ( 10,10,0):ver#(11,1) = vec3 ( 5,20,0)
ver#(12,0) = vec3 ( 0,10,0):ver#(12,1) = vec3 ( 5, 0,0)
ver#(13,0) = vec3 ( 10,10,0):ver#(13,1) = vec3 ( 5, 0,0)
ver#(14,0) = vec3 (4.5,10,0):ver#(14,1) = vec3 (5.5,10,0)
ver#(15,0) = vec3 (4.5, 0,0):ver#(15,1) = vec3 (5.5, 0,0)'............15
ver#(16,1) = vec3 (1,1,1)
'
ver#(16,0) = ver#( 0,0) + vec3 ( 0,120,0)
'--------------------------------------------------------
for r1=0 to v0:rc(r1)=r(1,4):next
reset m1:for i=0 to 5:read f2#(i):next
reset m2:
for i1=0 to v2:for i=0 to v0:read l0(i1,i):next:next
'--------------------------------------------------------n5
gosub load1
bd6#=0.01'exempt
bd3#=0.1:bd4#=0.9:bd5=(bd#=bd6#)'limits:0.1-0.9,exempt bd6#
bd1=(bd#<bd3#):bd2=(bd#>bd4#):
bd#=-bd4#*bd2-bd3#*bd1-(bd1=0 and bd2=0)*bd#
bd#=-bd#*not(bd5):bd#=bd#-bd6#*bd5
'
if y4<0 then y4=0:endif:if y4>10 then y4=10:endif
if y4=0 and y5=3 then f10=true:endif
if y5>45-y4 then y5=45-y4:endif
if y5<3 then y5=4:endif
if x4<0 then x4=0:endif:if x4>10 then x4=10:endif
if x5>50-x4 then x5=50-x4:endif
if x5<3 then x5=4:endif
if x5=3 and x4=0 then f11=true:endif
'--------------------------------------------------------
'w1=WindowWidth():h1=WindowHeight():wf=WindowFullscreen()
'
w1=1600:h1=1000:
if wf then:w1=1920:h1=1080:f25=true:endif
SetWindowWidth(w1):SetWindowHeight(h1):SetWindowBorder(true):UpdateWindow()
w=.02*w1:h=-.02*h1 'gl_vertex
x3=100:y3=100: 'glVertex3f
tl=2 'texture_length.loop
tl1=5: 'smile
search=100
f31=1:f35=true
'--------------------------------------------------------n01
mrx#(0)=0.77:mry#(0)=0.575
mrx#(1)=1.02:mry#(1)=0.575
'--------------------------------------------------------
if w1=1024 and h1= 768 then mrp=0:f27=true:endif
if w1=1600 and h1=1000 then mrp=1:f28=true:endif
if w1=1920 and h1=1080 then mrp=1:f28=true:endif
'--------------------------------------------------------
if not(f27 or f28) then
Locate 1,2:col(2):print "error:set w1,h1 (window_size)"
Locate 1,3:col(2):print "...press esc"
gosub draw_buf:do:gosub mousebutton:loop
endif
'--------------------------------------------------------
Function y65(y6):a=(((y6-50)/10)-5)*-1:Return a:End Function
mx4=100:my4=50
'*****************************************************************************************************************************************
do'do.01
f19=0
x6=mx4:y6=my4 'resizetext:x6,y6:50,60,70,80,90,100
'
ty=39:ty#=ty:ty#=ty#/50:ty1=ty#*y6*1:ty=ty1+abs(ty#+1)*(6*y6/100)'text_location.y
ty2#=f2#(y65(y6)):ty2#=ty2#*y6
'
if f11 then x5=mx4:endif
if f10 then y5=ty2#:endif 'x5:field(<=x6),y5..y5=94:
'
x5=-(x5<=x6)*x5-x6*(x5>x6) 'x5:field.grv.max=x6
y5=-(y5>3)*y5-4*(y5<4) 'y5:field.min=4
max_b=x5*y5 'max.bomb
bomb=(max_b*bd#)+1 'bomb.amount
'---------------------------------------------------------------
y0=y5*10 :x0=x5*10 'rnd_bomb
y1=(y0-1)/10:x1=(x0-1)/10 'lower border*10
'-------------------------------------------------------------------------------------------------
glLoadIdentity()
gluPerspective(60, (WindowWidth()) / WindowHeight(), .01, 10000)
glMatrixMode(GL_MODELVIEW)
glLoadIdentity()
glEnable(GL_DEPTH_TEST)
glDepthFunc(GL_LEQUAL)
glClearColor(.01, .01, .01, 1)
a2=windowborder()
'-------------------------------------------------------------------------------------------------
textmode(texT_OVERLAID):'textmode(texT_simple)
resizetext(x6,y6)
'
f1=true:f06=true:f5=true
b2$="":for i=0 to x1:b2$=b2$+"#":next
do
glClear (GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT)
glLoadIdentity()
glTranslatef (0, 0, -100)
'----------------------------------------------------------------------------
gosub mouse1:gosub mouse2:gosub mouse4:gosub mouse5:gosub mousebutton
gosub key:gosub inkey
'----------------------------------------------------------------------------
gosub l_print
gosub resize
gosub arrow
gosub compare
gosub vec_draw
'----------------------------------------------------------------------------
gosub bug
DrawText():SwapBuffers ()
loop until (f5 and f09=0)
gosub game_over
loop
'*****************************************************************************************************************************************
vec_draw:
if f35 then gosub line_loop3
for y=0 to y1
for x=0 to x1
if ms4(x,y) and ms2(x,y)=0 then l(12,x,y):endif
if ms4(x,y) and ms2(x,y)>0 then l(ms2(x,y),x,y):endif
if ms3(x,y)=1 then l(14,x,y):endif
if ms3(x,y)=2 then l(13,x,y):endif
next
next
endif
return
'
key:gosub scankey:
if (f26=0 and f18) then gosub write1:f26=true:endif
return
scankey:
if f18=0 then:if (ScanKeyDown (vk_f1)) then f18=true :endif:endif'write_bug
if f18 then:if not (ScanKeyDown (vk_f1)) then f18=0:f26=0 :endif:endif
'
if f24=0 then:if (ScanKeyDown (vk_f2)) then f24=true:f25=not(f25):endif:endif
if f24 then:if not (ScanKeyDown (vk_f2)) then f24=0 :endif:endif
'
if f30=0 and (ScanKeyDown (vk_f3)) then
f30=true:f29=not(f29):f31=f31+1:if f31=7 then f31=1:endif
endif
if f30 then:if not (ScanKeyDown (vk_f3)) then f30=0 :endif:endif
'
if f36=0 then:if (ScanKeyDown (vk_f4)) then f36=true:f35=not(f35):endif:endif
if f36 then:if not (ScanKeyDown (vk_f4)) then f36=0 :endif:endif
'
if f38=0 then:if (ScanKeyDown (vk_f5)) then f38=true:f37=not(f37):endif:endif
if f38 then:if not (ScanKeyDown (vk_f5)) then f38=0 :endif:endif
return
'*********************************************************************************************************
resize:
if f4 then: gosub mouse3:gosub mousebutton:if f01 then f4=0:f5=true:endif:endif
return
'n3*********************************************************************************************************
compare:
if (f12=0 and f04=0 and f05=0 and f4=0) then
if mx<0 then mx=0 :endif:if mx>x1 then mx=x1 :endif
if my-y4<0 then my=y4 :endif:if my>y1+y4 then my=y1+y4 :endif
f02=(f01 and (ms2(mx,my-y4)=-1))
if f02 then
col(6):locate x4+mx,my:print "-"
gosub draw_buf
f02=0:f05=true:f5=true
else:
if my>y4-1 and my<=y1+y4 and mx<=x1 then
if f21=0 then
f23=(ms4(mx,my-y4)=0):f20=f20+1
f03=(f01 and (ms2(mx,my-y4)>-1) and f23)
if (f04=0 and f03) then
gosub open_zero
gosub open_number:'if f25=0 then gosub write1:f25=true:endif
gosub count_closed_numbers
endif'if (f04=0 and f03)
if f22=0 then gosub find_all_zeros:endif
endif'if f21=0 and
endif'if my>y4-1
endif'if f02
endif'if (f12=0
'
if my>y4-1 and my<=y1+y4 and mx<=x1 and mx>-1 then
if (f04=0 and f12 and f14=0 and ms4(mx,my-y4)=0) then f14=true
ms3(mx,my-y4)=ms3(mx,my-y4)+1:if ms3(mx,my-y4)=3 then ms3(mx,my-y4)=0:endif
if ms3(mx,my-y4)=0 then col(5):locate x4+mx,my:print "#":endif
if ms3(mx,my-y4)=1 then col(6):locate x4+mx,my:print "#":endif
if ms3(mx,my-y4)=2 then col(1):locate x4+mx,my:print "?":endif
col(1):
endif'if (f04=0
endif
'
if f05 then c=2
cr(0,y6-1,x6,y6-1)
do:
gosub mb3:gosub mouse3:cr(0,y6-1,x6,y6-1):
gosub t1:gosub t2:gosub t3:gosub draw_buf:
loop until f08:f08=0
gosub game_over:c=1:f1=true:f4=true:f5=true:f09=0
endif
'game_win:
return
'*********************************************************************************************************
open_zero:
if ms2(mx,my-y4)=0 and ms4(mx,my-y4)=0 then:f04=true:f09=true:ms4(mx,my-y4)=true:endif
return
'*********************************************************************************************************
open_number:
if ms2(mx,my-y4)>0 and ms4(mx,my-y4)=0 then:f04=true:f09=true:ms4(mx,my-y4)=true:f22=true:endif
return
'*********************************************************************************************************
find_all_zeros:
my5=my:mx5=mx:col(7)
for i9=0 to search
for my=0 to y1
for mx=0 to x1
if ms2(mx,my)=0 and ms4(mx,my) then 'at a zero and open
if my>0 then'...up
if ms2(mx,my-1)=0 and ms4(mx,my-1)=0 then ms4(mx,my-1)=true:endif
endif
'
if my<y1 then'...down
if ms2(mx,my+1)=0 and ms4(mx,my+1)=0 then ms4(mx,my+1)=true:endif
endif
'
if mx>0 then'...left
if ms2(mx-1,my)=0 and ms4(mx-1,my)=0 then ms4(mx-1,my)=true:endif
endif
'
if mx<x1 then'...right
if ms2(mx+1,my)=0 and ms4(mx+1,my)=0 then ms4(mx+1,my)=true:endif
endif
endif
next
next
next'i0
'
for my=0 to y1'open_numbers
for mx=0 to x1
if ms2(mx,my)=0 and ms4(mx,my) then 'at a zero and open
'
if my>0 then'...up
if ms2(mx,my-1)>0 and ms4(mx,my-1)=0 then ms4(mx,my-1)=true:endif
if mx>0 and mx<=x1 then 'left
if ms2(mx-1,my-1)>-1 and ms4(mx-1,my-1)=0 then ms4(mx-1,my-1)=true:endif
endif'if mx>0
if mx>-1 and mx<x1 then 'right
if ms2(mx+1,my-1)>-1 and ms4(mx+1,my-1)=0 then ms4(mx+1,my-1)=true:endif
endif'if mx>-1
endif
'
if my<y1 then'...down
if ms2(mx,my+1)>0 and ms4(mx,my+1)=0 then ms4(mx,my+1)=true:endif
if mx>0 and mx<=x1 then'left
if ms2(mx-1,my+1)>-1 and ms4(mx-1,my+1)=0 then ms4(mx-1,my+1)=true:endif
endif'if mx>0
if mx>-1 and mx<x1 then'right
if ms2(mx+1,my+1)>-1 and ms4(mx+1,my+1)=0 then ms4(mx+1,my+1)=true:endif
endif'if mx>-1
endif
'
if mx>0 then'...left
if ms2(mx-1,my)>0 and ms4(mx-1,my)=0 then ms4(mx-1,my)=true:endif
endif
'
if mx<x1 then'...right
if ms2(mx+1,my)>0 and ms4(mx+1,my)=0 then ms4(mx+1,my)=true:endif
endif
endif
next
next
'
gosub count_closed_numbers:
my=my5:mx=mx5:f21=true:search=search/2:if search<10 then search=10:endif
return
'*********************************************************************************************************
count_closed_numbers:
a4=0:col(7)
for my=0 to y1
for mx=0 to x1: i0=ms2(mx,my):i1=ms4(mx,my):i2=ms3 (mx,my):i3=mx+x4:i4=my+y4
if i0>-1 and i1=0 then a4=a4+1:endif
if i0= 0 and i1 then col(7): locate i3,i4:print "." :endif
if i0> 0 and i1 then col(7): locate i3,i4:print i0 :ms3 (mx,my)=0:endif
if f37 and i1=0 then locate i3,i4:print" ":f39=true :endif'f5
if f37=0 and i1=0 and i2=0 then col(5):locate i3,i4:print"#":f40=true:f39=0:endif
next
next
if f39 then f37=1:f39=0:endif
if a4=0 then f05=true:f19=true:endif
return
'*********************************************************************************************************
t2: col(5):locate x6-19,y6-1:print "|game.over|mx:";mx4;" ":Return
'*********************************************************************************************************
t3: if f19 then:col(2):locate x6-19,y6-2:print " |YOU.WIN!| ":endif:Return
'*********************************************************************************************************
sub cr(i0,i1,i2,i3):textmode(texT_simple):clearregion(i0,i1,i2,i3):textmode(texT_OVERLAID):end sub
'*********************************************************************************************************
game_over:
for y=0 to y1:for x=0 to x1:ms2(x,y)=0:ms(x,y)=0:ms3(x,y)=0:ms4(x,y)=0:next:next
f05=0:f1=true:f4=true:f5=true
clearregion (0,y4,x1,y1+y4):clearregion (20,40,30,40)
return
'*********************************************************************************************************
draw_buf:drawtext():SwapBuffers ():return
'*********************************************************************************************************
mousebutton:
if f01=0 then :mb0=mouse_button(0):if mb0 then f01=true:f21=0:f22=0:endif:endif
if (f01 and mouse_button(0)=0) then f04=0:f01=0: f1=0:f4=0:mb0=0:endif
if f12=0 then :mb1=mouse_button(1):if mb1 then f12=true:endif:endif
if (f12 and mouse_button(1)=0) then f12=0:f14=0:mb1=0:endif
return
'*********************************************************************************************************
sub col(b):
color(255*-(b=5 or b=4 or b=6)-200*(b=7),255*-(b=2 or b=1 or b=6)-200*(b=7),255*-(b=3 or b=4 or b=1)-200*(b=7)):
end sub'4:101,5:110,6:011,7:grey
sub c2(b):
glColor3f(-(b=5 or b=4 or b=1)-.75*(b=7),-(b=2 or b=1 or b=6)-.75*(b=7),1*-(b=3 or b=4 or b=6)-.75*(b=7))
end sub
'n1*********************************************************************************************************
l_print:
if f1 then:
col(5):for y=0 to y1:locate x4,y+y4:print b2$:next:
f1=0:f06=0:f4=true
'
for a=1 to bomb
do
x=(rnd()%x0)/10:y=(rnd()%y0)/10
if not(ms(x,y)) then
ms(x,y)=true:f0=true:
if x=0 then b1=b1+1:endif
else:f0=0:
endif
loop until f0
next
'
x=0 '3 cases,'left,middle and right case,case_1:
for y2=0 to y1
if not(ms(x,y2)) then b3=b3+1
if y2=0 then
ms2(x,y2)=-ms(x+1,y2)-ms(x+1,y2+1)-ms(x,y2+1)
endif
if y2>0 and y2<y1 then
ms2(x,y2)=-ms(x,y2-1)-ms(x+1,y2-1)-ms(x+1,y2)-ms(x+1,y2+1)-ms(x,y2+1)
endif
if y2=y1 then
ms2(x,y2)=-ms(x,y2-1)-ms(x+1,y2-1)-ms(x+1,y2)
endif
endif
next
'
for x=1 to x1'case_2
for y2=0 to y1
if not(ms(x,y2)) then b3=b3+1
if y2=0 then
ms2(x,y2)=-ms(x-1,y2)-ms(x-1,y2+1)-ms(x,y2+1)-ms(x+1,y2+1)-ms(x+1,y2)
endif
if y2>0 and y2<y1 then
ms2(x,y2)=-ms(x-1,y2-1)-ms(x-1,y2)-ms(x-1,y2+1) -ms(x,y2-1)-ms(x,y2+1) -ms(x+1,y2-1)-ms(x+1,y2)-ms(x+1,y2+1)
endif
if y2=y1 then
ms2(x,y2)=-ms(x-1,y2)-ms(x-1,y2-1) -ms(x,y2-1) -ms(x+1,y2)-ms(x+1,y2-1)
endif
endif
next
next
'
x=x1'case_3
for y2=0 to y1
if not(ms(x,y2)) then b3=b3+1
if y2=0 then
ms2(x,y2)=-ms(x-1,y2)-ms(x-1,y2+1)-ms(x,y2+1)
endif
if y2>0 and y2<y1 then
ms2(x,y2)=-ms(x,y2-1)-ms(x-1,y2-1) -ms(x-1,y2) -ms(x-1,y2+1)-ms(x,y2+1)
endif
if y2=y1 then
ms2(x,y2)=-ms(x,y2-1)-ms(x-1,y2-1) -ms(x-1,y2)
endif
endif
next
'
gosub text_begin
'
for y=0 to y1:for x=0 to x1:if ms(x,y) then ms2(x,y) = -1:endif:next:next
endif'if f1
return
'*********************************************************************************************************
text_begin:
locate 0,ty+6:for r1=0 to x6-1:print"-";:next:printr
col(2): locate x6-24,ty+7 :print "minesweeper 1.04";:col(7):print"_2.28.19"
col(5): locate x6-14,ty+8 :print "mouse.adjust"
col(1)
return
'*********************************************************************************************************
bug:
c=1:gosub t1
col(2): locate 0,ty+7:print "x1/y1:";x1;"/";y1;"__bomb.max:";max_b;"__bomb.amount.";bd#*100;"%:";bomb;" ** "
col(4):'gosub look_bomb
'
locate 0,ty+8 :print "mx/my:";mx;"/";my"__my/my6:";my;"/";int(my6#);" "
return
'*********************************************************************************************************
look_bomb:
if mx>-1 and my>y4-1 then
if ms(mx,my-y4) then col(6) else col(5):endif
locate 0,ty+11:print "bomb:"; ms(mx,my-y4) ;" "
col(4): locate 10,ty+11:print "ms2:" ;ms2(mx,my-y4) ;" "
endif
return
'*********************************************************************************************************
t1:col(3): '1:light_blue,2:green
locate 0,ty+9:print "wf:";wf;" "
locate 0,ty+10:col(5):print "a4:";a4:col(1):print"__x2/y7:";x2;"/";y7;"__f31:";f31;" "
return
'n4*********************************************************************************************************
mouse1: mx =INT(mouse_x()*x6)-x4 :my =INT(mouse_y()*y6) :return
mouse2: mx2 =INT(mouse_x()*w1+1) :my2 =INT(mouse_y()*h1) :return
mouse3: mx3 =INT(mouse_x()*105)+50 :mx4 =(mx3/10)*10
my3 =INT(mouse_y()*55)+50 :my4 =(my3/10)*10 :return
mouse4: mx6#=(mouse_x()*200-100)*mrx#(mrp):my6#=-(mouse_y()*200-100)*mry#(mrp):return
mouse5: mx8=(mouse_x()*12-6):my8=(mouse_y()*12-6):
x9=(x1+1)*12+5
if scankeydown(vk_CONTROL) then
f33=(mx8> 2):if f33 and (-x2<x9) then x2=x2+(f33)*f31:endif
f34=(mx8<-2):if f34 and (-x2>0) then x2=x2-(f34)*f31:endif
y9=y1*22-5
f33=(my8> 2):if f33 and (y7<y9) then:y7=y7-(f33)*f31:endif
f34=(my8<-2):if f34 and (y7>0) then:y7=y7+(f34)*f31:endif
endif
return
'*********************************************************************************************************
line_loop3:c2(1)
glBegin (GL_LINE_LOOP)
glVertex3f( x2-5 ,y7 +1*22 ,0) :glVertex3f(x2+(x1+1)*12+5,y7 +1*22 ,0)
glVertex3f( x2+(x1+1)*12+5,y7-y1*22-5,0) :glVertex3f(x2-5 ,y7-y1*22-5,0)
glend()
return
'*********************************************************************************************************
arrow:
if f25 then
gllinewidth(1):glcolor3f(0,1,0):
glBegin (GL_LINES)
glVertex3f(mx6# ,my6#-10 ,0):glVertex3f(mx6# ,my6# ,0)
glVertex3f(mx6#-1 ,my6#-3 ,0):glVertex3f(mx6#-.10 ,my6#-.4 ,0)
glVertex3f(mx6#+1 ,my6#-3 ,0):glVertex3f(mx6#+.10 ,my6#-.4 ,0)
glend()
endif
return
'*********************************************************************************************************
sub line(i0,i1,i2,i3,i4,i5):glVertex3f(i0,i1,i2):glVertex3f(i3,i4,i5):end sub
'*********************************************************************************************************
mb2 :do:mb1=mouse_button(1):loop until mb1 :return
mb20:do:mb1=mouse_button(1):loop until not(mb1):return
'
mb3 : gosub mb
if (f07=0 and mb1) then f07=true :endif
if (f07 and mb1=0) then f07=0:f08=true:endif
return
'
mb:mb1=mouse_button(1):mb0=mouse_button(0):return
'*********************************************************************************************************
load1:
file = openfileread("00.00.txt") '("files/00.00.txt")
fe$=FileError ():if fe$ <> "" then col(7):Locate 1,23:print fe$:Locate 1,24:col(2):print "error occured...press esc":
gosub draw_buf:do:gosub mousebutton:loop:endif
'
i$=ReadLine(file):i$=ReadLine(file)
i$=ReadLine(file):i$=left$(i$,10):bd#=val(i$)
i$=ReadLine(file):i$=left$(i$,10):y4 =val(i$)
i$=ReadLine(file):i$=left$(i$,10):y5 =val(i$)
i$=ReadLine(file):i$=left$(i$,10):x4 =val(i$)
i$=ReadLine(file):i$=left$(i$,10):x5 =val(i$)
'
CloseFile (file)
return
'*********************************************************************************************************
write1:
file = openfilewrite("00.05.txt")'("files/00.05.txt")
'
for y=0 to y1
for x=0 to x1
if ms4(x,y) and ms2(x,y)=0 then a$=".":endif
if ms4(x,y) and ms2(x,y)>0 then a$=str$(ms2(x,y)):a$=left$(a$,len(a$)-1):endif
if ms4(x,y)=0 then a$="*":endif
c$=c$+a$
next
writeLine(file,c$):c$=""
next
'
CloseFile (file)
return
''*********************************************************************************************************
sub l(b,x,y)'ver#( 0,0) = ver#( 0,0) +vec3 ( 0,120,0)
gllinewidth(4)
glBegin (GL_lineS)
for v1=0 to v0'15
if l0(b,v1) then c2(rc(v1)):
ver2#=ver#(v1,0)+vec3(x2+x*12,y7-y*22,0):ver3#=ver#(v1,1)+vec3(x2+x*12,y7-y*22,0)
glVertex3fv (ver2#):glVertex3fv (ver3#)
endif
next
glend()
end sub
'*********************************************************************************************************
inscan:
a04=PerformanceCounter():
if a04>(a05+500) then f29=0:f6=0:endif'
if f29=0 then in=InScanKey():if in<>0 then in2=in:in3=in3+1:clearkeys():endif:endif
if f29=0 then f6=in2:f29=true:in2=0:a05=PerformanceCounter():endif:
return
'*********************************************************************************************************
inkey:a3$=inkey$():if a3$<>"" then a4$=a3$:a5=asc(a4$):a6=a5-97:endif:return
'*********************************************************************************************************
m1:
data .94'100
data .85' 90
data .86' 80
data .86' 70
data .88' 60
data .90' 50
'
'data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
m2:
data 1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0'0
data 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0'1
data 0,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0'2
data 0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0'3
data 1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0'4
data 1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0'5
data 1,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0'6
data 0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0'7
data 1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0'8
data 1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0'9
data 0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0'#...10
data 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0'-...11
data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0'.___12
data 0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,1'?...13
data 0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0'<>...14
'0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
05.02: 00.00.txt
minesweeper:12:39 PM 2/20/2019 '(1st line)
----------------------------------------------------------------------------------------------------------
0.1 'a:bomb_factor:0.1-0.9
0 'b:upper_border.y4:0-10
3 'c:y_lenght.y5 4 - (45-y4) '3 for long field '
0 'd:left.border.x4:0-10
3 'e:x_wide.x5 4 - (50-x4) '3 for long field
----------------------------------------------------------------------------------------------------------
bomb.amount=maximal.bomb*bomb_factor
bomb.factor 0.0:no bomb
bomb.factor 0.9:bomb.amount=maximal(90%_field)
------------------------------------------------------
choose.long.field:
'
choose.maximale lenght.y5:
upper_border:0
y_lenght.y5:3
'
choose.maximale lenght.x5:
left.border.x4:0
x_wide.x5:3
------------------------------------------------------
choose.a.short.field:
'
upper_border.y4 :00 to 10
y_lenght.y5 :4 to 45-y4
'
left.border.x4 :0 to 10
x_wide.x5 :4 to 50-x4
------------------------------------------------------
example:choose long field
a:0.3,
b:0,
c:3, '3 for a long_field
d:0,
e:3 '3 for a long_field
'
example:choose a short field
a:0.5,
b:10,
c:10,
d:10,
e:10
------------------------------------------------------
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
05.03: 00.05.txt
****1............1**2.......1******1.1*1..1**1............1***********
**211............1**2...111.1******1.1*1..1**211....111...1*212*******
*21..111111.111..1221...1*1122211111.111..12***1....2*2...111.12******
*1...1****2.1*1.........12***1.............1*211....2*2........1******
*1...12***2.111..........1***1..........1122*1......111111...112******
*1....1***1......111..11112**1..........2****211.....1***1...1********
11....12**111....1*3211*1.12*1...111...13******1.....1***21112********
*.111..1****1....12**2111..111..12*1...1****1111..1111****************
.*1*1..111111.....13*2..........1**21..1111*1.....1*******************
*.1*21.............111.111......112*1.....111.....1*******************
.*1**1......111........1*1........1*1.111.........1*******************
11**21...1111*1......112*1......123*112*1.........1*******************
**211....1****11232212***111..112*******1.........111*****************
111......1*****************1..2*********11..........1*****************
........11****1123*211111111..3**********1.....111..1*****************
.....1111*****1..1*1..........2**********21....1*1..122***************
111112*1112***11.1*1.....1221.1***********1....111....1**213**********
******21..1111*1.111..1112**321***********1......111..1*21.3*******311
******1......111......1*******************1......1*1..111..3*****321..
******1.......111...112**21223************1111...111.......2*311*1....
******111....12*21..1*1111...1***************1.............111.111111.
********1111.1***1..111......111.**********211.111111.............1*1.
***********1.11211......111.....1*********11...1****1.............111.
***********2............1*1.....1*********1....1****2111..111.........
***********21...........111.....1111*1112*1..111*******1..1*1.....1221
************1..111....111..111.....1*1..111..1*********1..2*2.....1***
***********11..1*211..1*1..1*1...123*1.......12********11.1*1....12***
**********.*.112***1113*2..111...2***11.......1*********211*1....1****
**********1.12**********1........2****211.....2*************111..1****
**********211***********1........111112*1...112***************2211****
************************1.............1122211*************************
************************1...111.........1*****************************
***********************21...1*1....111112*****************************
***********************1....1*1....1**********************************
***********************31...1*1111.111********************************
************************1...1****1...1********************************
************************1...2*21221..1********************************
************************11.13*2.1*1..2********************************
********************2212*1.1**2.111..1********************************
******************211..111.1221......11*******************************
******************1...............111.*.******************************
******************1111.....111....1*1*.*.*****************************
*********************1.....1*211111*1.*.1*****************************
*********************2.....12*******12111*****************************
*********************1.111..1*****************************************
*********************212*3221*****************************************
**********************************************************************
**********************************************************************
**********************************************************************
**********************************************************************
**********************************************************************
**********************************************************************
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
05.04: minesweeper_notice_02.txt
"minesweeper 2.00"__"_3.13.19"
z.01_vector_minesweeper_03.fin.gb
***************************************************************************
start Game with GO:
use mouse_X and mouse_Y to change field_size
put mouse_pointer over a :# and
click (with left mouse_button) on to this: #
to open this particluar spot(#)
now we hope that here is no bomb
the game is over if you click a bomb:
***
*3*
***
------> around number 3 can be found :3 Bombs
try not to click the bombs (-).(or GAME OVER)
'
choose particular spot (#) and click right mouse_button (RMB) 2 times:
**?
*3*
***
? appear to indicate that here could be (or maybe) a bomb
if you are sure that here is a bomb then click RMB only one time:a yellow #
'
(if here is no bomb then a number appears to explain how many bombs
surround this number)
'
clear the whole field without finding a bomb
sometimes click left mouse_button a few times to clear the field
***************************************************************************
before you start a game you have the option:Fullscreen_mode :yes/no
with mouse choose:
Settings/Basic Runtime Settings/
check :Fullscreen
and :OK
***************************************************************************
'f-keys:
'f01:write bug:00.05.txt...1:06 PM 3/11/2019,12:21 PM 10/21/2021
'f02:arrow on/off
'f03:scroll_speed:1,2,3,4 for vector_graphic
'ctrl+(mouse_x,mouse_y):scroll.vector_graphic
'f04:vector_graphic.on/off
'f05:# ON/OFF
'***************************************************************************
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++