This is my newest FB game, the "Castles", which is an ugly copy of Sami Tammilehto's "The castle" (1991).
The concept is the same as in that game: destroy the other castle with cannon ball.
Probably I will continue to develop this game (e.g. the players can buy bigger castles, stronger bullets, etc.), but you can use the source code free to develop your games from it.
Enjoy! :-)
Code: Select all
#include "fbgfx.bi"
Using FB
randomize
const kepszel=640 : const kepmag=480
const palyaszel=1280 : const palyamag=600
Const pi As Double=3.1415926535897932
dim shared as any ptr varkepe1,varkepe2,talajkep
dim shared vartomb(2,64*64,3) as integer
dim shared as integer var1x,var1y,var2x,var2y,var1lovirany,var2lovirany,nezetx,nezety,var1szel,var1mag,var2szel,var2mag
dim shared as ubyte var1letezik,var2letezik,aktivvar,var1lovseb,var2lovseb,koratadoidozito,nyelv,jatekallapot,var1maxepseg,var2maxepseg,var1mostepseg,var2mostepseg
dim shared as string nyertes
type targyak
as ubyte letezik,sebesseg,mitcsinal
as integer xhely,yhely,tav,ossztav,irany
end type
dim shared lovedek as targyak
dim shared darabka(15) as targyak
agyugolyo:
data 8
data 8
Data 5,5,7,7,7,7,5,5
Data 5,7,7,7,7,7,7,5
Data 7,7,7,7,7,7,7,7
Data 7,7,7,7,7,7,7,7
Data 7,7,2,2,2,2,2,7
Data 7,7,2,2,2,2,2,7
Data 5,7,2,2,2,2,7,5
Data 5,5,7,7,7,7,5,5
kastely1:
Data 64
Data 64
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,5,5,5,2,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,2,2,2,2,2,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,2,2,2,2,2,2,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,2,5,5,5,2,2,2,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,2,2,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,2,2,2,2,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,2,2,2,2,2,2,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,2,2,2,2,2,2,2,2,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,2,2,2,2,2,2,2,2,2,2,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,2,2,2,2,2,2,2,2,2,2,2,2,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,7,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,7,7,7,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,7,7,7,7,7,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
Data 4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4
Data 4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4
Data 4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
kastely2:
Data 64
Data 64
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,5,5,5,3,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,5,5,5,3,3,3,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,3,3,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,3,3,3,3,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,3,3,3,3,3,3,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,3,3,3,3,3,3,3,3,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,3,3,3,3,3,3,3,3,3,3,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,3,3,3,3,3,3,3,3,3,3,3,3,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,7,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,7,7,7,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,7,7,7,7,7,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
Data 4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4
Data 4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4
Data 4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4,5,5,5,5,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,7,3,7,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
sub nezetigazitas(xkozep as integer,ykozep as integer)
if xkozep-(kepszel/2)<0 then
nezetx=0
elseif xkozep+(kepszel/2)>palyaszel then
nezetx=palyaszel-kepszel
else
nezetx=xkozep-(kepszel/2)
end if
if ykozep-(kepmag/2)<0 then
nezety=0
elseif ykozep+(kepmag/2)>palyamag then
nezety=palyamag-kepmag
else
nezety=ykozep-(kepmag/2)
end if
end sub
sub kiszinezo(erteke as integer,rajzxhely as integer,rajzyhely as integer,mit as ubyte)
Select case erteke
Case 0
Color rgb(255,0,255) 'bíbor (maszk szín 16 és 32 bites képeknek)
Case 1
Color rgb(0,255,0) 'zöld szín
Case 2
Color rgb(255,0,0) 'vörös
Case 3
Color rgb(0,0,255) 'kék
Case 4
Color rgb(255,255,255) 'fehér
Case 5
Color rgb(0,0,0) 'fekete
Case 6
Color rgb(255,255,0) 'sárga
Case 7
Color rgb(128,128,128) 'szürke
Case 8
Color rgb(0,0,255) 'ezt még nem döntöttem el
Case 9
Color rgb(0,0,255) 'meg ezt sem
End Select
select case mit
case 0:
Pset talajkep,(rajzxhely,rajzyhely)
case 1:
Pset (rajzxhely,rajzyhely)
end select
End sub
sub varcsinalo(melyik as ubyte, varxhely as integer, varyhely as integer)
dim as integer szelesseg,magassag,i,j,ertek,keppont
if melyik=1 then
restore kastely1
else
restore kastely2
end if
read szelesseg
read magassag
if melyik=1 then
var1szel=szelesseg : var1mag=magassag : var1maxepseg=100 : var1mostepseg=var1maxepseg
else
var2szel=szelesseg : var2mag=magassag : var2maxepseg=100 : var2mostepseg=var2maxepseg
end if
dim rajzxhely as integer=varxhely
dim rajzyhely as integer=varyhely
keppont=1
For j=1 To magassag
For i=1 To szelesseg
Read ertek
If ertek<>0 Then
kiszinezo(ertek,rajzxhely,rajzyhely,0)
vartomb(melyik,keppont,0)=rajzxhely
vartomb(melyik,keppont,1)=rajzyhely
vartomb(melyik,keppont,2)=ertek
keppont+=1
end if
rajzxhely=rajzxhely+1
If i=szelesseg then
rajzyhely=rajzyhely+1
rajzxhely=rajzxhely-szelesseg
End If
Next i
Next j
end sub
sub varkirajzolo(melyik as ubyte,xstart as integer, ystart as integer)
dim as integer sz,m
if melyik=1 then
sz=var1szel : m=var1mag
else
sz=var2szel : m=var2mag
end if
for p as integer=1 to sz*m
if vartomb(melyik,p,2)<>5 then
Select case vartomb(melyik,p,2)
Case 0
Color rgb(255,0,255) 'bíbor (maszk szín 16 és 32 bites képeknek)
Case 1
Color rgb(0,255,0) 'zöld szín
Case 2
Color rgb(255,0,0) 'vörös
Case 3
Color rgb(0,0,255) 'kék
Case 4
Color rgb(255,255,255) 'fehér
Case 5
Color rgb(0,0,0) 'fekete
Case 6
Color rgb(255,255,0) 'sárga
Case 7
Color rgb(128,128,128) 'szürke
Case 8
Color rgb(0,0,255) 'ezt még nem döntöttem el
Case 9
Color rgb(0,0,255) 'meg ezt sem
End Select
pset talajkep,(vartomb(melyik,p,0),vartomb(melyik,p,1))
end if
next p
end sub
sub lovedekrajzolo(ittx as integer,itty as integer)
dim as ubyte szelesseg,magassag,ertek,kilepes,talalatvar1be,talalatvar2be
restore agyugolyo
read szelesseg
read magassag
dim rajzxhely as integer=ittx-szelesseg/2
dim rajzyhely as integer=itty-magassag/2
kilepes=0 : talalatvar1be=0 : talalatvar2be=0
For j as integer=itty-magassag/2 To itty+magassag/2
For i as integer=ittx-szelesseg/2 To ittx+szelesseg/2
if point(i+nezetx,j+nezety,talajkep)=rgb(0,255,0) then
for ujj as integer=(j+nezety)-magassag/2 To (j+nezety)+magassag/2
For uji as integer=(i+nezetx)-szelesseg/2 To (i+nezetx)+szelesseg/2
Color rgb(0,0,0)
pset talajkep,(uji,ujj)
next uji
next ujj
kilepes=1 : exit for
elseif var1letezik=1 and i+nezetx>=var1x and i+nezetx<=var1x+var1szel and j+nezety>=var1y and j+nezety<=var1y+var1mag then
for sz as integer=ittx-szelesseg/2 to ittx+szelesseg/2
for m as integer=itty-magassag/2 to itty+magassag/2
for p as integer=0 to var1szel*var1mag
if sz+nezetx=vartomb(1,p,0) and m+nezety=vartomb(1,p,1) and vartomb(1,p,2)<>5 then
talalatvar1be=1
Color rgb(0,0,0)
pset talajkep,(vartomb(1,p,0),vartomb(1,p,1))
vartomb(1,p,2)=5 : kilepes=1
end if
next p
next m
next sz
elseif var2letezik=1 and i+nezetx>=var2x and i+nezetx<=var2x+var2szel and j+nezety>=var2y and j+nezety<=var2y+var2mag then
for sz as integer=ittx-szelesseg/2 to ittx+szelesseg/2
for m as integer=itty-magassag/2 to itty+magassag/2
for p as integer=0 to var2szel*var2mag
if sz+nezetx=vartomb(2,p,0) and m+nezety=vartomb(2,p,1) and vartomb(2,p,2)<>5 then
talalatvar2be=1
Color rgb(0,0,0)
pset talajkep,(vartomb(2,p,0),vartomb(2,p,1))
vartomb(2,p,2)=5 : kilepes=1
end if
next p
next m
next sz
end if
if kilepes=1 then exit for
next i
if kilepes=1 then exit for
next j
if kilepes=1 then
dim as ubyte ddb=0
for i as integer=rajzxhely to rajzxhely+15
if int(rnd*4)>2 then
darabka(ddb).letezik=1
darabka(ddb).xhely=i
darabka(ddb).yhely=rajzyhely
darabka(ddb).sebesseg=int(rnd*10)+1
darabka(ddb).irany=int(rnd*50)+1 'Az irany változó itt most élettartamot jelent!
ddb+=1
end if
next i
if talalatvar1be=1 then
var1mostepseg-=1
if var1mostepseg<25 then
nyertes="2."
var1letezik=0 : var2letezik=0 : lovedek.letezik=0
for i as ubyte=0 to 15
if darabka(i).letezik=1 then darabka(i).letezik=0
next i
imagedestroy talajkep
jatekallapot=3
end if
end if
if talalatvar2be=1 then
var2mostepseg-=1
if var2mostepseg<25 then
nyertes="1."
var1letezik=0 : var2letezik=0 : lovedek.letezik=0
for i as ubyte=0 to 15
if darabka(i).letezik=1 then darabka(i).letezik=0
next i
imagedestroy talajkep
jatekallapot=3
end if
end if
koratadoidozito=100
lovedek.letezik=0
else
For j as ubyte=1 To magassag
For i as ubyte=1 To szelesseg
Read ertek
If ertek<>0 Then
kiszinezo(ertek,rajzxhely,rajzyhely,1)
end if
rajzxhely=rajzxhely+1
If i=szelesseg then
rajzyhely=rajzyhely+1
rajzxhely=rajzxhely-szelesseg
End If
Next i
Next j
end if
end sub
sub talajcsinalo()
dim as integer eddig,elozocsucs
dim as ubyte tav,tavszamlalo
for i as integer=0 to palyaszel
for j as integer=0 to palyamag/2
if int(rnd*1000)=100 then
Color rgb(255,255,255)
pset talajkep,(i,j)
end if
next j
next i
elozocsucs=int(rnd*palyamag/2)+5 : tav=int(rnd*200)+1 : tavszamlalo=0
for i as integer=0 to palyaszel
if i>=var1x and i<=var1x+var1szel then
for j as integer=var1y+var1mag to palyamag
Color rgb(0,255,0)
pset talajkep,(i,j)
next j
eddig=var1y
elseif i>=var2x and i<=var2x+var2szel then
for j as integer=var2y+var2mag to palyamag
Color rgb(0,255,0)
pset talajkep,(i,j)
next j
eddig=var2y
else
if tavszamlalo<tav/2 then
eddig=elozocsucs+1
else
eddig=elozocsucs-1
end if
for j as integer=palyamag to palyamag-eddig step -1
Color rgb(0,255,0)
pset talajkep,(i,j)
next j
end if
tavszamlalo+=1 : elozocsucs=eddig
if tavszamlalo>=tav then
tav=int(rnd*200)+10 : tavszamlalo=0
end if
next i
end sub
function pontirany(x1 as integer,y1 as integer,x2 as integer,y2 as integer) as double
dim as double szam
szam=atan2(y2-y1,x2-x1)
if szam<0 then
szam=szam+2*pi
end if
return 360-(szam*180)/pi
end function
'---------FŐPROGRAM---------
screenres kepszel,kepmag,32
nyelv=1 : jatekallapot=1
do
select case jatekallapot
case 1
screenlock
cls
if nyelv=1 then
dim sz0 as string="CASTLES"
dim sz1 as string="Keszitette: ITomi (2016), v.demo"
dim sz2 as string="KEZDES: <SZOKOZ>; KILEPES: <ESC>; IN ENGLISH: <L>"
dim sz3 as string="Otletet Sami Tammilehto 1991-es The castle cimu jateka adta"
dim sz4 as string="<Alt>+<ENTER>; ablakos/teljeskepernyos mod"
dim sz5 as string="Kulon koszonet a FreeBasic keszitoinek es a forumkozossege tagjainak!"
draw string (320-(8*len(sz0)/2),5),sz0
draw string (320-(8*len(sz1)/2),20),sz1
draw string (5,30),sz3
draw string (5,80),sz2
draw string (10,140),sz4
draw string (5,160),sz5
else
dim sz0 as string="CASTLES"
dim sz1 as string="By: ITomi (2016), v.demo"
dim sz2 as string="BEGIN: <SPACE>; EXIT: <ESC>; MAGYARUL: <L>"
dim sz3 as string="Idea by Sami Tammilehto's game The castle from 1991"
dim sz4 as string="<Alt>+<ENTER>; windowed/full screen mode"
dim sz5 as string="Special thanks for the creators of FreeBasic and members of its community!"
draw string (320-(8*len(sz0)/2),5),sz0
draw string (320-(8*len(sz1)/2),20),sz1
draw string (5,30),sz3
draw string (5,80),sz2
draw string (10,140),sz4
draw string (5,160),sz5
end if
if multikey(sc_escape) then jatekallapot=0
if multikey(sc_L) then
if nyelv=1 then
nyelv=2
else
nyelv=1
end if
end if
if multikey(sc_space) then
cls
talajkep=imagecreate(palyaszel,palyamag)
do
var1x=int(rnd*palyaszel/2) : var1y=palyamag/2+int(rnd*palyamag/4)
var2x=palyaszel/2+int(rnd*palyaszel/2)-64 : var2y=palyamag/2+int(rnd*palyamag/4)
loop until abs(var1x-var2x)>kepszel
varcsinalo(1,var1x,var1y) : var1letezik=1
varcsinalo(2,var2x,var2y) : var2letezik=1
var1lovirany=45 : var2lovirany=135
var1lovseb=4 : var2lovseb=4
aktivvar=1
talajcsinalo()
nezetx=0 : nezety=0
nezetigazitas(var1x,var1y)
lovedek.letezik=0
jatekallapot=2
end if
screenunlock
sleep 10
case 2
screenlock
cls
put (0,0),talajkep,(nezetx,nezety)-(nezetx+kepszel,nezety+kepmag),add
select case aktivvar
case 1:
if lovedek.letezik=0 then
dim radianbanirany as double
dim as integer vvegex,vvegey,vvegex2,vvegey2
if multikey(sc_left) then
var1lovirany+=1
if var1lovirany>360 then var1lovirany=0
end if
if multikey(sc_right) then
var1lovirany-=1
if var1lovirany<0 then var1lovirany=360
end if
if multikey(sc_up) then
if var1lovseb<10 then var1lovseb+=1
end if
if multikey(sc_down) then
if var1lovseb>2 then var1lovseb-=1
end if
radianbanirany=(360-var1lovirany)*pi/180
vvegex=(var1x+32)+cos(radianbanirany)*32
vvegey=(var1y-4)+sin(radianbanirany)*32
Color rgb(255,0,0)
line ((var1x+32)-nezetx,(var1y-4)-nezety)-(vvegex-nezetx,vvegey-nezety)
vvegex2=(var1x+32)+cos(radianbanirany)*(32/(10/var1lovseb))
vvegey2=(var1y-4)+sin(radianbanirany)*(32/(10/var1lovseb))
Color rgb(255,255,0)
line ((var1x+32)-nezetx,(var1y-4)-nezety)-(vvegex2-nezetx,vvegey2-nezety)
end if
case 2:
if lovedek.letezik=0 then
dim radianbanirany as double
dim as integer vvegex,vvegey,vvegex2,vvegey2
if multikey(sc_left) then
var2lovirany+=1
if var2lovirany>360 then var2lovirany=0
end if
if multikey(sc_right) then
var2lovirany-=1
if var2lovirany<0 then var2lovirany=360
end if
if multikey(sc_up) then
if var2lovseb<10 then var2lovseb+=1
end if
if multikey(sc_down) then
if var2lovseb>2 then var2lovseb-=1
end if
radianbanirany=(360-var2lovirany)*pi/180
vvegex=(var2x+32)+cos(radianbanirany)*32
vvegey=(var2y-4)+sin(radianbanirany)*32
Color rgb(255,0,0)
line ((var2x+32)-nezetx,(var2y-4)-nezety)-(vvegex-nezetx,vvegey-nezety)
vvegex2=(var2x+32)+cos(radianbanirany)*(32/(10/var2lovseb))
vvegey2=(var2y-4)+sin(radianbanirany)*(32/(10/var2lovseb))
Color rgb(255,255,0)
line ((var2x+32)-nezetx,(var2y-4)-nezety)-(vvegex2-nezetx,vvegey2-nezety)
end if
end select
if multikey(sc_q) then
cls
var1letezik=0 : var2letezik=0 : lovedek.letezik=0
for i as ubyte=0 to 15
if darabka(i).letezik=1 then darabka(i).letezik=0
next i
imagedestroy talajkep
jatekallapot=1
end if
if multikey(sc_enter) and lovedek.letezik=0 and koratadoidozito<1 then
lovedek.letezik=1
select case aktivvar
case 1:
lovedek.xhely=(var1x+32)-nezetx
lovedek.yhely=(var1y-16)-nezety
lovedek.sebesseg=var1lovseb : lovedek.irany=var1lovirany : lovedek.tav=0 : lovedek.ossztav=kepszel/(10/var1lovseb) : lovedek.mitcsinal=0
case 2:
lovedek.xhely=(var2x+32)-nezetx
lovedek.yhely=(var2y-16)-nezety
lovedek.sebesseg=var2lovseb : lovedek.irany=var2lovirany : lovedek.tav=0 : lovedek.ossztav=kepszel/(10/var2lovseb) : lovedek.mitcsinal=0
end select
end if
if lovedek.letezik=1 then
dim radianbanirany as double
dim as integer elozolovx,elozolovy
select case lovedek.mitcsinal
case 0
radianbanirany=(360-lovedek.irany)*pi/180
elozolovx=lovedek.xhely : elozolovy=lovedek.yhely
lovedek.xhely=lovedek.xhely+cos(radianbanirany)*lovedek.sebesseg
lovedek.yhely=lovedek.yhely+sin(radianbanirany)*lovedek.sebesseg
if lovedek.xhely<elozolovx then
if nezetx-abs(lovedek.xhely-elozolovx)>0 then nezetx-=abs(lovedek.xhely-elozolovx)
elseif lovedek.xhely>elozolovx then
if nezetx+abs(lovedek.xhely-elozolovx)<palyaszel-kepszel then nezetx+=abs(lovedek.xhely-elozolovx)
end if
if lovedek.yhely<elozolovy then
if nezety-abs(lovedek.yhely-elozolovy)>0 then nezety-=abs(lovedek.yhely-elozolovy)
elseif lovedek.yhely>elozolovy then
if nezety+abs(lovedek.yhely-elozolovy)<palyamag-kepmag then nezety+=abs(lovedek.yhely-elozolovy)
end if
if lovedek.tav>lovedek.ossztav then lovedek.mitcsinal=1
lovedek.tav+=lovedek.sebesseg
case 1:
radianbanirany=(360-lovedek.irany)*pi/180
elozolovx=lovedek.xhely
lovedek.xhely=lovedek.xhely+cos(radianbanirany)*lovedek.sebesseg
lovedek.yhely+=lovedek.sebesseg
if lovedek.xhely<elozolovx then
if nezetx-abs(lovedek.xhely-elozolovx)>0 then nezetx-=abs(lovedek.xhely-elozolovx)
elseif lovedek.xhely>elozolovx then
if nezetx+abs(lovedek.xhely-elozolovx)<palyaszel-kepszel then nezetx+=abs(lovedek.xhely-elozolovx)
end if
if nezety+lovedek.sebesseg+kepmag<palyamag then nezety+=lovedek.sebesseg
end select
if lovedek.xhely<1 or lovedek.xhely>palyaszel or lovedek.yhely>palyamag then
koratadoidozito=100
lovedek.letezik=0
else
lovedekrajzolo(lovedek.xhely,lovedek.yhely)
end if
end if
for i as ubyte=0 to 15
if darabka(i).letezik=1 then
darabka(i).irany-=1
if darabka(i).irany<1 or point(darabka(i).xhely,darabka(i).yhely-darabka(i).sebesseg,talajkep)<>rgb(0,0,0) then
darabka(i).letezik=0
else
darabka(i).yhely-=darabka(i).sebesseg
Color rgb(255,255,0)
pset (darabka(i).xhely+nezetx,darabka(i).yhely+nezety)
end if
end if
next i
dim as integer epseg,csikhossz,epmuthossz
dim as ubyte yhely
csikhossz=100
epseg=(100*var1mostepseg)/var1maxepseg
epmuthossz=(csikhossz/epseg)/100
yhely=2
for i as ubyte=0 to 10
line (2,yhely)-(102,yhely),rgb(255,255,255)
yhely+=1
next i
yhely=2
for i as ubyte=0 to 10
line (2,yhely)-(2+epmuthossz,yhely),4
yhely+=1
next i
draw string (2,25),str(var1mostepseg)
epseg=(100*var2mostepseg)/var2maxepseg
epmuthossz=(csikhossz/epseg)/100
yhely=2
for i as ubyte=0 to 10
line (kepszel-102,yhely)-(kepszel-2,yhely),rgb(255,255,255)
yhely+=1
next i
yhely=2
for i as ubyte=0 to 10
line (kepszel-102,yhely)-((kepszel-102)+epmuthossz,yhely),9
yhely+=1
next i
draw string (kepszel-102,25),str(var2mostepseg)
Color rgb(255,255,255)
if nyelv=1 then
draw string (2,kepmag-20),"NYIL gombokkal allithato a loves milyensege, ENTER-rel lohetsz, Q-val kilephetsz."
else
draw string (2,kepmag-20),"ARROW keys to set quality of shoot, ENTER to fire, Q to quit."
end if
if koratadoidozito>0 then
koratadoidozito-=1
if koratadoidozito<1 then
if aktivvar=1 then
aktivvar=2 : nezetigazitas(var2x,var2y)
else
aktivvar=1 : nezetigazitas(var1x,var1y)
end if
end if
end if
screenunlock
sleep 10
case 3
screenlock
cls
if nyelv=1 then
draw string (5,80),"Nyert a(z): "+str(nyertes)+" jatekos! Kilepes: <Q>"
else
draw string (5,80),"The winner is the: "+str(nyertes)+" player! Exit: <Q>"
end if
if multikey(sc_q) then
cls : jatekallapot=1
end if
screenunlock
sleep 10
end select
loop until jatekallapot=0