PDA

View Full Version : سوال: ادغام کارکتر میان رشته



tarsim
پنج شنبه 08 مرداد 1394, 02:40 صبح
سلام دوتا متغیر دارم

string soal = "محمدجواد";
string rand = "ابپتثجچحخدذرزژسشصضطظع";


یکی مثلا نام یک آدم مثل بالا محمد جواد میخوام توی رشته زیر به صورت درهم برهم قاطی شه مثل ابپتثمچحجدذرزژساصضدظع نکته ی مهم اینجاست این رشته دوم منظورم (rand) طول کاراکتر هاش همیشه 21 تا باید باشه و فقط بعضی از کاراکتر هاش به صورت اتفاقی برداشته بشه و حروف متغیر soal به صورت قاطی بجاش بیاد و باز هم حروف های اضافه باید حتما باشند اما حروف های محمد جواد باید تمامن قاطی متغیر دوم شده باشن. نکته دیگه اینه که امکان داره اسمی با چند حرف یکسان انتخاب بشه مثل اکبر صابری که دو تا ا داره باید هر دوتا ا توی متغیر دوم قرار بگیره . امیدوارم منظورم رو متوجه شده باشید. درکل دارم یک بازی میسازم که حدس نام اشخاص هست و هر کلمه از متغیر rand توی یک دکمه قرار میگیرند که این دکمه ها باه اندازه طول متغیر rand ساخته میشوند و تکست ان ها همان حروف در هم قاطی خواهد بود مثلا دکمه اول با تکست ا و دکمه دوم با تکست ب و سوم پ و الی آخر حالا من نیاز دارم اسم شخص هم میان دکمه ها به صورت قاطی قرار بگیره تا حتما روی دکمه ها درج شوند چون اگر درج نشوند حتی یک حرف در بازی کاربر نمیتواند کامل کند و ... حالا از اساتید میخوام راه چاه را نشانمان دهند. تشکر

zayens
پنج شنبه 08 مرداد 1394, 11:46 صبح
چه بازی سختی میشه! از بین 21 حرف باید محمد جواد رو پیدا کنیم؟!
کی اینو بازی میکنه!
اصن حالا که اینطور شد خودت بسازش

tarsim
پنج شنبه 08 مرداد 1394, 22:11 عصر
ممنمون ولی من نخواستم شما بسازید من فقط روش قاطی کردن متغیر ها رو میخوام و میدونم باید با حلقه اینکارو کرد

pbm_soy
جمعه 09 مرداد 1394, 00:35 صبح
شما میخواهید کاراکترهای رشته اول را در رشته دوم پخش کنید درسته؟
کدش یه چیزی تو این مایه ها میشه بجایی اینکه الگوریتم را توضیح بدهم همینجا نوشتم در ضمن تستش نکردم (تست و رفع باگ به عهده خودتان)


string soal = "ali reza";
string rand = "abcdfghtyujkiimnlopzxw";
Random r = new Random();
int pos;
string tmp="";
for (int i = 0; i < soal.Length; i++)
{
pos = r.Next(21);
//اگر تکراری نباشد
tmp = rand.Substring(0, pos - 1) + soal[i] + rand.Substring(pos + 1);
}
textBox1.Text = tmp;


البته شاید راه ساده تر هم یاشد

tarsim
جمعه 09 مرداد 1394, 10:14 صبح
مرسی اما این اشتباه فقط یک حرف رو میاد جای میده