Oh tanrılar hayır !! Bizi burada Doorknob'la bırakamazsın! Her yerde nethack olacak! - 1b önce Geobits tarafından
Hayal kırıklığına uğratmadı ...
Giriş
(Fuarla ilgilenmiyorsanız ve / veya Tab Patlama Sendromu varsa bu bölümü atlayabilirsiniz )
Nethack'ın (ve Rogue ve aynı roguelike türündeki benzer oyunların) karakteristik mekaniğinden biri, tanımlama sistemidir . Oyunun başında, yalnızca başlangıç envanterinizdeki öğeler "resmi olarak tanımlanır". Diğer nesnelerin büyük çoğunluğu bilinmeyen başlar; örneğin, bir "yansıma kalkanı" ilk olarak tanımlanmadan önce bir "parlak gümüş kalkan" olarak görünecektir.
"Parlak bir gümüş kalkan" sadece yansıma kalkanı olabilir , ancak bunun diğer iki durumda da ilginç sonuçları olabilir.
Bazı öğeler birbirinden farklıdır, ancak aynı "görünüme" sahiptir. Örneğin, eğer bir " gri taş " bulursanız , dört şeyden biri olabilir: Bir çakmaktaşı taş (işe yaramaz), bir mihenk taşı (faydalı olabilir), bir yük taşı ( sizi bir ton ağırlığında ve sizi ağırlaştıracaktır ) düşüremezsin ), veya bir luckstone (oyunu kazanmak için neredeyse gerekli)
Birçok öğe (kaydırır, değnekler, yüzükler, imla kitapları, bazı zırhlar vb.) Rastgele bir görünüme sahiptir. Bunun anlamı, iksirlerin sahip olabileceği bir dizi olası görünüme sahip olmasıdır; örneğin, [ altın iksiri , girdap iksiri , gazlı iksiri , mor-kırmızı iksiri vb.]. Bu görünüşe sonra rastgele aslında (ne atanmış şifa iksir , felç iksir , görünmez bkz iksir , polimorfunun iksir , vb.)
Ki bu demek olduğunu altıgen muska olabilir bir oyun (Can kurtarma muska) içinde hayatını kurtarmak ve ölüme sonraki (boğulma muska) seni boğmak .
Doğal olarak, bu, tanımlayıcı öğeleri oyunun kritik bir parçası haline getirir. Öğeler "resmi olarak tanımlanabilir" anlamına gelir, yani kesinlikle kesin bir şekilde belli bir öğe olarak ortaya çıkacaklardır (ör. Bulduğunuz tüm mücevherli değnekler canavar yaratma değnekleri olarak gösterilecektir ); Bu öncelikle , tanımlamak için kullanılan kaydırma ya da imla kitapları aracılığıyla yapılır . Tipik olarak bunlar yetersiz kalsa da, ki bizi ...
Gayri resmi tanımlama. Bu, tanımlanamayan belirli bir öğenin belirli bir tür olduğundan (veya yalnızca birkaç türden biri olabileceğinden) emin olduğunuz (veya kesin olduğundan ), ancak henüz onu "resmen" tanımlamamış olduğunuz anlamına gelir. Bu birkaç yöntemle yapılabilir: çubuklar için gravür testi , halkalar için lavabo testi veya en yaygın yöntem ...
... fiyat tanımlama ! Bu zorluk ne hakkında.
Kısaca, Doom Zindanları boyunca yer alan dükkanlar var (evet, dükkan sahipleri bazı yeraltı zindanlarına dükkan kurmanın iyi bir fikir olacağını düşündü; nedenini sorma). Bu dükkanlarda seyahatlerinizde rastladığınız çeşitli eşyaları alıp satabilirsiniz. Bir ürün alırken veya satarken, dükkan sahibi ilk önce size ne kadar satacağını / sizden satın alacağını söyleyecektir. Belirli öğelerin belirli fiyatlara sahip olması garanti edildiğinden, belirli bir öğe türünü gayri resmi olarak tanımlamak için bunu kullanabilirsiniz .
Işık kaydırma gibi bazı öğeler belirli bir miktara mal olan ve net bir şekilde tanımlamanıza izin veren tek öğelerdir; Bununla birlikte, çoğu ürün, aynı sınıftaki diğer ürünlerle bir fiyat grubunu paylaşır; bu, yalnızca olanakları daraltmanıza izin verir (ki bu hala faydalıdır). Bununla birlikte, bir ürünün alım / satım fiyatları bir dizi değişkenden ( Charisma stat'ünüz gibi) etkilenir . Bu nedenle yukarıdaki grafikte.
Nethack'ı sevdiğimi söyleyebilir misiniz?
Giriş
Giriş şu anda oynanmakta olan bir (vanilya, 3.4.3) Nethack oyunu olarak sağlanacaktır:
"For you, most gracious sir; only 177 for this scroll labeled VERR YED HORRE."
--More--
------------
| . ---------
| | ---------- | ^ |
| .## ################. +# #. .#
| | # | _|# #---------#
| | ### ##.< |# #### #
| .#########################----------# # #
------------ ### # ############# # # #
# # ----------- # # # ####
### ###| |### # # #----------
# #. |# ### # # #|.???????|
## | |# #--------# #|.??@????|
----.----###############. |# #| |# #-@???????|
|.......+# | |# #. |# ----------
|.......| | .# | |#
|......>| ----------- | +#
--------- --------
Wizard the Evoker St:12 Dx:14 Co:11 In:16 Wi:12 Ch:10 Chaotic
Dlvl:2 $:0 HP:11(11) Pw:0(8) AC:9 Exp:1 T:11
Bu, birkaç özelliğe sahip olmanın garanti edildiği anlamına gelir:
Her zaman 24 satır uzunluğunda olacak.
Her satır, her zaman 80 karakter veya daha kısa uzunlukta olacaktır.
İkinci-en son satır, aşağıdaki "oluşacak belirteçleri oyuncunun adı ve başlık ( 'şeklinde,' foo çubuğu ((tek bir boşluk ile ayrılmış) niteliklerin listesi") ve oyuncunun hizalama Kanuni, Tarafsız veya Kaotik). Her belirteç , değişken sayıda boşlukla ayrılacaktır. 1
Niteliklerin listesi her zaman
St:* Dx:* Co:* In:* Wi:* Ch:*
, bir*
karakterin 3 ile 25 arasında bir tam sayıyı temsil ettiği yerde olacaktır. 2 (Buradaki ilgi odağı, fiyatları hesaplamanız gereken son stat, Charisma'dır.)İlk satır her zaman mağaza ile ilgili bir mesajdan oluşacaktır (özellikle, bir ürünü alırken veya satarken görüntülenen mesaj). Ayrıca, bu öğenin tek, tanımlanamayan, adsız bir kaydırma olacağı garanti edilir. Bir öğeyi satın almak için, bu:
"For you, {TITLE}; only {PRICE} for this scroll labeled {LABEL}."--More--
ve satış için:
{SHK} offers {PRICE} gold pieces for your scroll labeled {LABEL}. Sell it? [ynaq] (y)
burada listelenen "değişkenler"
{curly braces}
aşağıdaki gibidir:{TITLE}
her zaman " iyi ", " onurlu ", " en zarif " veya " saygın " olanlardan biri, " hanımefendi " veya " efendim " ile birleştirilmiş.{PRICE}
her zaman bir tamsayıdır.{LABEL}
her zaman aşağıdakilerden biri olacaktır ( kaynak ):ZELGO MER JUYED AWK YACC NR 9 XIXAXA XOXAXA XUXAXA PRATYAVAYAH DAIYEN FOOELS LEP GEX VEN ZEA PRIRUTSENIE ELBIB YLOH VERR YED HORRE VENZAR BORGAVVE THARR YUM YUM KERNOD WEL ELAM EBOW DUAM XNAHT ANDOVA BEGARIN KIRJE VE FORBRYDERNE HACKEM MUCHE VELOX NEB FOOBIE BLETCH TEMOV GARVEN DEH READ ME
{SHK}
her zaman aşağıdakilerden biri olacaktır ( kaynak ):Skibbereen Ballingeary Inishbofin Annootok Abitibi Kanturk Kilgarvan Kesh Upernavik Maganasipi Rath Luirc Cahersiveen Hebiwerie Angmagssalik Akureyri Ennistymon Glenbeigh Possogroenoe Aklavik Kopasker Lahinch Kilmihil Asidonhopo Inuvik Budereyri Kinnegad Kiltamagh Manlobbi Tuktoyaktuk Akranes Lugnaquillia Droichead Atha Adjama Chicoutimi Bordeyri Enniscorthy Inniscrone Pakka Pakka Ouiatchouane Holmavik Gweebarra Clonegal Kabalebo Chibougamau Lucrezia Kittamagh Lisnaskea Wonotobo Matagami Dirk Nenagh Culdaff Akalapi Kipawa Sneem Dunfanaghy Sipaliwini Kinojevis
Bu mesaj başka bir satıra bölünebilir (ancak 2 satırdan fazla sürmeyecektir). 3
İlk birkaç satırın yanı sıra, tüm bahisler ekranın geri kalan kısmının görünümüne göre kapalıdır. Nethack , ASCII karakter kümesinin çoğunluğunu kullanır . Güvenle kabul edebileceğiniz tek şey, girişin yalnızca ASCII olacağıdır (ancak bu muhtemelen önemli değildir çünkü 3-22 satırlarını atabilirsiniz).
Girdi bir işlev argümanı olarak alınırsa, tam olarak yukarıdaki örnekte gösterildiği gibi verilecektir (yeni satır ayrılmış). STDIN üzerinden giriş yaparsanız, art arda 24 giriş satırı olarak verilir (tekrar yukarıda gösterildiği gibi). Girişin sonunda yeni bir satırsonu olup olmamasını seçebilirsiniz. Girişin arkada boşluk olmaması garantilidir.
Çıktı
Çıktı #name
sadece fiyat-kimliğindeki parşömen ne yapmalıyım . Kullandığım adlandırma sistemi (ve başkalarının kullandığını gördüm):
Kaydırma açıkça belli bir kaydırma olarak tanımlanırsa (tanımla, hafif, büyü silahı),
#name
o kadar. Bu, aşağıdaki taban fiyatların kaydırılması için geçerlidir (aşağıda taban fiyatının nasıl hesaplanacağını göreceksiniz): 20 -> tanımla, 50 -> hafif, 60 -> enchant silahı.Aksi halde, kaydırma görünümünün ilk üç harfini veya 3 karakterden azsa ilk sözcüğü alın. Örneğin,
ZELGO MER
olurZEL
,VE FORBRYDERNE
olurVE
, vb. Bununla birleştin (bir boşluk ve ardından) kaydırmanın temel fiyatı. ÖrneğinELB 300
,.Temel fiyat iki olasılıktan biri olabilirse, genellikle belirli bir fiyat dilimine yerleştirecek şekilde teklif edilen bir fiyat alana kadar ürünü alıp satmaya çalışırım. Ancak, bu zorlukta bunu yapamazsınız, bu yüzden iki olası taban fiyatı sadece bir eğik çizgi ile ayırın (
/
). ÖrneğinHAC 60/80
,.
İşte bir öğenin taban fiyatını, satın almayı teklif ettiğiniz fiyata dönüştürmenin formülü:
öğenin taban fiyatıyla başla
olası bir% 33'le "tanımlanamayan ek ücret" şansı
price += price / 3
% 33 "enayi biçimlendirme" nin bir başka şansı (bu aslında rastgele bir şans değil, ama bu zorluğun amaçları için), aynı şekilde hesaplandı
aşağıdaki gibi uygulanan bir karizma değiştirici:
Ch 3-5 6-7 8-10 11-15 16-17 18 19-25 Mod +100% +50% +33% +0% -25% -33% -50% Code p *= 2 p += p/2 p += p/3 --- p -= p/4 p -= p/3 p /= 2
Ve işte baz fiyat için formül -> satış fiyatı:
öğenin taban fiyatıyla başla
Bunu 2 veya 3'e bölün (sırasıyla "normal" veya "enayi işaretlemesi"; yine rastgele değil, ancak bu zorluğun amaçları içindir)
% 25 azalma şansı 4 ile hesaplanan
price -= price / 4
Bölünme tamsayı bölmedir, yani her adımdaki sonuç yuvarlanır. (Kaynak: wiki ve biraz kaynak kodu kazma. Bu formülleri tersine çevirmek sizin işiniz.)
Son olarak, olası alış fiyatlarını (Charisma stat'üne göre gruplandırılmış) gösteren ve belirli bir baz fiyatla bir parşömen satış fiyatlarını gösteren kullanışlı bir ASCII çizelgesi:
Base Ch<6 6-7 8-10 11-15 16-17 18 19-25 Sell
20 40/52/68 30/39/51 26/34/45 20/26/34 15/20/26 14/18/23 10/13/17 5/6/8/10
50 100/132/176 75/99/132 66/88/117 50/66/88 38/50/66 34/44/59 25/33/44 12/16/19/25
60 120/160/212 90/120/159 80/106/141 60/80/106 45/60/80 40/54/71 30/40/53 15/20/23/30
80 160/212/282 120/159/211 106/141/188 80/106/141 60/80/106 54/71/94 40/53/70 20/26/30/40
100 200/266/354 150/199/265 133/177/236 100/133/177 75/100/133 67/89/118 50/66/88 25/33/38/50
200 400/532/708 300/399/531 266/354/472 200/266/354 150/200/266 134/178/236 100/133/177 50/66/75/100
300 600/800/1066 450/600/799 400/533/710 300/400/533 225/300/400 200/267/356 150/200/266 75/100/113/150
Wiki grafik ihmaller dört olası satış fiyatlarının iki içerecek şekilde iken (Bu, olası tüm satış fiyatlarını listeler dışında wiki grafiğe aynıdır Hayır, elle bu çizelgeyi yapmadığını;. İle oluşturulan bu yakut komut .)
Test durumları
Giriş:
"For you, honored sir; only 80 for this scroll labeled LEP GEX VEN ZEA."
--More-- # #
---------------- -----
| | ------------####+ |
----- | -##############+ .# | |
| .###########| > |# # | | ##. |
| | #------------.---# ##. | # -----
-+--- ################## ----.-------### #
#### ### # # #
# # # ### ###
### ### # # #
# # # ### -----|--
-----.--- ### ----+---# |...@..|
| | # | |# |???+??|
| < .# ## ##+ | |+?????|
| |# ------.------- | | |??]?@?|
---------### | | | | --------
# # | | --------
###| | #
#+ |
--------------
Wizard the Evoker St:11 Dx:15 Co:9 In:20 Wi:9 Ch:11 Chaotic
Dlvl:7 $:0 HP:11(11) Pw:1(8) AC:9 Exp:1
Çıktı: LEP 60/80
Giriş:
"For you, most gracious sir; only 80 for this scroll labeled DAIYEN FOOELS."
--More-- #
------------ ----- -------
----- | | | | | |
|!)%| | | --------------- | | #- |
|*[@| | .#####| < |#####. | ###| |
|?(?| ---------.-- #+ |# | | # | |
|[!(| ## | |# | +#### #. .#
|.@.| ##################. +# ---.- #| |#
---|- ### ---------------# ## #-------#
## # ###### # # #
# ### # # # #
## # # # # #
------ ##### # # # #
| | -.---- # # # #
| .##### |^ | #### # # #
| | # | | ---- #-----------.---- # #------
| | ###| | | | #. > | # #| |
------ #. | | | | .## #| |
| | ---- | | #. |
------ ---------------- ------
Wizard the Evoker St:11 Dx:14 Co:16 In:15 Wi:10 Ch:9 Chaotic
Dlvl:6 $:0 HP:11(11) Pw:9(9) AC:9 Exp:1
Çıktı: enchant weapon
Giriş:
Aklavik offers 113 gold pieces for your scroll labeled GARVEN DEH. Sell it?
[ynaq] (y)
----- ------ --------- -------
| | | | # ##. | |.?)%/|
| | ##. | ----- # | | |.@!=*|
|< | # | | # ##. .#####+ > |# #-.*?@[|
| .##### | | ------------ # | { |# |^ |# #|.=%)+|
---.- | | | .#### | |# ---------## #-------
## -.---- #. | | |# # ### #
# ######## #| .## | |# ## #
### # #------------ # -----# #### #
# ####### ########################## #
# # # ###----.--#
# ### # # #| |#
--.---- ########################################### #. |#
| | #----------.-# | |#
| | #| |# -------
| | #| .#
| |########| |
------- ------------
# #
Wizard the Evoker St:9 Dx:14 Co:11 In:19 Wi:10 Ch:12 Chaotic
Dlvl:4 $:0 HP:11(11) Pw:5(9) AC:9 Exp:1 Satiated
Çıktı: GAR 300
Giriş:
"For you, good lady; only 67 for this scroll labeled VE FORBRYDERNE."--More--
-------
##| |
------------ # | |
|+[!/!?%[?)| ### | | --------
|[)(!/+]?!@| # # | | ##+ |
|.......@..| -------------- ### | < | ## | |
--------+--- #| | # | | # | > |
# ###| .#### --.---- ### #- |
# ###. | # # ###| |
# #### ---.---------- # ######. |
# #### ## # ### --------
# #### # # #
# #### ######################## ###
### #### ----+---- #
# # #### | .##
----.------#### | ^ |
| +#### | > |
| | | ^ |
----------- ---------
Wizard the Evoker St:18 Dx:18 Co:16 In:20 Wi:20 Ch:18 Chaotic
Dlvl:4 $:150 HP:11(11) Pw:5(7) AC:9 Exp:1
Çıktı: VE 100
Giriş:
Droichead Atha offers 5 gold pieces for your scroll labeled XIXAXA XOXAXA
XUXAXA. Sell it? [ynaq] (y)
------------
----- | .#
| .### ----------- #. { |#
----- | | # | | ###| |#
| .# #. | # | | # ---------+--#
| | ###-|--- | .## ### ## #
| | # # # | | # # # #
| -##### # | | #### ############ #
|> | ## # ---------+- ## -.---------- # ----------
| .#### ### ## #####| | # |.*??/?)*|
----- # # # # | | # |@*)%!)]%|
### ### ###### | | # |.=)!%*!!|
# # # # | | ##+@*[%)(%?|
##################### | | |.]?*?)%%|
-----+---.----##########. | |.%)%!!!%|
| +## ------------ ----------
| < | #
| |
--------------
Wizard the Digger St:11 Dx:9 Co:14 In:6 Wi:6 Ch:9 Lawful
Dlvl:3 $:0 HP:15(15) Pw:0(1) AC:9 Exp:1
Çıktı: identify
(Nethack'i diğer tüm dükkan sahibi adları kaldırılmış olarak el ile derlemek zorunda kaldım çünkü adında boş bir dükkan sahibi bulamadım ...)
kurallar
1: bu bir Nethack oyunu sırasında mutlaka her zaman doğru değildir, ancak bunu sadelik uğruna kabul ediyoruz.
2: tekrar, her zaman doğru değil. Güç 18/01 ila 18 / ** olabilir, ancak bununla başa çıkmanıza gerek yoktur.
3: daha fazla brüt basitleştirme. Örneğin, bir dükkan sahibinin size "pislik" veya "en ünlü ve kutsal yaratık" demesi mümkündür, ancak bunlardan hiçbirini halletmek zorunda değilsiniz.
4: Bir akıllı oyuncunun art arda yüksek fiyatı verilene kadar ürünü satmayı teklif ederek etrafta dolaştığı.