পুলিশ এবং ডাকাত


11

কনভয়ের গেম অফ লাইফ প্রত্যেকেই সর্বদা বাস্তবায়িত করতে চায়। এটা বিরক্তিকর! এর পরিবর্তে পুলিশ এবং ডাকাতগুলি করা যাক!

আপনার দুটি দল থাকবে: পুলিশ এবং ডাকাত। প্রতিটি টিমের ৫০ জন করে স্বাস্থ্য রয়েছে Each প্রোগ্রাম অবিচ্ছিন্নভাবে লুপ হবে। প্রতিটি পুনরাবৃত্তি, নিম্নলিখিত ঘটবে:

  • প্রতিটি দলের জন্য, প্রথম চিঠিটি ( Cপুলিশদের Rজন্য, ডাকাতদের জন্য), একটি স্থান, সদস্যদের এইচপির একটি স্থান-বিচ্ছিন্ন তালিকা এবং একটি নতুন লাইন মুদ্রণ করুন । এটি দলের স্ট্যাটাস। দুটি সম্পন্ন হওয়ার পরে, অন্য একটি নতুন লাইন মুদ্রণ করুন। উদাহরণস্বরূপ, এটি প্রথম রাউন্ডের মতো দেখতে দেখতে এখানে কী:

    C 50 50 50 50 50
    R 50 50 50 50 50
    
  • 1 থেকে 10 (1 এবং 10 উভয়ই সহ) পর্যন্ত একটি এলোমেলো সংখ্যা চয়ন করুন। আমরা নাম্বারে কল করব NNএমনকি যদি হয়, ডাকাতরা এই রাউন্ডে হেরে যায়; যদি বিজোড় হয়, পুলিশ হারাবে।

  • হারানো দলের এমন একটি এলোমেলো সদস্য চয়ন করুন যার এইচপি 0 এর চেয়ে বেশি এবং Nএইচপিকে ছাড়িয়ে নিন । সদস্যদের এইচপি স্ট্যাটাসের তুলনায় 0 এর নীচে কখনও উপস্থিত হওয়া উচিত নয়।

  • লুপটি পুনরায় চালু করুন।

একটি দলের সমস্ত সদস্য তাদের সমস্ত এইচপি হারিয়ে ফেললে খেলাটি শেষ হয়। তারপরে, পুলিশগুলি জিতলে নিম্নলিখিতটি মুদ্রিত হবে:

C+
R-

এবং যদি ডাকাতরা জিততে পারে:

R+
C-

এটি কোড গল্ফ, তাই সংক্ষিপ্ত সংখ্যক অক্ষর জয় করে।

পাইথন 2 এ এখানে একটি নমুনা বাস্তবায়ন:

import random

cops = [50]*5
robbers = [50]*5

while any(cops) and any(robbers):
    # print the status
    print 'C', ' '.join(map(str, cops))
    print 'R', ' '.join(map(str, robbers))
    print
    # pick N
    N = random.randint(1, 10)
    # pick the losing team (robbers if N is even, else cops)
    losers = robbers if N % 2 == 0 else cops
    # pick a member whose HP is greater than 0
    losing_member = random.choice([i for i in range(len(losers)) if losers[i]])
    losers[losing_member] -= N
    # make sure the HP doesn't visibly drop below 0
    if losers[losing_member] < 0: losers[losing_member] = 0

if any(cops):
    # robbers lost
    print 'C+'
    print 'R-'
elif any(robbers):
    # cops lost
    print 'C-'
    print 'R+'

গৌণ বিড়ম্বনা: এই সাইটে থাকা 3176+ প্রশ্নের মধ্যে 11 টিরও বেশি ট্যাগ নেই game-of-life
Sanchises

3
@ সানচিইসগুলি প্রসারিত বিড়ম্বনা: এবং 14 ট্যাগ হয়েছে cops-and-robbers!
রানার 1112

@ সানচাইজস আমি বেশিরভাগ ক্ষেত্রে সাধারণভাবে প্রোগ্রামিংয়ের কথা উল্লেখ করছিলাম (উদাহরণস্বরূপ "আমাকে সহায়তা করুন! আমি কনওয়ের গেম অফ লাইফ বাস্তবায়নের চেষ্টা করছি!") ... তবে এটি এখনও বেশ ব্যঙ্গাত্মক।
kirbyfan64sos

@ kirbyfan64sos আমি জানি (সেখানে ছিলেন, এটি সম্পন্ন করেছেন), তবে এটি ঠিক ঠিক এমন এক ধরণের জায়গা যেখানে লোকেরা GoL বাস্তবায়ন করার পরে যান এবং আরও চান ... যাইহোক, সম্ভবত আমার এখানে যেতে হবে> <> , আমি এটি করতে পারি কিনা তা দেখতে দিন।
সানাইসাইজস

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

উত্তর:


3

সিজেম, 86 বাইট

আমি পার্টিতে কিছুটা দেরি করেছি, তবে সিজেমের উপহার নিয়ে এসেছি! ... আরে অপেক্ষা কর, কোথায় যাচ্ছ?

50aA*{"CR"1$+2/zSf*Nf+oNoAmr{_AmrE&+:P2$=:H!}gPH@)-Ue>t_2/z::+0#:L)!}g;'CL'+'-?N'R2$6^

এটি অনলাইনে চেষ্টা করুন।

ব্যাখ্যা

প্রশ্নগুলি যেমন একটি সরল প্রক্রিয়া অনুকরণ করতে বলে, এটি তুলনামূলক সরল উত্তর। সম্ভবত আমার একটি আকর্ষণীয় পছন্দ হ'ল একই তালিকায় আন্তঃবিভক্ত উভয় দলের স্বাস্থ্য রাখা। এটি দুটি পৃথক তালিকায় রূপান্তর করতে 3 বাইট ব্যয় করে, যা কোনও স্বাস্থ্য হারিয়েছে কিনা তা স্বাস্থ্য প্রদর্শন এবং যাচাই করার জন্য উভয়েরই প্রয়োজন। তবে (আমি মনে করি) এটি শুরুতে সংরক্ষণ করা 2 বাইট এবং আরও বেশি ক্ষয়ক্ষতি-লজিক লজিক দ্বারা তৈরি।

50aA*           "Initialize the health list to 10 copies of 50. Even indices
                 hold the health of cops and odd indices hold the health of
                 robbers.";
{               "Do:";
  "CR"1$+2/z      "Split the health list into the two teams for output, adding
                   the corresponding team letter to the start of each.
                       [a b c d e f g h i j]
                    -> [['C a c e g i] ['R b d f h j]]";
  Sf*Nf+          "Insert a space between each element in each team health list
                   and append a newline to the end of each team health list.";
  oNo             "Print the health status for each team and an extra newline.";
  Amr             "Generate the damage amount minus one. If the damage amount is
                   even (robbers lose), then this is odd and aligns with robbers
                   being at odd indices in the health list, and vice versa.";
  {               "Do:";
    _AmrE&+:P       "Add a random even number from [0, 10) to the damage amount
                     minus one. This value modulo the size of the health list
                     (10) selects a person on the losing team to be damaged.";
    2$=:H!
  }g              "... While the selected person's health is zero.";
  PH@)-Ue>t       "Set the damaged person's new health to the maximum of their
                   current health minus the damage amount and zero.";
  _2/z::+0#:L     "Split the health list into the two teams, sum each team's
                   health, and search for a team's health equal to zero.";
  )!
}g              "... While no team's health was found equal to zero.";
;               "Discard the health list.";
'C              "Produce a 'C'.";
L'+'-?          "Produce a '+' if team 1 (robbers) lost, or '-' otherwise.";
N               "Produce a newline.";
'R              "Produce an 'R'.";
2$6^            "Produce the opposite of the sign produced before.";
                "Implicitly print these final results.";

3

আর - 201

S=sum
Z=sample
C=R=rep(50,5)
while(S(R)*S(C)){cat("C",C,"\nR",R,"\n\n")
N=Z(10,1)
F=function(x,i=Z(rep(which(x>0),2),1)){x[i]=max(0,x[i]-N);x}
if(N%%2)R=F(R)else C=F(C)}
cat(c("R+\nC-\n","C+\nR-\n")[1+!S(R)])

এছাড়াও কেন rep(which(x>0),2)ন্যায় বিরোধী which(x>0)?
মিকিটি

1) আমি EOL অক্ষরগুলি গণনা করছি, যদিও এটি শেষ নয়। 2) sum(R*C)এবং sum(R)*sum(C)একই জিনিস নয়। উদাহরণস্বরূপ, সি = সি (0,0,0,10,10) এবং আর = সি (10, 10, 10, 0, 0) হলে আপনি প্রস্থান করতে চাইবেন না। সেক্ষেত্রে, আমি বরাদ্দ করে সংরক্ষণ করি S=sum। 3) সঙ্গে সমস্যা sampleযে যদি প্রথম আর্গুমেন্ট একটি একক সংখ্যা যেমন হয় sample(5, 1), তাহলে এটি করছেন একই হবে যেমন sample(1:5, 1)সবসময় ফিরে পরিবর্তে: 5, তা থেকে কোন সংখ্যা ফিরে আসবে 1থেকে 5। তাই sample(rep(x, 2), 1)সবসময় মধ্যে একটি সংখ্যা অবচয় জন্য আমার কৌতুক xএমনকি ক্ষেত্রে যখন length(x)হয় 1
ফ্লোডেল

দুঃখিত আমার খারাপ ... অবশ্যই যথেষ্ট কফি নেই। প্রতিনিধি () ট্রিকটি ব্যাখ্যা করার জন্য ধন্যবাদ। আমি ভেবেছিলাম কোনও কারণ থাকতে হবে, কেবল এটি দেখতে পারিনি
মিকিটি

2

এপিএল (ডায়ালগ) (101)

∇K
S←2 5⍴50
→6/⍨~∧/J←∨/S>0
⎕←3↑'CR',0⌈S
S[L;M[?⍴M←(0<S[L←1+~2⊤N;])/⍳5]]-←N←?10
→2
⎕←'CR',⍪'+-'⌽⍨J⍳0
∇

ব্যাখ্যা:

  • S←2 5⍴50: শুরুতে, S5-বাই -2 ম্যাট্রিক্সে সেট করুন যেখানে প্রতিটি মান 50 হয় the ম্যাট্রিক্সের উপরের সারিটি পুলিশকে প্রতিনিধিত্ব করে, দ্বিতীয় সারিতে ডাকাতদের প্রতিনিধিত্ব করে।
  • J←∨/S>0: ম্যাট্রিক্সের প্রতিটি সারির জন্য, Jএইচপিগুলির কোনও শূন্যের চেয়ে বড় কিনা তা সঞ্চয় করুন ।
  • →6/⍨~∧/J: উভয় দলে যদি জীবন্ত সদস্য না থাকে তবে লাইন 6. এ যান (শেষ)
  • ⎕←3↑'CR',0⌈S: ম্যাট্রিক্সের প্রতিটি মানের জন্য, এর সর্বাধিক এবং 0 আউটপুট, প্রথম সারিতে একটি 'সি' এবং দ্বিতীয়টিতে একটি 'আর' চাপান এবং তৃতীয় (খালি) লাইন যুক্ত করুন।
  • N←?10: ব্যবধানে একটি এলোমেলো নম্বর পান [1,10] এবং এটি সঞ্চয় করুন N
  • L←1+~2⊤N: সংখ্যাটি বিজোড় ছিল কি না এবং এটি সমান হলে সেট L(হারানো দল) সেট করুন ।12
  • M←(0<S[L... ;])/⍳5: সেই দলের জীবিত সদস্যদের সূচকগুলি পান এবং এগুলিতে সঞ্চয় করুনM
  • M[?⍴M... ]: এ থেকে একটি এলোমেলো মান নির্বাচন করুনM
  • S[L;M... ]-←N: Nনির্বাচিত দলের সদস্যের মান থেকে বিয়োগ করুন
  • →2: লাইন 2 এ লাফ দিন (জীবিত সদস্যদের জন্য পরীক্ষা)
  • ⎕←'CR',⍪'+-'⌽⍨J⍳0: চূড়ান্ত স্থিতি আউটপুট, +বিজয়ী দলের -সামনে এবং হারানো দলের সামনে রাখুন।

নমুনা আউটপুট


1

রুবি, 184

c,r=[p,p].map{('50 '*5).split}
puts([?C,*c]*' ',[?R,*r]*' ')while (u,v=[r,c].map{|a|a.shuffle.find{|x|x>?0}}).all?&&[u,v][rand(1..10)%2].sub!(/.+/){eval"#$&-1"}
puts u ?'R+
C-':'C+
R-'

1

গণিত, 246 241 বাইট

সম্ভবত আরও গল্ফ করা যেতে পারে ...

a=ConstantArray[50,{2,5}];b=Or@@(#<1&)/@#&;c=Print;d=StringJoin@Riffle[IntegerString/@#," "]&;e=RandomInteger;Label@f;Which[b@a[[1]],c@"R+\nC-",b@a[[2]],c@"C+\nR-",True,c["C "<>d@a[[1]]<>"\nR "<>d@a[[2]]];a[[Mod[g=e@9+1,2]+1,e@4+1]]-=g;Goto@f]

1

পিএইচপি - 416 বাইট

আমি গল্ফিংয়ে নতুন এবং যদিও এই চ্যালেঞ্জটি এটি চেষ্টা করার পক্ষে যথেষ্ট সহজ। আমি এখানে এসেছি তাই এখানে।

<?$c=[50,50,50,50,50];$r=[50,50,50,50,50];while((array_sum($c)!=0)&&(array_sum($r)!=0)){$a="C ".join(" ",$c)."\n";$b="R ".join(" ",$r)."\n";echo$a,$b;$n=rand(1,10);$m=rand(0,4);if($n %2==0){while($r[$m]==0){$m=rand(0,4);}$r[$m]=$r[$m]-$n;if($r[$m]<0){$r[$m]=0;}}else{while($c[$m]==0){$m=rand(0,4);}$c[$m]=$c[$m]-$n;if($c[$m]<0){$c[$m]=0;}}if(array_sum($r)==0){echo"C+\nR-\n";}if(array_sum($c)==0){echo"R+\nC-\n";}}?>

ব্যাখ্যা সহ:

<? 
$c=[50,50,50,50,50];$r=[50,50,50,50,50];                       populate Arrays
while((array_sum($c) != 0) && (array_sum($r) != 0)){           loop until on array sums up to 0
    $a="C ".join(" ",$c)."\n";                                 set cops health to a
    $b="R ".join(" ",$r)."\n";                                 set robbers health to b
    echo$a,$b;                                                 print cop and robber health
    $n=rand(1,10);                                             chose random n
    $m=rand(0,4);                                              chose random member
    if($n % 2 == 0){                                           check if n is even
        while($r[$m] == 0){ $m=rand(0,4); }                    loop until value m of array r is not 0
        $r[$m]=$r[$m]-$n;                                      lower health of member m
        if($r[$m] < 0){ $r[$m]=0; }                            if health goes below 0 set it to 0
    }else{
        while($c[$m] == 0){ $m=rand(0,4); }                    same as above
        $c[$m]=$c[$m] - $n;
        if($c[$m] < 0){$c[$m]=0;}
    }
    if(array_sum($r) == 0){ echo"C+\nR-\n"; }                  check if r array sums up to 0 and print that cops won
    if(array_sum($c) == 0){ echo"R+\nC-\n"; }                  check if c array sums up to 0 and print that robbers won
}
?>

আমি কোনও পিএইচপি ব্যবহারকারী নই, তবে আমি অনুমান করতে পারি যে আপনি সম্ভবত != 0অপারেটর ( !array_sum($r)) এর সাথে শূন্যের সমান হওয়ার জন্য চেকটি সরিয়ে এবং প্রতিস্থাপন করে কয়েকটি অক্ষর কেটে ফেলবেন ।
kirbyfan64sos

@ kirbyfan64sos যে কাজ করে না
টিমো

উহু. বেশিরভাগ ভাষায়, এটি হবে।
kirbyfan64sos

1

সি, 390 384 371 বাইট

আমার প্রথম গল্ফ, যদি কোনও সম্ভাব্য উন্নতি হয় তবে কেবল আমাকে বলুন :)

গল্ফ সংস্করণ:

#include <time.h>
#include <stdio.h>
int p[10],j,r,c,w,N,x;int s(){r=c=0;for(j=5;j--;){c+=p[5+j];r+=p[j];}return !!r-!!c;}void t(){for(j=10;j--;)printf("%s %d",j-4?j-9?"":"\n\nC":"\nR",p[j]*=p[j]>0);}main(){srand(time(0));for(j=10;j--;)p[j]=50;t();while(!(w=s())){N=rand()%10+1;while(!p[x=N%2*5+rand()%5]);p[x]-=N;t();}N=(x=w<1?'C':'R')-w*15;printf("\n\n%c+\n%c-",x,N);}

কিছুটা অবারিত সংস্করণ:

#include <time.h>
#include <stdio.h>
int p[10],j,r,c,w,N,x;

int s(){
    r=c=0;
    for(j=5;j--;){
        c+=p[5+j];
        r+=p[j];
    }
    return !!r-!!c;
}

void t(){
    for(j=10;j--;)printf("%s %d",j-4?j-9?"":"\n\nC":"\nR",p[j]*=p[j]>0);
}

main(){
    srand(time(0));
    for(j=10;j--;)p[j]=50;
    t();
    while(!(w=s())){
        N=rand()%10+1;
        while(!p[x=N%2*5+rand()%5]);
        p[x]-=N;
        t();
    }
    //w=-1 if cops won, w=1 if robbers won
    N=(x=w<1?'C':'R')-w*15;
    printf("\n\n%c+\n%c-",x,N);
}

সম্পাদনা করুন: আমি এটিকে কিছুটা ছোট করার একটি উপায় খুঁজে পেয়েছি এবং একটি ছোট বাগটি ঠিক করেছি


একটি ছোট উন্নতি: আপনি লুপগুলি (উদাহরণস্বরূপ for(j=0;j<10;j++)) আরও সংক্ষিপ্ত সংস্করণ ( for(j=10;--j;)) দিয়ে প্রতিস্থাপন করতে পারেন ।
kirbyfan64sos

আপনি সম্পূর্ণরূপে ঠিক বলেছেন, এটি এবং কয়েকটি ছোটখাটো অন্যান্য জিনিস "স্থির", ধন্যবাদ thanks
মেটাফোর্স

0

ব্যাচ - 396 বাইট

আমি জানি না যে এই প্রযুক্তিগতভাবে গণনা করা হয় - কারণ এটি আসলে সেই দলের কোনও এলোমেলো সদস্য নির্বাচন করে না যার স্বাস্থ্য 0 এর চেয়ে বেশি । এটি কেবল একটি এলোমেলো সদস্য নির্বাচন করে, এবং যদি স্বাস্থ্য বিয়োগটি 0 এর চেয়ে কম সংখ্যা উত্পন্ন করে, তবে সংখ্যাটি 0 হয়ে যায় ..

@echo off&setLocal enableDelayedExpansion&for %%a in (C R)do for %%b in (1 2 3 4 5)do set %%a%%b=50
:a
set/aN=%RANDOM%*10/32768+1
set/ac=%N%/2*2
if %c%==%N% (set T=C&set L=R)else set T=R&set L=C
set/aG=%RANDOM%*5/32768+1
set/a%T%%G%-=%N%
for %%a in (C R)do set %%a=0&for %%b in (1 2 3 4 5)do (if !%%a%%b! LEQ 0 set %%a%%b=0
set/a%%a+=!%%a%%b!)
if %C% NEQ 0 if %R% NEQ 0 goto :a
echo !T!+&echo !L!-

প্রয়োজনীয়তাটি হ'ল মুদ্রিত স্থিতিতে মান কখনই 0 এর নীচে প্রদর্শিত হয় না। আমি যে উদাহরণটি দেখিয়েছি তাতে আমি একই কাজ করেছি।
kirbyfan64sos

0

জাভাস্ক্রিপ্ট: 410

function x(l){var t=this,o=t.p={n:l||"C",h:[50,50,50,50,50],s:function(){return o.h.reduce(function(a,b){return a+b})},r:function(){console.log(o.n+' '+o.h.join(' '))},d:function(m){while(o.h[z=~~(Math.random()*5)]<1){}o.h[z]=m>o.h[z]?0:o.h[z]-m}};o.r()}q=[new x(),new x('R')];while((c=q[0].p.s()>0)&&q[1].p.s()>0){q[(z=~~(Math.random()*10))%2].p.d(z);q[0].p.r();q[1].p.r()}console.log(c?'C+\r\nR-':'R+\n\rC-')

0

অষ্টাভে, 182 177 158 145 বাইট

145:

t=repmat(50,5);while prod(any(t))d=ceil(rand*10);c=2-mod(d,2);r=ceil(rand*5);t(r,c)-=d;t.*=t>0;end;p=2*any(t,1);['C-';'R+';'C+';'R-'](1+p:2+p,:)

আমি চরিত্রের অঙ্কুর শূন্যের উপরে রয়েছে কিনা তা পরীক্ষা করেই ছেড়ে দিয়েছি - এটি কেবল তখনই তাত্পর্যপূর্ণ হবে যদি আমরা প্রতিটি পালায়ে রাষ্ট্র প্রদর্শন করতে বাধ্য হত - এখানে আমরা কেবল এলোমেলোভাবে আরএনজি থেকে একটি এলোমেলো নম্বর এড়িয়ে যাচ্ছি, এটি আরও এলোমেলো করে তোলে।

এছাড়াও, প্রতিস্থাপন

t=max(0,t)

সংক্ষিপ্ত সহ

t.*=t>0


[দ্রষ্টব্য - এটি নতুন লাইন ছাড়াই 'সি + আর-' মুদ্রণ করছে - এটি 145 বাইট সংস্করণে স্থির করা হয়েছে]

158:

t=repmat(50,5);while prod(any(t))d=ceil(rand*10);c=2-mod(d,2);do r=ceil(rand*5);until t(r,c);t(r,c)-=d;t=max(0,t);end;p=4*any(t,1);disp('C-R+C+R-'(1+p:4+p))

Degolfed:

t=repmat(50,5);               #only first two columns (cops, robbers) relevant
while prod(any(t))
    d=ceil(rand*10);
    c=2-mod(d,2);
    do r=ceil(rand*5);until t(r,c);
    t(r,c)-=d;
    t=max(0,t);
end;
p=4*any(t,1);
disp('C-R+C+R-'(1+p:4+p))

আমি পরিবর্তন repmat(50,5,2)করতে repmat(5)- তাই আমরা এখন 5x2 পরিবর্তে 5x5 ম্যাট্রিক্স আছে (অতিরিক্ত 3 কলাম অ্যালগরিদম প্রভাবিত করে না)। আমি আউটপুট সংকোচনের জন্য একটি উপায়ও খুঁজে পেয়েছি।

177:

t=repmat(50,5,2);while prod(sum(t))d=ceil(rand*10);c=2-mod(d,2);do r=ceil(rand*5);until t(r,c);t(r,c)-=d;t=max(0,t);end;if sum(t)(1)printf "C+\nR-\n";else printf "C-\nR+\n";end

Degolfed:

t=repmat(50,5,2);
while prod(sum(t))
    d=ceil(rand*10);
    c=2-mod(d,2);                  #cops or robbers affected?
    do r=ceil(rand*5);until t(r,c);
    t(r,c)-=d;
    t=max(0,t);
end
if sum(t)(1)
    printf "C+\nR-\n"
else
    printf "C-\nR+\n"
end

মূলত, আমরা একটি 5x2 ম্যাট্রিক্স তৈরি করি, যেখানে প্রথম কলামটি পুলিশ হয় এবং দ্বিতীয় কলামটি ডাকাত হয়:

t =
50     50
50     50
50     50
50     50
50     50
[cops] [robbers]

sumফাংশন যখন কেউ যুক্তি প্রয়োগ, কলাম একটি সমষ্টি তোলে তাই এটি প্রাথমিকভাবে রয়েছে:

250    250

যখন তাদের মধ্যে একটি শূন্যে পৌঁছে যায় prod(sum(t))তখন লুপ ভাঙা শূন্যে মূল্যায়ন করে। তারপরে আমরা যাচাই করতে পারি যে কলামের যোগফল শূন্য checking

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