Tantangannya sederhana. Berikan kode sesingkat mungkin untuk mereproduksi permainan 2 pemain klasik pong http://en.wikipedia.org/wiki/Pong . Tingkat grafik dan fungsionalitas harus sedekat mungkin dengan demonstrasi javascript ini http://codeincomplete.com/posts/2011/5/14/javascript_pong/demo.html (tetapi tanpa opsi tambahan Anda dapat mengklik di sebelah kiri) atau bingkai, informasi fps dll. di kanan bawah).
Seperti biasa kode harus ditulis dalam bahasa bebas (dalam kedua pengertian) dan harus dapat dijalankan di linux. Setiap perpustakaan yang digunakan juga harus gratis, mudah tersedia, dan tidak ditulis untuk tujuan kompetisi ini (dan juga belum mengandung versi Pong yang berfungsi!).
code-golf
graphical-output
game
felipa
sumber
sumber
Jawaban:
Javascript, 883 (+ 70 HTML)
Script dapat ditempatkan di akhir
<body>
atau dipanggilonLoad
. Perlu elemen kanvas berikut:Player 1 menggunakan qdan akunci, dan pemain 2 kegunaan yang pdan lkunci. Tekan esctombol untuk berhenti dan tombol apa saja untuk memulai / melanjutkan.
Anda dapat memainkannya di browser Anda di sini .
Saya tidak yakin dengan fisika yang akan digunakan, jadi saya mulai dengan metode refleksi sederhana dan kemudian menambahkan beberapa variasi dan sedikit bereksperimen dengannya. Kecepatan bola di arah y dipengaruhi oleh di mana pada dayung Anda memukul bola, sehingga Anda memiliki kontrol atas ke mana bola pergi. Kecepatan bola dalam arah x perlahan-lahan meningkat dengan setiap pukulan dalam reli.
Saya menduga itu akan dikalahkan dengan mudah dengan solusi menggunakan perpustakaan, tapi saya senang membuatnya dalam javascript biasa.
sumber
20
ke variabel bernamag
dan menyimpan satu byte sangat sedikit.sed, 35
Mengangkat bar sedikit dengan meditasi sed perangko.
Meditasi dinikmati di stdin / stdout di dua komputer, tidak harus terhubung oleh jaringan. Meditasi dimulai di negara bagian
dengan guru nol di sebelah kiri dan satu di sebelah kanan. Braket sudut bergerak ke kiri dan ke kanan, dan jika seorang guru melakukan manuver nomor mereka untuk menghubungi kursor ketika datang ke sisi mereka, skor mereka meningkat satu, dan mereka menjadi gembira dengan sukacita.
Meditasi dimulai dengan mengetik keadaan di atas
sed -f medi.sed
, dan komputer merespons dengan keadaan berikutnya. Guru yang berbakti mengetikkan meditasi, membaca dengan keras kunci berikutnya yang akan mereka tekan, dengan kedua guru menekan kunci suci keenter
masa depan pada saat yang sama. Komputer yang patuh membalas dengan keadaan berikutnya. Ini, pada gilirannya, dibacakan dengan keras saat diketik bersamaan dengan yang terakhir. Terus maju ke masa depan sampai kebahagiaan tanpa batas tercapai.Gurus yang menginginkan tantangan dapat memainkan mode 'turbo', di mana guru mencoba untuk bersama-sama memprediksi kondisi komputer berikutnya, dan mengetiknya ke prompt alih-alih keadaan saat ini. Gurus akan memiliki kebijaksanaan untuk memverifikasi persetujuan antara prediksi mereka sebelum memasuki masa depan.
sumber
Python (dengan pygame ) 650 byte
fitur
Sebagai catatan akhir, saya ingin meminta agar solusi ini tidak dipilih sebagai jawaban yang diterima, karena berbagai alasan.
Contoh tangkapan layar:
Catatan: font yang digunakan untuk skor dapat bervariasi dari satu sistem ke sistem lainnya.
sumber
HTML & JavaScript (ambil 2) - 525
Karena OP tampaknya tidak terlalu peduli dengan bagian "sedekat mungkin", inilah solusi alternatif yang tanpa belas kasihan saya sederhanakan, lucuti, dan main golf. T / A dan P / L untuk dimainkan, tetapi setiap tombol lainnya juga memiliki efek. Sekali lagi, kode ini sepenuhnya mandiri dan saya mengujinya di Chromium 25 di Linux. Saya dapat bermain golf lebih jauh jika Anda dapat menerima bug kecil atau penurunan kualitas grafis / gameplay yang lebih besar.
Terima kasih Shmiddty
sumber
c=window.c
. Anda menugaskan variabel global untuk dirinya sendiri.++S[n]
dalam.random(++S[n])
HTML & JavaScript - 1663
Terhadap penilaian saya yang lebih baik, saya mengambil pendekatan gila golf kode sebenarnya dari demo. Saya menghapus beberapa fitur dan elemen antarmuka, tetapi umumnya berfungsi persis sama - 0, 1 atau 2 untuk memilih jumlah pemain manusia, Q / A dan P / L untuk dipindahkan.
Kecuali saya membuat beberapa kesalahan, gameplay harus identik, pixel untuk pixel dan milidetik untuk milidetik, ke aslinya di 640 * 480 (petunjuk: mengubah ukuran jendela browser mengubah ukuran game dalam demo). Itu hanya tidak memberikan instruksi, tidak mengumumkan pemenang dan tidak menangani esc.
Kode sepenuhnya mandiri dan saya mengujinya di Chromium 25 di Linux. Firefox tidak terlalu menyukainya.
Beberapa kredit untuk Shmiddty untuk perbaikan
sumber
Memproses, 487 karakter
Contoh tangkapan layar:
Kode ini dibuat dengan pikiran pendek, sehingga sangat buggy (bola terkadang melewati dayung, atau membungkusnya). Kontrol adalah Q / A untuk Player 1 dan O / L untuk Player 2.
sumber
C # - 1283 karakter
Ini bisa bermain golf lebih banyak tapi ini dia
Sunting: Tidak melihat persyaratan untuk bahasa yang dapat dijalankan linux gratis ...
sumber
Tcl / Tk , 932 bytes
Harus dijalankan di shell interaktif
catatan:
Hanya versi Pong yang sangat minim, di mana bola hanya berjalan di sudut diagonal dan selalu memiliki kecepatan yang sama.
sumber