İnovasyon , oyuncuların tarihlerden modern zamanlara, rakiplerinden daha hızlı başarılar kazanmak için çağlar boyunca savaştığı bir kart oyunudur.
İnovasyondaki her kart benzersizdir ve bir oyuncuya çeşitli simgeler sunar. Her bir karta 2x3 ızgara olarak davranırsak, sol ve alt kenarlardaki dört yuvadan üçü her zaman simgeler tarafından alınır (siyah altıgenlerdeki semboller sayılmaz).
Oyunda, karakterleri keyfi olarak temsil edeceğimiz 6 çeşit simge (kaleler, kronlar, yapraklar, ampuller, fabrikalar ve saatler) vardır 012345
. Kullanılması #
siyah altıgen temsil etmek, her kartta simgeleri temsil etmek dört karakter kullanabilirsiniz. Örneğin, yukarıdaki kartlar
0.. #.. 3.. 1.. -> 03#0 #331 355# 144#
3#0 331 55# 44#
Şimdi, İnovasyonda, oyun alanındaki kartlar dört yoldan biriyle gösterilen yığınlara * ayrılmıştır. Her örnek için, en soldaki kartın 03#0
yığının en üstünde olduğu varsayılarak yukarıdaki kartları kullanacağız .
Splay yok: yalnızca üst kart görünür
0..
3#0
Sola yay : üstteki kart tamamen görünür ve aşağıdaki tüm kartların sağ üçte biri
0..|.|.|.|
3#0|1|#|#|
Sağa doğru sağla : üstteki kart, aşağıdaki tüm kartların sol üçte biri kadar tamamen görülebilir
1|3|#|0..
4|5|3|3#0
Ekranı açın : üstteki kartın tamamı ve aşağıdaki tüm kartların alt yarısı görünür.
0..
3#0
---
331
---
55#
---
44#
Meydan okuma
Giriş, iki bölümden oluşan tek bir boşlukla ayrılmış dize olacaktır:
!<>^
Sıçramayı, sola savrulmayı, sağa savrulmayı veya yukarı fırlatmayı temsil eden bir yiv yönü .- Her biri 4 karakter uzunluğunda ve karakterlerden oluşan boş olmayan bir kart listesi
012345#
. En soldaki kart destenin üstündedir ve her kartta tam olarak bir tane bulunur#
.
Cevaplar fonksiyonlar, tam programlar veya eşdeğeri olabilir . Ekran yönünün ilk mi yoksa son mu olduğunu seçebilirsiniz, yani aşağıdaki iki biçimden birini seçin:
> 03#0 #331 355# 144#
03#0 #331 355# 144# >
Çıktı, her bir simgenin sayımını temsil eden altı sayının bir listesi olacaktır, örneğin yukarıdaki örnek kartlar için:
! 03#0 #331 355# 144# -> 2 0 0 1 0 0
< 03#0 #331 355# 144# -> 2 1 0 1 0 0
> 03#0 #331 355# 144# -> 2 1 0 3 1 1
^ 03#0 #331 355# 144# -> 2 1 0 3 2 2
Örneğin, splay kasası olmayan iki 0
simge ve bir 3
simge gösteren ilk satırı verir. Biz sayılmaz o Not #
siyah altıgenler simgeler olmadığından, s.
Listeyi temsil etmenin makul ve belirsiz olmayan bir yolunu seçebilirsiniz; örneğin, sınırlayıcı ile ayrılmış veya dilinizin doğal liste gösterimini kullanma.
Test senaryoları
! 113# -> 0 2 0 1 0 0
< 113# -> 0 2 0 1 0 0
> 113# -> 0 2 0 1 0 0
^ 113# -> 0 2 0 1 0 0
! 000# 12#2 -> 3 0 0 0 0 0
< 000# 12#2 -> 3 0 1 0 0 0
> 000# 12#2 -> 3 1 1 0 0 0
^ 000# 12#2 -> 3 0 2 0 0 0
! 000# 111# 222# -> 3 0 0 0 0 0
< 000# 111# 222# -> 3 0 0 0 0 0
> 000# 111# 222# -> 3 2 2 0 0 0
^ 000# 111# 222# -> 3 2 2 0 0 0
! 335# #101 21#2 333# 2#20 3#33 4#54 #133 3#33 32#2 -> 0 0 0 2 0 1
< 335# #101 21#2 333# 2#20 3#33 4#54 #133 3#33 32#2 -> 1 1 2 5 1 1
> 335# #101 21#2 333# 2#20 3#33 4#54 #133 3#33 32#2 -> 0 3 3 7 1 1
^ 335# #101 21#2 333# 2#20 3#33 4#54 #133 3#33 32#2 -> 2 4 4 10 1 2
!
Listenin boş olmadığı garanti edildiğinden, benzer bir şeyin geçersiz giriş olduğunu unutmayın .
* Bu zorluğun amaçları için, kazık renklerini görmezden geliyoruz.