Jumat, 06 Mei 2016

Tugas ke-3 Pengantar Teknologi Game# : 5 Game dengan Algoritma dan Analisis


1. APU: Init Phase



ALGORITMA :
JAVASCRIPT
/**
 * Don't let the machines win. You are humanity's last hope...
 **/

var width = parseInt(readline()); // the number of cells on the X axis
var height = parseInt(readline()); // the number of cells on the Y axis
for (var i = 0; i < height; i++) {
    var line = readline(); // width characters, each either 0 or .
}

// Write an action using print()
// To debug: printErr('Debug messages...');


// Three coordinates: a node, its right neighbor, its bottom neighbor
print('0 0 1 0 0 1');

https://www.codingame.com/ide/43728843c04d3303ca833bc900de04092322dc4

ANALISIS :
Tujuan
permainan yang dimainkan pada kotak persegi panjang dengan ukuran tertentu. Beberapa sel berisi daya node. Sisa dari sel-sel kosong.

Tujuannya adalah untuk menemukan, ketika mereka ada, tetangga horisontal dan vertikal setiap node.
Aturan
untuk melakukan ini, Anda harus menemukan setiap (x1, y1) koordinat yang mengandung sebuah node, dan menampilkan (x2, y2) koordinat node berikutnya yang tepat, dan (x3, dan3) koordinat dari simpul berikutnya ke bawah dalam grid.

Jika seorang tetangga tidak ada, Anda harus output koordinat -1-1 bukan (x 2, y2) dan/atau (x3, dan3).

Anda kehilangan jika:
• Anda memberikan tetangga salah untuk sebuah node.
• Anda memberikan tetangga untuk sel kosong.
• Anda menghitung node yang sama dua kali.
• Anda lupa untuk menghitung tetangga node.



2. Skynet: the Virus



ALGORITMA :
JAVASCRIPT

/**
 * Auto-generated code below aims at helping you parse
 * the standard input according to the problem statement.
 **/

var inputs = readline().split(' ');
var N = parseInt(inputs[0]); // the total number of nodes in the level, including the gateways
var L = parseInt(inputs[1]); // the number of links
var E = parseInt(inputs[2]); // the number of exit gateways
for (var i = 0; i < L; i++) {
    var inputs = readline().split(' ');
    var N1 = parseInt(inputs[0]); // N1 and N2 defines a link between these nodes
    var N2 = parseInt(inputs[1]);
}
for (var i = 0; i < E; i++) {
    var EI = parseInt(readline()); // the index of a gateway node
}

// game loop
while (true) {
    var SI = parseInt(readline()); // The index of the node on which the Skynet agent is positioned this turn

    // Write an action using print()
    // To debug: printErr('Debug messages...');


    // Example: 0 1 are the indices of the nodes you wish to sever the link between
    print('0 1');
}

https://www.codingame.com/ide/4372887f6782ba8e03b624d028d48df3701fc0b

ANALISIS :
Tujuan
virus Anda telah menyebabkan backdoor untuk membuka pada jaringan Skynet memungkinkan Anda untuk mengirim instruksi baru secara real time.

Anda memutuskan untuk mengambil tindakan dengan menghentikan Skynet dari berkomunikasi pada jaringan internal sendiri.

Skynet jaringan dibagi menjadi beberapa jaringan yang lebih kecil, di setiap sub jaringan adalah agen Skynet ditugaskan untuk mentransfer informasi oleh bergerak dari satu node ke node sepanjang link Gateway andaccessing mengarah ke jaringan lain sub.

Misi Anda adalah untuk memprogram ulang virus sehingga ini akan memutuskan tautan sedemikian rupa bahwa agen Skynet tidak mampu mengakses jaringan sub lain sehingga mencegah informasi mengenai kehadiran kami virus untuk mencapai pusat Skynet.
Aturan
untuk setiap tes Anda diberi:
• peta jaringan.
• Posisi gerbang keluar.
• Posisi awal dari agen Skynet.
>>> Node dapat dihubungkan untuk sampai ke gateway satu. <<

Setiap permainan mengubah:
• pertama, Anda memutuskan salah satu link tertentu dalam jaringan.
• Kemudian Skynet agen bergerak dari satu Node ke Node yang lain dapat diakses.



3. Winamax Sponsored Contest



ALGORITMA :
JAVASCRIPT
/**
 * Auto-generated code below aims at helping you parse
 * the standard input according to the problem statement.
 **/

var n = parseInt(readline()); // the number of cards for player 1
for (var i = 0; i < n; i++) {
    var cardp1 = readline(); // the n cards of player 1
}
var m = parseInt(readline()); // the number of cards for player 2
for (var i = 0; i < m; i++) {
    var cardp2 = readline(); // the m cards of player 2
}

// Write an action using print()
// To debug: printErr('Debug messages...');

print('PAT');

https://www.codingame.com/ide/437284699545045351d864eb7db866193d7b97f

ANALISIS :
Tujuan
sebelum bermain poker di Winamax, mari kita pergi kembali ke dasar-dasar dengan permainan kartu sederhana ini: perang!

Tujuan Anda adalah untuk menulis sebuah program yang menemukan pemain yang adalah pemenang untuk distribusi diberikan kartu permainan "perang".
Aturan
perang adalah sebuah permainan kartu yang dimainkan antara dua pemain. Masing-masing pemain mendapat sejumlah variabel kartu awal permainan: itulah pemain dek. Kartu yang lain ditumpuk turun di atas masing-masing deck.

Langkah 1: melawan
Di setiap putaran, bersama-sama permainan, setiap pemain mengungkapkan kartu teratas deck mereka-ini adalah sebuah "pertempuran"- dan pemain dengan kartu yang lebih tinggi mengambil kedua kartu bermain dan menggerakkan mereka ke bawah tumpukan mereka. Kartu diperintahkan oleh nilai sebagai berikut, dari yang paling lemah untuk terkuat:
2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K, A.

Langkah 2: perang
jika dimainkan dua kartu dari nilai yang sama, maka ada "perang". Pertama, kedua pemain tempat tiga kartu berikutnya mereka tumpukan wajah bawah. Kemudian mereka kembali ke langkah 1 untuk memutuskan siapa yang akan memenangkan perang (beberapa "perang" dapat dirangkai). Sebagai seorang pemain memenangkan "perang", pemenang menambahkan semua kartu dari "perang" ke dek mereka.

Kasus-kasus khusus:
• jika menjalankan pemutar dari kartu selama "perang" (ketika memberikan tiga kartu) atau ketika melakukan pertempuran, maka permainan berakhir dan kedua pemain ditempatkan sama pertama.
• Kasus uji yang disediakan dalam teka-teki ini dibangun sedemikian rupa bahwa permainan selalu berakhir (Anda tidak perlu berurusan dengan tak terbatas permainan)
setiap kartu diwakili oleh nilai diikuti dengan suit yang: D, H, C, S. untuk contoh: AS. 4H, 8C,

Ketika seorang pemain memenangkan pertempuran, mereka meletakkan kembali kartu di bagian bawah dek mereka dalam urutan yang tepat. Pertama kartu-kartu dari pemain pertama, maka salah satu dari pemain kedua (untuk "perang", Semua kartu dari pemain pertama kemudian semua kartu dari pemain kedua).

Misalnya, jika distribusi kartu adalah sebagai berikut:
Player 1:10 d 9 8 D 6S 7D 5H KH
Player 2: 10H 7H 5C QC 2C 4H 6D
maka setelah satu putaran permainan, akan:
Player 1: 5H 6S 10D 9 8D KH QC 7D 10H 7H 5C 2C
Player 2: 4H 6D

 


4. Teads Sponsored Contest


ALGORITMA :
JAVASCRIPT
/**
 * Auto-generated code below aims at helping you parse
 * the standard input according to the problem statement.
 **/

var n = parseInt(readline()); // the number of adjacency relations
for (var i = 0; i < n; i++) {
    var inputs = readline().split(' ');
    var xi = parseInt(inputs[0]); // the ID of a person which is adjacent to yi
    var yi = parseInt(inputs[1]); // the ID of a person which is adjacent to xi
}

// Write an action using print()
// To debug: printErr('Debug messages...');


// The minimal amount of steps required to completely propagate the advertisement
ANALISIS :
Tujuan
di sini di Teads kami tahu bahwa untuk memaksimalkan iklan pesan perlu menyebar jauh dan cepat.

Anda diberi data untuk menghitung potensi virus, diwakili oleh jaringan orang-orang yang siap untuk menyampaikan pesan kepada lebih banyak orang.
Kita dapat mengasumsikan jaringan ini berisi tidak ada hubungan siklik.
Sebagai contoh, jika seseorang #1 memiliki hubungan dengan orang #2 dan jika orang #2 memiliki relasi dengan orang #3, maka itu mustahil untuk #3 memiliki hubungan langsung dengan #1.

Ketika seorang individu siaran pesan, itu dihitung sebagai satu langkah, berarti bahwa waktu yang dibutuhkan untuk menyiarkan pesan independen dari jumlah orang dalam hubungan langsung dengan individu. Kami akan mempertimbangkan bahwa acara ini akan selalu mengambil 1jam.

Berikut adalah contoh dengan orang-orang yang #1, #2, #3, #4, #5, #6, #7 dan #8 terhubung seperti sehingga:



Di sini, dengan memilih untuk memulai propagasi pesan dengan orang #1, 4 jam akan diperlukan untuk berbagi pesan ke seluruh jaringan:



1. #1 me-relay pesan #2
2. #2 kemudian relay #3
3. #3 relay itu #4 dan #7.
4. #4 relay untuk #5 dan #6, sementara #7 me-relay ke #8

jika kita memutuskan sekarang untuk memulai propagasi dengan orang #3, maka hanya 2 jam yang diperlukan:



1. #3 me-relay pesan untuk #2, #4 dan #7
2. #2 me-relay ke #1; #4 me-relay untuk #5 dan #6 #7 me-relay ke #8

dalam exercice ini, misi Anda terdiri dalam mencari minimal jumlah jam yang dibutuhkan untuk pesan untuk menyebarkan di seluruh jaringan diberikan kepada Anda sebagai masukan.



5. The Labyrinth


ALGORITMA :
JAVASCRIPT

/**
* Auto-generated code below aims at helping you parse
* the standard input according to the problem statement.
**/

var inputs = readline().split(' ');
var R = parseInt(inputs[0]); // number of rows.
var C = parseInt(inputs[1]); // number of columns.
var A = parseInt(inputs[2]); // number of rounds between the time the alarm countdown is activated and the time the alarm goes off.

// game loop
while (true) {
var inputs = readline().split(' ');
var KR = parseInt(inputs[0]); // row where Kirk is located.
var KC = parseInt(inputs[1]); // column where Kirk is located.
for (var i = 0; i < R; i++) {
var ROW = readline(); // C of the characters in '#.TC?' (i.e. one line of the ASCII maze).
}

// Write an action using print()
// To debug: printErr('Debug messages...');

print('RIGHT'); // Kirk's next move (UP DOWN LEFT or RIGHT).
}

https://www.codingame.com/ide/4372891ef1bd7dab485e9c3014b444f4eafd0d7


ANALISIS :

Tujuan
setelah bagian di dalam struktur, misi Anda adalah untuk:
• Cari ruang kontrol dari mana Anda akan dapat untuk menonaktifkan sinar tracker
• mendapatkan kembali ke posisi awal Anda setelah Anda telah dinonaktifkan sinar tracker



aturan
struktur diatur sebagai labirin persegi terdiri dari sel-sel. Dalam labirin Kirk dapat pergi dalam salah satu petunjuk berikut: atas, bawah, kiri atau kanan.

Kirk menggunakan tricorder nya untuk memindai area sekelilingnya tetapi karena bidang pengganggu, ia hanya dapat memindai sel-sel yang terletak di square lebar 5-sel yang berpusat pada dirinya.

Sayangnya, Spock itu benar, ada perangkap! Setelah Anda mencapai ruang kontrol mundur alarm dipicu dan Anda memiliki hanya sejumlah terbatas putaran sebelum alarm berbunyi. Setelah alarm berbunyi, Kirk ditakdirkan...

Kirk akan mati jika berikut terjadi:
• Kirk jetpack kehabisan bahan bakar. Anda memiliki cukup bahan bakar untuk gerakan 1200.


• Kirk tidak mencapai posisi awal sebelum alarm berbunyi. Mundur alarm dipicu setelah ruang kontrol telah tercapai.


• Kirk menyentuh dinding atau tanah: dia adalah dicabik dengan perangkap mekanis.



Anda akan sukses jika Anda mencapai ruang kontrol dan kembali ke posisi awal sebelum alarm pergi dengan

Format labirin
labirin dalam ASCII format disediakan sebagai masukan. Karakter # mewakili dinding, Surat.represents rongga, huruf T mewakili posisi awal Anda, Surat Crepresents ruang kontrol dan karakter? mewakili sebuah sel yang tidak memiliki scan belum.