বাচ্চাদের কার্ডগুলি সাফলিং


12

বাচ্চাদের পক্ষে ডেকে কার্ডের ডাল বদলানো খুব সহজ, তাই তাদের যথাযথভাবে সাধ্যমতো যুক্তিসঙ্গতভাবে সুফলিত ডেক পাওয়ার উপায়গুলি বের করা উচিত।

এটি করার একটি উপায় যা যুক্তিসঙ্গতভাবে ভাল ফলাফল দেয়:

  1. শীর্ষ কার্ডটি বের করে এনে ডেকের এলোমেলো জায়গা .োকান
  2. নীচের কার্ডটি বাইরে নিয়ে যান এবং ডেকে একটি এলোমেলো জায়গায় sertোকান
  3. যতক্ষণ না আপনি বিশ্বাস করেন এটি যথেষ্ট ভাল।

নোট করুন যে আপনি কখনই উপরের বা নীচের জায়গাতে কোনও কার্ড প্রবেশ করাবেন না, এটি ডেকে কোথাও স্থাপন করা উচিত ।


পরিবর্তে কার্ড অদলবদল, আমরা alphanumerical অক্ষর এলোমেলো করব: 0-9, A-J, a-j, q-zএবং Q-Z

নীচে প্রদর্শিত স্ট্রিং দিয়ে শুরু করুন এবং উপরে বর্ণিতভাবে অক্ষরগুলি সাফ করুন। আপনি যদি অসীমভাবে চলাফেরা অবিরত করতে চান বা কার্ডগুলি 100 রাউন্ড (উপরে থেকে 100 টি কার্ড এবং নীচে থেকে 100 টি কার্ড) পরিবর্তন করতে চান তবে আপনি চয়ন করতে পারেন।

0123456789abcdefghijqrstuvwxyzABCDEFGHIJQRSTUVWXYZ

চ্যালেঞ্জটি হ'ল চরিত্রগুলি পরিবর্তন করা। প্রতিটি "রদবদল" (কার্ড সন্নিবেশ করান এবং সন্নিবেশ করানো) 0.25 থেকে 0.35 সেকেন্ডের মধ্যে সময় নিতে হবে।

নীচের জিআইএফ একটি উদাহরণ আউটপুট দেখায়:

এখানে চিত্র বর্ণনা লিখুন


এটি তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।


"কেন তুমি নেই a-tপরিবর্তে a-j, q-z?" কারণ এটি কেবল অক্ষর নয় কার্ডের স্যুট চিত্রিত করবে। এবং হ্যাঁ, 5 স্যুট আছে।


দ্রষ্টব্য: আমি চ্যালেঞ্জগুলিতে চেক চিহ্ন ব্যবহার বন্ধ করার সিদ্ধান্ত নিয়েছি । প্রাসঙ্গিক মেটা পোস্টগুলি এখানে এবং এখানে


কিভাবে 5 স্যুট আছে?
ট্রোজানবাইসিসিডেন্ট

1
@TrojanByAccident পাঁচ সেটের কার্ড (ASCII অক্ষর) মামলা দ্বারা হয় 0-9, A-J, a-j, q-zএবং Q-Z, প্রশ্ন অনুযায়ী।
mbomb007

এবং ৫০ টি কার্ড রয়েছে, ৫২ নয় perhaps সম্ভবত বাচ্চারা কিছু হারিয়েছে।
জেসেন

@ mbomb007 আমি জিজ্ঞাসা করছিলাম কিভাবে কার্ডের 5 স্যুট রয়েছে। আমি যদি কিছু মিস করি না তবে কেবল স্পেডস, ক্লাব, হৃদয় এবং হীরা রয়েছে। এটি 4.
ট্রোজানবাইসিসিডেন্ট

2
@ ট্রোজানবাইসিসিডেন্ট এটি কার্ড ব্যবহার করে না। এটি কার্ডের পরিবর্তে এএসসিআইআই ব্যবহার করে। এএসসিআইআইয়ের এই পাঁচটি স্যুট। কার্ডগুলি
বদলানোর

উত্তর:


5

জাভাস্ক্রিপ্ট (ES6), 192 188 185 বাইট

document.write('<pre id=o>')
s='ABCDEFGHIJQRSTUVWXYZ'
a=[0,...123456789+s.toLowerCase()+s]
setInterval('o.innerText=a.join``;a.splice(Math.random(s^=1)*48+1,0,s?a.pop():a.shift())',250)

সম্পাদনা করুন: @ এল.সর্নোকে ধন্যবাদ 4 টি বাইট সংরক্ষণ করা হয়েছে é @ আরনাউল্ডকে 3 টি বাইট সংরক্ষণ করা হয়েছে।


আমি মনে করি আপনি যদি কলটির e^=1খালি বন্ধনীর ভিতরে চলে যান তবে আপনি কয়েকটি বাইট সংরক্ষণ করতে পারবেন Math.random। আপনি টেক্সট কনটেন্টকে অভ্যন্তরীণ এইচটিএমএলতেও পরিবর্তন করতে পারেন, যেহেতু আপনি কোনও বিশেষ অক্ষর পাস করছেন না। আপনি কলটির eঅভ্যন্তরে 0 তেও সেট করতে পারেন toLowerCase
লুক

আপনার সত্যই দরকার নেই e। আপনি শুধু ব্যবহার করতে পারে s। (কারণ ('some_string'^1) === 1)
আর্নল্ড

4

এমএটিএল, 62 58 56 বাইট

2 বাইটস @ লুইসকে ধন্যবাদ সংরক্ষণ করেছে

4Y2'A':'J'tk'Q':'Z'tk&h`48YrQJh&)@o?l&)wb}wO&)]&htD3&XxT

এই সংস্করণটি অনির্দিষ্টকালের জন্য চলবে। গতিশীল আউটপুট সমর্থন করে এমন একটি পরীক্ষামূলক অনলাইন ইন্টারপ্রেটার এমএটিএল অনলাইনে অনলাইন ডেমো ব্যবহার করে দেখুন । এটি যদি প্রথমে মারা না যায় তবে এটি 30 সেকেন্ডের জন্য (অনলাইন সংস্করণ দ্বারা আরোপিত একটি শক্ত সীমা) চলবে।

ব্যাখ্যা

4Y2     % Predefined literal for the characters '0'...'9'
'A':'J' % Create an array of the characters 'A'...'J'
tk      % Duplicate and make lowercase
'Q':'Z' % Create an array of the characters 'Q'...'Z'
tk      % Duplicate and make lowercase
&h      % Horizontally concatenate everything
`       % Do...while loop
  48YrQ % Determine a random integer between 2 and 49 
  Jh&)  % Split the string at the selected location
  @o?   % If this is an odd time through the loop
    l&) % Grab the first character
    wb  % Move it to the middle of the stack of three strings
  }     % Else...
    wO&)% Grab the last character and move it to the middle of the stack
  ]     % End of if statment
  &h    % Horizontally concatenate all strings on the stack
  tD    % Duplicate and display the current string
  3&Xx  % Pause for 0.3 seconds and clear the display
  T     % Push a literal TRUE to the stack to make this an infinite loop
        % Implicit end of while loop

4

পার্ল, 117 বাইট

@F=(0..9,a..j,"q"..z,A..J,Q..Z);{print"\r",@F;splice@F,++$|+rand(@F-2),0,++$v%2?shift@F:pop@F;select$,,$,,$,,.3;redo}

এটি চালানোর জন্য:

perl -e '@F=(0..9,a..j,"q"..z,A..J,Q..Z);{print"\r",@F;splice@F,++$|+rand(@F-2),0,++$v%2?shift@F:pop@F;select$,,$,,$,,.3;redo}'

ব্যাখ্যা:
- @F=(0..9,a..j,"q"..z,A..J,Q..Z)প্রাথমিক ডেক তৈরি করে এবং এতে সংরক্ষণ করে @F
- চিরকাল {...;redo}মৃত্যুদন্ড কার্যকর ...করা।
- splice@F,++$|+rand(@F-2),0,++$v%2?shift@F:pop@Fবিকল্পভাবে ডেক থেকে প্রথম / শেষ উপাদানটি সরিয়ে একটি এলোমেলো স্থানে প্রবেশ করুন (বর্ধন করার সময় $|, যাতে প্রিন্টগুলি বাফার হয় না),
- print"\r",@Fডেকটি প্রিন্ট করে,
- select$,,$,,$,,.30.3 সেকেন্ডের জন্য ঘুমায় (পার্ল এর sleepচেয়ে কম ঘুমাতে পারে না) 1 সেকেন্ড),


সংখ্যার ব্যাপ্তিটি 0..9নয় 1..9, এবং আপনার প্রাথমিক ডেকটিও ঠিক অর্ডার থেকে
বেরিয়েছে

@ সত্যিই ধন্যবাদ, ধন্যবাদ আমি এই কোডটি লেখার সময় অবশ্যই ক্লান্ত হয়ে পড়েছি। এটি যাইহোক ঠিক করা হয়েছে :)
দাদা

4

পাইথন 3, 199 196 192 186 বাইট

টুক্কাএক্সকে 4 বাইট সংরক্ষণ করা হয়েছে, এবং ফ্লিপট্যাককে 6 বাইট ধন্যবাদ!

import time,random
s="abcdefghijqrstuvwxyz";s="0123456789"+s+s.upper()
f=0
while 1:print(end="\r"+s);time.sleep(.3);s,e=s[1^f:50-f],s[f and-1];i=random.randint(1,49);s=s[:i]+e+s[i:];f^=1

printপাইথন 2 এর চেয়ে সংক্ষিপ্ত, নতুন লাইন দমন করতে পাইথন 3 এর ফাংশন ব্যবহার করে sys.stdout.write

শীর্ষ এবং নীচের কার্ডগুলিকে সরিয়ে নিয়ে যাওয়ার জন্য একটি ফ্লিপ-ফ্লপ ভেরিয়েবল ব্যবহার করে।

Ungolfed:

from random import randint
from time import sleep

string = "abcdefghijqrstuvwxyz"
string = "0123456789" + string + string.upper()
flip_flop = 0
while True:
    print("\r"+string,end="")
    sleep(0.3)
    string,char = string[not flip_flop:50-flip_flop], string[flip_flop and -1]
    position = randint(1,49)
    string = string[:position] + char + string[position:]
    f = not f

চান import random,timeখাটো হতে পারে?
ফ্লিপট্যাক

@ ফ্লিপট্যাক হ্যাঁ, 6 বাইট সংক্ষিপ্ত, ধন্যবাদ!
বুসুকসুয়ান

@ mbomb007 ধন্যবাদ, সম্পন্ন :-)
বাসুকসুয়ান

3

সি, 290 285 বাইট

#include<stdio.h>
#include<time.h>
#define S(s,a,b){int p=rand()%48+1;clock_t c=clock()+300;while(c>clock());int x=d[s];for(int i=s;i a p;)d[i b]=d[i];d[p]=x;printf(d);}
main(){char d[]="0123456789abcdefghijqrstuvwxyzABCDEFGHIJQRSTUVWXYZ\r";srand(time(0));for(;;){S(0,<,++)S(49,>,--)}}

Ungolfed:

#include<stdio.h> // variadic(printf) functions without a valid prototype = UB
#include<time.h>  // required for the implementation-defined clock_t type
// note that <stdlib.h> isnt required for srand()/rand() because they are
//  validly declared implicitly
#define S(s,a,b) // macro function
{
    int p=rand()%48+1;     // get a random position within the array
    clock_t c=clock()+300; // get the time 300 milliseconds from now
    while(c>clock());      // wait for that time
    int x=d[s];            // save the s'th character in a tempvar
    for(int i=s;i a p;)    // shift everything in the array from p
        d[i b]=d[i];       // a determines the comparison: </>
                           // b determines the operation: ++/--
    d[p]=x;                // put the tempvar in its new position
    printf(d);             // print the modified string
} // note: the \r at the end makes it so the next printf overwrites it

main() // main entry point
{      // deck to shuffle below
    char d[]="0123456789abcdefghijqrstuvwxyzABCDEFGHIJQRSTUVWXYZ\r";
    srand(time(0)); // seed the random number generator
    for(;;)         // infinite loop
    {
        S(0,<,++)   // shuffle from the start of the deck
        S(49,>,--)  // shuffle from the end of the deck
    }
}

2

সুইফট, 288 বাইট

import Darwin
var o=Array("0123456789abcdefghijqrstuvwxyzABCDEFGHIJQRSTUVWXYZ".characters)
while true{
print(String(o),terminator:"\r")
fflush(__stdoutp);{o.insert(o.removeLast(),at:$0())
o.insert(o.removeFirst(),at:$0()+1)}({Int(arc4random_uniform(UInt32(o.count-1)))})
usleep(300000)
}

সুইফটে গল্ফ করা সর্বদা একটি চ্যালেঞ্জ, কারণ এর বিক্রয় পয়েন্টগুলির মধ্যে একটি হল ভাব প্রকাশ ive


2

রুবি ( 138 119 বাইট)

f=0;a=[*0..9,*?a..?j,*?q..?z,*?A..?J,*?Q..?Z];loop{$><<a*''+?\r;a.insert(rand(48),f>0? a.shift : a.pop);f^=1;sleep 0.3}

@ পলপ্রেস্টিডজের মতো সংক্ষিপ্ত নয় তবে কমপক্ষে আমি এটি বুঝতে পেরেছি .. এটি শিখতেও দুর্দান্ত যে রুবি দুর্দান্ত এক অন্তহীন টানেলের মতো!



1

নুডেল , 41 বাইট বিহীন

"Q…Z"A…J"q…z"a…j"0…9⁵⁺ḷçṛ47⁺1ɱɲOṃḃɲ49ḅṙḍq

চেষ্টা করে দেখুন :)

কিভাবে এটা কাজ করে

"Q…Z"A…J"q…z"a…j"0…9⁵⁺                    # Creates the string literal to be shuffled.
                      ḷçṛ47⁺1ɱɲO      ṙḍq # The main "infinite" loop that applies the animation.
                                ṃḃɲ49ḅ    # Sub-loop that acts like an if-statement that only runs every odd iteration of the loop.

"Q…Z                                      # Pushes the string literal "QRSTUVWXYZ".
    "A…J                                  # Pushes the string literal "ABCDEFGHIJ".
        "q…z                              # Pushes the string literal "qrstuvwxyz".
            "a…j                          # Pushes the string literal "abcdefghij".
                "0…9                      # Pushes the string literal "0123456789".
                    ⁵⁺                    # Add the five strings on the stack to make one string.
                      ḷ                   # Unconditionally loop the following code.
                       ç                  # Copy what is on the top of the stack, clear the screen, and then print the copy.
                        ṛ47               # Create a random integer from 0 to 47.
                           ⁺1             # Increment the number to get 1 - 48 such that will not be the top or bottom of the deck.
                             ɱ            # Push the number of times that the unconditional loop has ran.
                              ɲO          # Consume the counter and push on zero if is even and one if is odd.
                                ṃ         # Conditional loop that only passes if the top of the stack is truthy (if the counter is odd).
                                 ḃ        # Throws away the top of the stack.
                                  ɲ49     # Pushes the literal 49 in order to represent the top of the deck.
                                     ḅ    # Ends the conditional loop.
                                      ṙ   # Relocate an element in the string by using the two numbers on the stack (either 0 or 49 to the random number).
                                       ḍq # Delay for a quarter of second. (End of unconditional loop)

<div id="noodel" code='"Q…Z"A…J"q…z"a…j"0…9⁵⁺ḷçṛ47⁺1ɱɲOṃḃɲ49ḅṙḍq' input="" cols="50" rows="2"></div>

<script src="https://tkellehe.github.io/noodel/release/noodel-0.0.js"></script>
<script src="https://tkellehe.github.io/noodel/ppcg.min.js"></script>


কেন এই প্রতিযোগিতা হয়?
স্টিভি গ্রিফিন

@ স্টেভি গ্রিফিন আমি জেএস পার্সার প্রকাশের চ্যালেঞ্জের পরে অবধি চূড়ান্ত করি নি। এর আগে সমস্ত কার্যকারিতা বিদ্যমান ছিল, কিন্তু নূডেলকে প্রতিযোগিতা করার অনুমতি দেওয়া আমার পক্ষে সঠিক কিনা তা আমি জানতাম না । সুতরাং, আমি নিরাপদ রুট
নিলাম

@ এমবিম্ব ২০০7, এটি ঠিক করার জন্য আপনাকে ধন্যবাদ। আমি বুঝতে পারিনি যে এটি শীর্ষে স্থাপন করা হয়েছিল।
টেকলেহে

0

বাশ, 170 বাইট

r(){((r=RANDOM%48+1));echo -n $c^;sleep .3;}
c=0123456789abcdefghijqrstuvwxyzABCDEFGHIJQRSTUVWXYZ
while r
do
c=${c:1:r}${c:0:1}${c:r+1}
r
c=${c:0:r}${c:49}${c:r:-1}
done

এখানে '^' (প্রথম লাইনে) প্রতিনিধিত্ব করে ctrl-m: ctrl-v enterআপনার সম্পাদক কীভাবে কমান্ড-লাইনে প্রবেশ করেছেন বা আপনার সম্পাদক হিসাবে কাজ করে তা অনুসারে (আপনার সম্পাদক কাজ করে ধরে নিচ্ছেন)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.