Tantangan
Peter telah bangkit kembali untuk menyelamatkan kita dari tantangan ganda!
Peter Taylor sudah mati , dan tidak ada keraguan tentang itu (baik, terlepas dari sejumlah besar keraguan yang kita miliki ... tapi abaikan saja itu). Dalam ingatannya, Anda harus menulis sebuah program yang menentukan apakah pengguna yang diberikan hidup atau mati.
Informasi lebih lanjut
Seorang pengguna mati jika mereka tidak terlihat lebih dari satu hari, kurang dari itu maka mereka masih hidup. Periksa bagian yang terakhir terlihat di sini:
Input akan menjadi id pengguna (misalnya, milik saya adalah 30525, dan Peter Taylor adalah 194). Asumsikan semua input adalah ID PPCG yang valid.
Jika pengguna masih hidup, Anda harus menampilkan:
[User name] is alive!
Di mana Anda mengganti [Nama pengguna] untuk nama pengguna mereka, bukan ID pengguna mereka.
Jika pengguna mati, Anda harus menampilkan:
Sadly, [User name] is dead.
Peserta T-SQL yang menggunakan SE Data Explorer tidak diizinkan.
Kemenangan
Program terpendek dalam byte menang.
Papan peringkat
var QUESTION_ID=59763;OVERRIDE_USER=30525;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
Jawaban:
CJam, 115 byte
Idenya sama dengan jawaban Bash saya , kecuali bahwa jawaban ini tidak menggunakan ekspresi reguler, karena CJam tidak memiliki ekspresi reguler ...
Penerjemah online tidak melakukan permintaan web, jadi ini hanya akan bekerja dari baris perintah.
sumber
Bash, 151 byte
Seperti biasa, output ke STDERR diabaikan .
Contoh dijalankan
Ide
Kode ini menangkap garis-garis yang mengandung
s="r
yang belum ada>
sebelumnya. Sebagai contoh:da
, itu berisi katayesterday
ataudays
(seperti dalam2 days ago
).mayat hiduphidup.Nama pengguna diekstrak dari tag meta Twitter. Contoh:
sumber
Javascript ES6, 234 byte
Versi beranotasi
sumber
PowerShell (v4),
228 217 209, 157 bytemisalnya
(Maaf, Keith Randall, Anda hanya akun pertama yang saya temukan dengan> 1 hari sejak tanggal terakhir terlihat).
Saya senang dengan 209 byte yang solid dan dapat diandalkan yang memanggil API, tetapi layar-gesekan adalah cara untuk bermain golf.
Ini sekarang menarik nama pengguna dari URI yang dialihkan - tetapi itu adalah nama daripada ID numerik, seperti yang diperlukan.
Dan itu cocok dengan garis
Last seen <span title="2015-10-03 13:15:38Z" class="relativetime">2 days ago</span>
dengann <... [nr]s ago<
mencoba menangkap detik yang lalu, min lalu, jam lalu, dan baru saja, dan ketinggalan "hari minggu, bulan" lalu, atau tanggal jangka panjang + kali. Dan mencoba menangkap 'yang terakhir terlihat' dan bukan relativitas lain. (Terima kasih, Dennis).NB.
curl
adalah alias default untukInvoke-WebRequest
, itu bukan program ikal standar porting ke Windows.sumber
secs ago
,1 min ago
(tidaks
), dan saya pikir saya sudah melihatnyajust now
.R,
384byteYang ini untukmu, Peter!
Perhatikan bahwa ini memerlukan
httr
danjsonlite
paket paket yang harus diinstal, meskipun mereka tidak harus diimpor agar kode ini dapat berfungsi karena kita merujuk ruang nama secara eksplisit.Tidak Disatukan:
Disimpan 5 byte pada pendekatan saya sebelumnya dan mengoreksi kesalahan dalam pendekatan saya saat ini berkat minxomat!
sumber
"/users/"
ke dalam variabel?scan()
akan berpikir baris berikutnya adalah hal-hal yang ingin Anda masukkan dari STDIN (siapa yang tahu mengapa), sehingga titik koma diperlukan dalam kasus ini. Tetapi secara umum Anda benar.AutoIt,
320316308 byte_DateDiff
menghitung perbedaan dalam hari ('D'
). Ini akan menjadi 0 jika perbedaannya kurang dari 1 hari, sehingga kita dapat menggunakannya sebagai nilai boolean. Tag judul dari nilai "terakhir dilihat" berisi cap waktu standar (hampir).sumber
PHP, 187 byte
Pendekatan yang cukup sederhana, menggunakan domain codegolf.xyz, hanya item yang sedikit berbeda di sini adalah bahwa saya berusaha untuk mendapatkan kedua variabel sekaligus. Diuji pada beberapa pengguna dengan hasil yang benar, beri tahu saya jika ada beberapa masalah!
Pemakaian:
sumber
$m[1] is
muncul dua kali. Bukankah lebih murah untuk mencetak ini dulu dan menggunakan ternary hanya untuk bagian yang mati / hidup?Sadly, ...
bagian itu menghalangi ... Sepertinya saya tidak bisa mengatasinya!time()-strtotime($m[2])
ke variabel single-char. Lalu gema$m[1] is
dan terakhir yang mati / hidup. Begitulah cara saya melakukannya - tidak tahu apakah ini akan bekerja dalam PHP :)Groovy, 355 byte
Sumber terkompresi
sumber