hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.23. 09:48



Jelenlévő felhasználók

Jelenleg 317 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 317 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: nincs regisztrált felhasználó az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 27 hozzászólás ]  Oldal 1 2 3 Következő
Szerző Üzenet
 Hozzászólás témája: Hangyaboly
HozzászólásElküldve: 2013.03.27. 13:14 
Offline
Imperátor
Avatar

Csatlakozott: 2009.04.21. 09:33
Hozzászólások: 3991
Megköszönt másnak: 5 alkalommal
Megköszönték neki: 135 alkalommal
Lenne egy feladatom a számotokra, érdekel ki tudná megoldani.
Egy programot kellene írni, ami szimulálja 1 percen keresztül (később akár tovább is) egy hangyaboly életét.
A hangyabolyban kezdetben van
- N db munkás,
- M db harcos és
- 1 db királynő
A kezdeti értékek eltárolódnak.

Működés:
Minden másodperc végén az alábbiak történnek (sorban):
- Támadás éri a bolyt
- Táplálékot fogyasztanak
- Táplálékot gyűjtenek
- Szaporodnak
Majd ugyanez mindez elölről.

Az egyes lépésekről:

Támadás:
- A bolyt 50% eséllyel egy 1..(aktuális_kör_száma+1)[felso]2[/felso] db ellenséges hangya támadja meg.
- A támadás során az a fél veszt, akinek kevesebb egysége van.
- A vesztes a két sereg számának különbségének az abszolút értéke lesz. Ez az érték a veszteség.
- Veszteség esetén először a harcosok, s azok elfogytával a munkások halnak meg. Ha a munkások is, akkor a hangyaboly elesett
- Ezenfelül ha a csatát a boly elvesztette, a támadó fél veszteség*2 kaját rabol:

Táplálék fogyasztása:
- minden hangya táplálékot fogyaszt, a munkás 1et, a harcos 2őt a királynő 10et.
- Először a királynő táplálkozik. Ha nincs elég kaja, meghal, és a boly elesett.
- Másodszor a katonák fogyasztanak. Amennyinek nem jut táplálék, azok mind elvesznek.
- Harmadszor a munkások fogyasztanak. Amennyiben nincs elég kaja, a maradék elveszik.

Táplálék gyűjtés:
- A boly raktárába táplálék kerül, méghozzá az aktuális munkások számának az 5szöröse.

Szaporodás:
- A királynő hangyákat hoz a világra. a szaporulat száma: kör*10
- Összesen [1..(szaporulat/2)] db harcos lesz, a maradék munkás.


Hirtelen elképzelés, ezen finomíthattok, nem gondoltam át alaposabban, sőt, mondhattok új dolgokat is bele.
Akár később meg lehetne azt is valósítani, hogy két hangyaboly viaskodik egymással felváltva :D
A megvalósításhoz elég egy konzol alkalmazás :)

_________________
Kód:
I'm back

Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Hangyaboly
HozzászólásElküldve: 2013.03.27. 13:35 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2012.10.09. 13:48
Hozzászólások: 1439
Megköszönték neki: 174 alkalommal
Valaki unatkozik :D

_________________
Minden jót! :)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Hangyaboly
HozzászólásElküldve: 2013.03.27. 13:45 
Offline
Veterán
Avatar

Csatlakozott: 2011.11.17. 15:48
Hozzászólások: 1904
Megköszönt másnak: 17 alkalommal
Megköszönték neki: 54 alkalommal
Metal.
Ilyent gondolom csak olyanok tudnak megírni akik már régóta ittvannak. ilyen pl. KIKI, Te Metal, HunGamer...


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Hangyaboly
HozzászólásElküldve: 2013.03.27. 13:57 
Offline
Developer
Avatar

Csatlakozott: 2011.06.01. 21:11
Hozzászólások: 7965
Megköszönt másnak: 295 alkalommal
Megköszönték neki: 537 alkalommal
pocok5 írta:
Metal.
Ilyent gondolom csak olyanok tudnak megírni akik már régóta ittvannak. ilyen pl. KIKI, Te Metal, HunGamer...



Egyedi Left 4 Dead mod = 70 % --> SZÜNETELVE

Ezek szerint te is megtudod, este 19:00-ig kapsz időt, utána bannollak ha nem posztolsz megoldást :) :) :D

_________________
http://www.easyrankup.eu


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Hangyaboly
HozzászólásElküldve: 2013.03.27. 14:50 
Offline
Őskövület
Avatar

Csatlakozott: 2012.03.22. 18:22
Hozzászólások: 2978
Megköszönt másnak: 115 alkalommal
Megköszönték neki: 368 alkalommal
Szerintem hungamer nem s foglalkozik program nyelvel...
És ez off-nak számít :)

_________________
Blasenkampfwagen

https://discord.gg/uBYnNnZP
GTA:PURSUIT MTA


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Hangyaboly
HozzászólásElküldve: 2013.03.27. 15:02 
Offline
Imperátor
Avatar

Csatlakozott: 2009.04.21. 09:33
Hozzászólások: 3991
Megköszönt másnak: 5 alkalommal
Megköszönték neki: 135 alkalommal
Jelenleg az a gond h a csata nem tökéletes
írtam 1 gyors szimulációt, ahol vagy az elején vagyunk jók, s a végén rossza, vagy fordítva.
A köztes dolgot próbálom most belőni :)

_________________
Kód:
I'm back

Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Hangyaboly
HozzászólásElküldve: 2013.03.27. 15:06 
Offline
Tiszteletbeli

Csatlakozott: 2010.02.04. 19:12
Hozzászólások: 3528
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 180 alkalommal
Idézet:
Minden másodperc végén az alábbiak történnek (sorban):
- Támadás éri a bolyt
- Táplálékot fogyasztanak
- Táplálékot gyűjtenek

akkor az elején nincs táplálék, egyből meghal mind :)

_________________
http://www.ebateam.eu/


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Hangyaboly
HozzászólásElküldve: 2013.03.27. 15:48 
Offline
Imperátor
Avatar

Csatlakozott: 2009.04.21. 09:33
Hozzászólások: 3991
Megköszönt másnak: 5 alkalommal
Megköszönték neki: 135 alkalommal
Tudom, az még nincs kigondolva..:)

[s]A csatára pls valaki adjon egy jól működő megoldást, elképzelést, mivel jelenleg ha 1-el támad s van 1000 katink, akkor nagyon sokat vesztünk :D[/s]
Bocsi, jelenleg ha nyerünk, nem vesztünk, így ez a része nem aktuális :)

_________________
Kód:
I'm back

Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Hangyaboly
HozzászólásElküldve: 2013.03.27. 17:10 
Offline
Tiszteletbeli

Csatlakozott: 2010.02.04. 19:12
Hozzászólások: 3528
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 180 alkalommal
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmisc>
  3.  
  4. #define PLUGIN "Hangyaboly"
  5. #define VERSION "1.0"
  6. #define AUTHOR "IrOn"
  7.  
  8. new bool:hangyaboly=false;
  9. new kor=0;
  10. new munkas;
  11. new harcos;
  12. new kiralyno;
  13. new taplalek;
  14.  
  15. new n=5; // Munkások
  16. new m=5; // Harcosok
  17.  
  18. new vege=0;
  19.  
  20. public plugin_init() {
  21. register_plugin(PLUGIN, VERSION, AUTHOR)
  22.  
  23. register_clcmd("say /hangyaboly", "Inditas")
  24. }
  25.  
  26. public Inditas()
  27. {
  28. if(!hangyaboly)
  29. {
  30. hangyaboly = true;
  31. kor++;
  32. kiralyno=1;
  33. munkas=n;
  34. harcos=m;
  35. taplalek=munkas*5;
  36. client_print(0, print_console, "Letrejott %d kiralyno, %d munkas, %d harcos, nekik van %d taplalekuk", kiralyno, munkas, harcos, taplalek)
  37. Tamadas();
  38. TaplalekFogyasztas()
  39. TaplalekGyujtes()
  40. Szaporodas()
  41.  
  42. if(vege==0)
  43. set_task(1.0, "Ujrainditas")
  44. }
  45. }
  46.  
  47. public Ujrainditas()
  48. {
  49. if(kor != 60)
  50. {
  51. kor++
  52. client_print(0, print_console, "Elindult a(z) %d. kor, jelenleg van %d kiralyno, %d munkas, %d harcos, nekik van %d taplalekuk",kor, kiralyno, munkas, harcos, taplalek)
  53. Tamadas();
  54. TaplalekFogyasztas()
  55. TaplalekGyujtes()
  56. Szaporodas()
  57. if(vege==0)
  58. set_task(1.0, "Ujrainditas")
  59. }
  60. else
  61. {
  62. client_print(0, print_console, "Sikeresen tulelted az utolso kort is, maradt: %d kiralyno, %d munkas, %d harcos, nekik van %d taplalekuk", kiralyno, munkas, harcos, taplalek)
  63. kor=0;
  64. vege=0;
  65. hangyaboly=false;
  66. }
  67. }
  68.  
  69. public Tamadas()
  70. {
  71. new esely = random_num(0,1)
  72. switch(esely)
  73. {
  74. case 1:
  75. {
  76. new tamadok=0;
  77. tamadok = random_num(1, (kor+1)*(kor+1))
  78. new vedekezok=0;
  79. vedekezok=harcos;
  80. client_print(0, print_console, "A tamadas letrejott a(z) %d. korben, tamado hangyak: %d, vedekezo hangyak: %d", kor, tamadok, vedekezok)
  81. if(tamadok > vedekezok)
  82. {
  83. new osszesveszteseg = abs(tamadok-vedekezok)
  84. new vesztesharcos=0;
  85. new vesztesmunkas=0;
  86. new rabolva=0;
  87. if(osszesveszteseg > harcos)
  88. {
  89. new maradtveszteseg = osszesveszteseg-harcos;
  90. harcos=0;
  91. if(maradtveszteseg > munkas)
  92. {
  93. client_print(0, print_console, "Vege, a(z) %d. korben levo tamadast nem tudtatok visszaverni, a hangyaboly elesett.", kor)
  94. vege=1;
  95. }
  96. else
  97. {
  98. vesztesmunkas = munkas-maradtveszteseg;
  99. munkas = munkas-vesztesmunkas;
  100. }
  101. }
  102. else
  103. {
  104. vesztesharcos = harcos-osszesveszteseg;
  105. harcos = harcos-vesztesharcos;
  106. }
  107. if(vege != 1)
  108. {
  109. rabolva = osszesveszteseg*2;
  110. if(rabolva > taplalek)
  111. rabolva=taplalek;
  112. client_print(0, print_console, "Sikeres tamadas, veszteseg: %d harcos %d munkas, osszesen: %d | Rabolt taplalek: %d", vesztesharcos, vesztesmunkas, osszesveszteseg, rabolva)
  113. }
  114. }
  115. else
  116. {
  117. client_print(0, print_console, "Sikeres vedekezes")
  118. }
  119. }
  120. case 0:
  121. client_print(0, print_console, "A tamadas nem jott letre a(z) %d. korben", kor)
  122. }
  123. }
  124.  
  125. public TaplalekFogyasztas()
  126. {
  127. if(vege != 1)
  128. {
  129. if(taplalek < 10)
  130. {
  131. client_print(0, print_console, "A(z) %d. korben a kiralyno meghalt, mivel nem jutott taplalekhoz", kor)
  132. vege=1;
  133. }
  134. else
  135. {
  136. new elveszettharcosok, elveszettmunkasok;
  137. new etetnivaloharcosok=harcos;
  138. new etetnivalomunkasok=munkas;
  139. taplalek=taplalek-10;
  140. while(taplalek>=2 && etetnivaloharcosok>0)
  141. {
  142. taplalek=taplalek-2
  143. etetnivaloharcosok--;
  144. }
  145. elveszettharcosok = harcos-etetnivaloharcosok;
  146. harcos = harcos-elveszettharcosok
  147. while(taplalek>=1 && etetnivalomunkasok>0)
  148. {
  149. taplalek=taplalek-1
  150. etetnivalomunkasok--;
  151. }
  152. elveszettmunkasok = munkas-etetnivalomunkasok;
  153. munkas = munkas-elveszettmunkasok
  154. if(munkas == 0)
  155. {
  156. client_print(0, print_console, "A(z) %d. korben az osszes munkas meghalt, ezert vege a jateknak.", kor)
  157. vege = 1;
  158. }
  159. else
  160. {
  161. client_print(0, print_console, "A(z) %d. korben meghalt %d harcos, %d munkas, mivel nem jutottak taplalekhoz.", kor, elveszettharcosok, elveszettmunkasok)
  162. }
  163. }
  164. }
  165. }
  166.  
  167. public TaplalekGyujtes()
  168. {
  169. if(vege != 1)
  170. {
  171. new szerzetttaplalek = munkas*5;
  172. taplalek=taplalek+szerzetttaplalek;
  173. client_print(0, print_console, "A(z) %d. korben %d munkas osszesen %d taplalekot gyujtott, ezzel az uj taplalek: %d.", kor, munkas, szerzetttaplalek, taplalek)
  174. }
  175. }
  176.  
  177. public Szaporodas()
  178. {
  179. if(vege != 1)
  180. {
  181. new ujosszes, ujharcos, ujmunkas;
  182. ujosszes = kor*10;
  183. ujharcos = random_num(1, ujosszes/2)
  184. ujmunkas = ujosszes-ujharcos;
  185. client_print(0, print_console, "A(z) %d. korben a kiralyno osszesen %d hangyat hozott a vilagra, koztuk %d harcos es %d munkas", kor, ujosszes, ujharcos, ujmunkas)
  186. }
  187. }

_________________
http://www.ebateam.eu/


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Hangyaboly
HozzászólásElküldve: 2013.03.27. 18:56 
Offline
Imperátor
Avatar

Csatlakozott: 2009.04.21. 09:33
Hozzászólások: 3991
Megköszönt másnak: 5 alkalommal
Megköszönték neki: 135 alkalommal
Fasza, pár megjegyzés:

Kód:
         if(munkas == 0)
         {
            client_print(0, print_console, "A(z) %d. korben az osszes munkas meghalt, ezert vege a jateknak.", kor)
            vege = 1;
         }


- Nem feltétlen van vége, mivel ha pont annyi egység hal meg, mint amennyit etetni kell, akkor még tud 1* szaporodni. Szaporodás az utolsó :)
- Az újraindításnál nem futtatnék le egy teljes ciklust, hanem meghívnám az Újraindítást.
- Task nem szükséges
Hirtelen ez tűnt fel. (Meg a kiírt szövegek sem valami megfelelőek :D Inkább a Boly sikeresen védekezett, vagy lerophanták a hangyák, ami miatt vesuztettek ezt azt amazt etc)

Amúgy szép megoldás :P
Látod kiki, akarat kérdése az egész :P

_________________
Kód:
I'm back

Kép


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 27 hozzászólás ]  Oldal 1 2 3 Következő


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 58 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole