N d oynamak için deterministik bir program oluşturun diğer yarışmacılar ile tic-tac-toe.
Programınız n
(genişlik) ve d
(boyut numarası) şu aralıklarda olduğunda çalışmalıdır:
n∈[3,∞)∩ℕ ie a natural number greater than 2
d∈[2,∞)∩ℕ ie a natural number greater than 1
n = 3; d = 2
(3 2 yani 3 x 3):
[][][]
[][][]
[][][]
n = 3; d = 3
(3 3 yani 3 x 3 x 3):
[][][]
[][][]
[][][]
[][][]
[][][]
[][][]
[][][]
[][][]
[][][]
n = 6; d = 2
(6 2 yani 6 x 6):
[][][][][][]
[][][][][][]
[][][][][][]
[][][][][][]
[][][][][][]
[][][][][][]
Ve bunun gibi.
Giriş:
Giriş STDIN olacaktır. Girişin ilk çizgisi, iki sayılar, olacak n
ve d
formu n,d
.
Bundan sonra, yapılan hareketleri belirten koordinatlardan oluşan bir çizgi olacaktır. Koordinatlar şeklinde listelenir: 1,1;2,2;3,3
. Sol üst köşe başlangıç noktasıdır (2D için 0,0). Genel durumda, bu liste 1,2,...,1,4;4,0,...,6,0;...
ilk sayının sola-sağa, ikinci yukarı-aşağıya, üçüncü ila üçüncü boyuta vb. Gösterdiği gibi olacaktır. İlk koordinatın X
ilk dönüş, ikinci olduğu O
ilk dönüş, ....
Bu ilk hamle ise, girdi bir sayı ve ardından 1 boş satır olur.
Tutarlılık için girdi her zaman yeni satırla biter. Örnek Giriş (\ n yeni satırdır):
10,10\n0,0,0,0,0,0,0,0,0,0;0,2,3,4,5,6,7,8,9,0;0,1,2,3,4,5,6,7,8,9\n
İlk hamle için:
10,10\n\n
\n
yeni satır karakteri nerede .
Çıktı:
Yapmak istediğiniz hareketin, girdiyle aynı biçimde (virgülle ayrılmış bir liste) çıktı alın. Geçersiz bir hamle (yani daha önce yapılmış bir hamle) oyunun kaybedilmesine neden olur.
Not: Her koşunun aynı koşullar göz önüne alındığında aynı olacağı şekilde bir değer eklediğiniz sürece rastgele bir sayı üreteci kullanabilirsiniz. Başka bir deyişle, program deterministik olmalıdır.
Not: sadece geçerli hamlelere izin verilir.
Kazanan Oyunlar (Yeterince çok boyutlu tic tac toe oynadıysanız, bu aynıdır.)
Kazanmak için, bir oyuncunun bir çizgi boyunca tüm bitişik karelere sahip olması gerekir. Yani, bir oyuncunun n
kazanan olabilmesi için bir hatta hamle yapması gerekir .
bitişik:
- her karo bir noktadır; örneğin (0,0,0,0,0),
d=5
- bitişik karolar aynı birim d-küpünde her iki nokta olacak şekilde karolardır. Başka bir deyişle, fayanslar arasındaki Chebyshev mesafesi 1'dir.
- başka bir deyişle, bir nokta bir noktaya
p
bitişikse, s'deki ilgili koordinattakiq
her koordinat, birden fazla farklı değildir. Ek olarak, en azından koordinat çifti tam olarak bir farklılık gösterir.p
q
Hatları:
- Çizgiler vektörler ve bir döşemeyle tanımlanır. Bir çizgi, denklemin vurduğu her bir döşemedir:
p0 + t
<
some vector with the same number of coordinates as p0>
Simülasyon ve Kazanma Koşulları:
Not vermeye hazır olup olmadığını cevabınızda belirtin. Yani, cevabınızın yapılıp yapılmadığını açıkça belirtin.
Cevabınız tamam olarak işaretlenmişse, kodda yapılan son düzenlemeden en az 24 saat sonrasına kadar notlandırılmaz.
Programlar çevrimdışı çalışmalıdır. Bir program hile yapıyorsa, otomatik olarak bir puan alır
-1
ve daha fazla puanlanmaz. (Birileri programlarını kandırmakla nasıl sonuçlanır?)Programınız geçersiz çıktı üretiyorsa, hemen oyun için bir kayıp olarak sayılır
Program 1 dakika sonra çıktı üretemezse, hemen oyun için bir kayıp olarak sayılır. Gerekirse hız için optimize edin. Bir programı başka bir programdan test etmek için bir saat beklemek istemiyorum.
Her program iki kez her biri için diğer programlara karşı işletilecek
n
aralığında[3,6]
ve herd
aralıkta[2,5]
bir zamanlar,X
ve bir kez olarakO
. Bu bir tur.Bir programın kazandığı her oyun için
+3
puanını alır . Program bağlanırsa (tek bir turda 1 galibiyet ve 1 kayıp veya her iki oyun için de bağlar), o zaman olur+1
. Program kaybedilirse, o zaman alır+0
(yani değişiklik yok).En yüksek puana sahip program kazanır. Beraberlik olması durumunda, en az sayıda kayıp oyunun (berabere kalan yarışmacıların dışında) olduğu program kazanır.
Not: Cevap sayısına bağlı olarak, testleri yürütmek için yardıma ihtiyacım olabilir.
İyi şanslar! Ve simülasyonlar sizin lehinize olabilir!