شِلِم

شلم از کلمه “ slam“ انگلیسی و “chelem“ فرانسه گرفته شده‌است و معنی آن جمع آوری تمام برگهای بازی است. هدف این بازی رسیدن به امتیاز توافق شده (معمولأ ۱۲۰۰) زودتر از رقیب است.






شرح مختصر بازی: در این بازی هر بازیکن ۱۲ برگ دریافت می‌کند. بعد شروع به خواندن امتیازی که می‌توانند بگیرند می‌کنند. مثلآ ۱۲۵ امتیاز از کل ۱۶۵ امتیاز ممکن. کسی که امتیاز بالاتری را بخواند به عنوان حاکم تعیین می‌شود. سپس او با همکاری یارش باید تلاش کند تا امتیاز تعهد شده را کسب کند. در اینصورت او به همان تعداد امتیاز که تعهد داده است امتیاز دریافت می‌کند و در صورتی که نتواند به امتیاز تعهد داده شده برسد به همان اندازه نمره منفی دریافت می کند و فقط در صورتی امتیاز کامل (165 از 165) را دریافت میکند که همه 165 امتیاز را کسب کرده و شلم کند حتی اگز عدد کمتری را متعهد شده باشد. در خواندن امتیازات کسی مقدار شلم را بخاند ( 165 امتیاز را جمع کند) در این صورت نمره مثبت و منفی وی دو برابر می شود. بازی ادامه خواهد داشت تا وقتی که یک تیم زودتر به امتیاز نهایی برسد. در این بازی بردن هر دست ۵ امتیاز دارد. هر ۵ لو، ۵ امتیاز ‚ هر ۱۰ لو، ۱۰ امتیاز و هر تک (آس(هم ۱۰ امتیاز دارد. به این ترتیب در مجموع کل امتیاز یک بازی ۱۶۵ امتیاز است:

۱۳×۵ + ۴×۵ + ۴×۱۰ + ۴×۱۰=۱۶۵




قهوه

این بازی شباهت زیادی به بازی اسپیدز آمریکایی دارد، اما تفاوت آن استفاده از ژوکر است. این بازی از خانواده حکم است




شرح مختصر بازی:

در این بازی ژوکر رنگی بالاترین برگ و ژوکر سیاه برگ سر بعد از آن به شمار می‌رود. در این بازی حکم همیشه پیک است. هر فرد در ابتدای بازی تعداد دستی را که می‌تواند بگیرد اعلام می‌کند (حد اقل ۲ دست). سپس بازی می‌کنیم. در پایان هر تیمی که کمتر از مجموع تعهد افرادش دست گرفته بود با ضریب ده منفی می‌خورد. کسب کردن دست تعهد شده ۱۰ امتیاز برای هر دست، و برای دست‌های اضافی گرفته شده ۱ امتیاز برای هر دست حساب می‌شود. بازی تا ۵۰۱ یا ۱۰۰۱ ادامه دارد






شرح کامل بازی:

آغاز بازی:دو ژوکر سیاه و رنگی را وارد دست می‌کنیم و ۲ لو خشت و دل را بیرون می‌کشیم تا ۵۲ برگ کامل شود.

الف) دست دادن: بر حسب قرعه یک نفر دست می‌دهد. دست دادن مانند حکم است اما نیاز به تعیین حاکم نیست چون حکم همیشه پیک است.

نکته مهم در دست دادن این بازی این است که نفر پاستور عوض نمی‌شود تا وقتی که تیم او از نظر امتیاز از تیم رقیب پیش بیفتد. در این هنگام دست دادن به نفر سمت راست منتقل می‌شود. و دوباره این شخص وظیفه دست دادن را تا زمانیکه امتیاز تیمش از رقیب بیشتر ود را انجام خواهد داد

ب) تعهد کردن و نحوه شمارش امتیاز: پس از دست دادن، هر فردی اعلام می‌کند که چند دست خواهد برد. این تعداد از ۲ دست کمتر نمی‌تواند باشد. ابتدا نفر سمت راست پاستور و سپس افراد دیگر از سمت راست اعلام می‌کنند. پس از پایان این مرحله، جمع تعهد هر تیم نوشته می‌شود، مثلأ تیم اول جمعآ ۶ دست و تیم دوم جمعأ ۵ دست خوانده‌است. در پایان بازی، چنانچه تیمی نتوانسته باشد به اندازه دست‌های تعهد شده دست ببرد، تعهد خود × ۱۰ را منفی خواهد خورد. مثلأ تیم اول مورد بحث ما اگر نتواند ۶ دست را بگیرد، ۶۰ امتیاز منفی خواهد خورد. اگر تیمی بتواند همان امتیاز تعهد شده، یا بیشتر از آن را بگیرد، به تعداد دست‌های تعهد شده، هر دست ۱۰ امتیاز و برای دست‌های اضافی که گرفته، هر دست ۱ امتیاز می‌گیرد. مثلأ اگر همان تیم مورد مثال ما به جای ۶ دست، ۸ دست ببرد، ۶۲ امتیاز می‌گیرد: ۶۰ امتیاز برای ۶ دست تعهد شده و ۲ امتیاز برای دو دست اضافی

ج) بازی: بازی توسط فرد سمت راست پاستور آغاز می‌شود و کاملأ مطابق حکم است اما با یک تفاوت در نحوه بازی ژوکرها: ژوکرها را می‌توان در هر زمان که بخواهیم بازی کنیم، بدون توجه به این که آیا خال بازی شده را در دستمان داریم یا نه. مثلأ اگر تک دل بازی شده باشد و ما در دستمان دل هم داشته باشیم، در صورت صلاح دانستن می‌توانیم با ژوکر بازی کنیم و آن را ببریم. ژوکر رنگی بالاترین برگ و ژوکر سیاه برگ سر بعد از آن است. این دو حتی تک پیک یعنی بالاترین برگ حکم را هم می‌برند. اما نکته جالب بازی این است که ژوکر رنگی اجازه بازی شدن را ندارد تا وقتی که ژوکر سیاه بازی شده باشد. در واقع ژوکر رنگی گروگان ژوکر سیاه است و کسی که ژوکر سیاه را داشته باشد می‌تواند با بازی خوب از بازی مناسب ژوکر رنگی جلوگیری کند. نکته دیگر این که ژوکر سیاه باید حتمأ تا دست دهم بازی شود. این کار برای این است که ژوکر رنگی هم اجازه بازی بیابد

د) شمارش امتیاز و پایان بازی: بازی تا رسیدن یکی از دو تیم به امتیاز از پیش تعین شده، که معمولأ ۵۰۱ یا ۱۰۰۱ است. ادامه می‌یابد. ه)قانون دیگری که این بازی دارد امکان خرید و فروش دست است به این صورت که گروهی که تعداد دست کمتری را اعلام کرده اند میتوانند دست بهتر گروه مقابل را با اعلام حداقل دو دست بیشتر(اگر بالای 10 بود یک دست بیشتر)مال خود کنند مثال گروه اول مجوع 7 دست میخواند ولی گروه دوم میبیند با دست بدی که دارد حداکثر 3 دست میگیرد(احتمالاً گروه اول امتیاز بیشتری دارد و میخواهد بدون ریسک تا پایان بازی پیش رود)یعنی گروه اول امکان گرفتن 10 دست را دارد پس گروه اول اعلام میکند که دست گروه اول را میخرد پس هر کس پس از حفظ کردن دست خود دست خود را به نفر سمت راست خود میدهد و دو گروه دوباره تعداد دستی که میخوانند را اعلام میکنند(گروه دوم حداقل باید 9 دست را اعلام کند)خرید و فروش میتواند چند بار انجام شود
سور

چهاربرگ یا سور یا یازده شناخته شده ترین و آسان ترین بازی با ورق است که می‌توان به سادگی آن را فرا گرفت. این بازی را می‌توان به روش‌های گوناگون ۲ نفره، ۳ نفره و ۴ نفره و... انجام داد که البته گونه ۲ نفره آن بیشتر مورد توجه است.

دست دادن: ابتدا یک نفر ورقها را بر زده و چهار برگ به حریف، چهار برگ به خودش و چهار برگ روی زمین پخش می‌کند.

بازی کردن: نحوه بازی به این گونه است که هر گاه مجموع عدد روی چند کارت ۱۱ شد فرد می‌تواند آن برگ‌ها را جمع کند.





قوانین

سرباز همه کارت‌ها را می‌تواند جمع کند به جز شاه و بی بی
کارت شاه می‌تواند کارت شاه دیگر را جمع کند
کارت بی بی می‌تواند کارت بی بی دیگر را جمع کند
در صورتی که بازیکن با کارتی که می‌اندازد زمین را خالی کند آن بازیکن سور زده است
سرباز نمی‌تواند سور بزند
در صورت خالی بودن زمین بازیکن نمی‌تواند سرباز بیندازد (برای جلوگیری از سورخوردن) مگر آنکه دیگر ورقی نداشته باشد





امتیاز بندی

۱۰ خشت ۳ امتیاز دارد
۲ خاج ۲ امتیاز دارد
هفت عدد (برگ) خال خاج ۷ امتیاز دارد (کمتر از هفت عدد امتیازی ندارد و بیشتر از هفت عدد هم تنها ۷ امتیاز را دارد)
هر تک به تنهایی ۱ امتیاز دارد
هر سرباز به تنهایی ۱ امتیاز دارد
هر سور ۵ امتیاز دارد





پوکر

قوانین و رتبه بندی در بازی پوکر

نمودار زیر به ترتیب شامل بهترین دست (Royal Flush) تا بدترین دست ممکن (High Card) است که در بازی پوکر مورد استفاده قرار می‌گیرد. گفتنی است که در بازی پوکر بهترین دست برنده می*شود، بنابراین به طور مثال دست (Full House) نسبت به (Flush) برتری دارد.

رویال فلاش (royal flush): این ترکیب بالاترین دست در رده بندی دستهای پوکر است. پنج کارت از آس تا ۱۰ با یک خال (گشنیز، خشت، دل یا پیک):

A♠ K♠ Q♠ J♠ 10♠

استریت فلاش (استریت به معنای مستقیم یا ردیف است) (straight flush): پنج کارت پشت سر هم با یک خال (گشنیز، خشت، دل یا پیک):

Q♥ J♥ 10♥ 9♥ 8♥

کاره ("Four of a kind" or "Quad"): چهار عدد از یک ورق:

K♣ K♦ K♥ K♠ 9♥

فول هاس (full house): سه تا از یک عدد و ۲ تا از عدد دیگر:

8♣ 8♦ 8♠ K♣ K♠

فلاش (flush): پنج ورق از یک خال بدون ترتیب پشت سر هم:

K♠ J♠ 8♠ 4♠ 3♠

استریت (straight): پنج ورق به ترتیب پشت سر هم از خالهای مختلف* (حتی اگر یک خال با بقیه متفاوت باشد):

5♦ 4♥ 3♠ 2♦ A♦

سه (three of a kind): سه عدد از یک ورق:

7♣ 7♥ 7♠ K♦ 2♠

دو گروه یا دو pari (two pair): دو عدد از دو ورق:

A♣ A♦ 8♥ 8♠ Q♠

یک گروه یا pair(one pair): دو عدد از یک ورق:

9♥ 9♠ A♣ J♠ 4♥

ورق بالا (high card): پنج کارت بدون هیچگونه دسته بندی:

A♦ 10♦ 9♠ 5♣ 4♣






نحوه توزیع ورق*ها

در انواع Hold'em، Omaha و Five Crad Draw یک دیسک در جهت حرکت عقربه‌های ساعت بین بازیکنان می‌چرخد که به آن Dealer می گویند. توزیع کارت از نفر بعد از Dealer شروع می‌شود و به هر نفر یک کارت داده می‌شود تا به Dealer برسیم. سپس این کار یک دور دیگر (در Hold'em) یا سه بار دیگر (در Omaha) انجام می‌شود. (در Hold'em هر نفر ۲ کارت و در Omaha هر نفر ۴ کارت خواهد داشت.)





روند انجام شرط بندی (Betting):

حداقل میزان پول لازم برای ورود به هر دور بازی Big Blind نام دارد. دیسک Dealer نشان می‌دهد که نفر بعد از آن در جهت عقربه‌های ساعت باید نصف میزان حداقل (Small Blind) را قبل از دریافت هر کارتی بپردازد و نفر بعد از وی کل مبلغ را(Big Blind). در واقع این دو نفر مجبور به پرداخت این مبالغ هستند. برای اختصار از این پس از Big Blind و Small Bling به عنوان SB و BB یاد می‌شود.

بعد از توزیع کارت، شرط بندی از نفر بعد از BB شروع می‌شود.

هر بازیکن برای ورود به بازی باید حداقل میزان BB را بپردازد یا در غیر اینصورت از آن دور بازی خارج شود و به اصطلاح جا برود (Fold).

حالت دیگر این است که شخصی با توجه به پتانسیل بالای کارتهای موجود در دستش میزان شرط را افزایش دهد (Raise).

حداقل میزان Raise به اندازه یک BB است. از نظر حداکثر میزان Raise پوکر به سه دسته تقسیم می‌شود. Limit و No-Limit و Pot Limit در نوع Limit حداکثر مبلغ افزایش همان یک BB است و اینکار تا حداکثر ۴ دور انجام پذیر است. در نوع Pot Limit حداکثر به اندازه پولی که تا به آن لحظه در میان بازی (Pot) جمع شده می‌توان Raise کرد. در نوع No Limit محدودیتی در میزان افزایش شرط نیست.

بعد از Raise هر بازیکنی باید به میزان آخرین شرط بپردازد تا بتواند در آن دور بازی شرکت کند. برای مثال اگر در یک دور، SB برابر ۱۰ و BB برابر ۲۰ است، اگر کسی مبلغ را به ۶۰ افزایش دهد، نفرات بعدی باید حداقل همان ۶۰ را برای حضور در بازی بپردازند.

مثال ۱ - تعداد افراد ۶ نفر

SB = ۱۰

BB = ۲۰

نفر اول بعد از BB جا می‌رود. (Fold)

نفر دوم ۲۰ دلار می‌پردازد. (Call)

نفر سوم ۲۰ دلار می‌پردازد. (Call)

نفر چهارم که همان نفر صاحب دیسک Dealer است جا می‌رود. (Fold)

نفر SB چون قبلاً ۱۰ تا پرداخته است، برای ادامه باید ۱۰ تای دیگر بپردازد.

نفر BB در اینجا دارای دو انتخاب است. وی می‌تواند یا Check کند به این معنی که چون قبلاً ۲۰ تا پرداخته با اعلام موافقت خود با میزان شرط، آن دور شرط را می‌بندد و وارد دور بعد می‌شویم. حالت دیگر این است که وی Raise می‌کند که در این حالت کلیه افراد باقی‌مانده، باید به نوبت به میزان ما به التفاوت مبلغ جدید و ۲۰ تایی که قبلاً پرداخته‌اند بپردازند تا قادر به ادامه بازی باشند. اگر کسی مایل به پرداخت مبلغ اضافه نیست Fold می‌کند و از آن دور بازی خارج می‌شود ولی پولی که تا آن زمان در بازی گذاشته را از دست خواهد داد.

دور اول کارتهای اشتراکی: سه کارت با نام Flop

بعد از پایان دور اول شرط بندی، ۳ کارت رو می‌شود. این سه کارت متعلق به همه بازیکنان است. به این معنی که هر یک از آنان با اضافه کردن این سه کارت به دو کارت موجود در دست خود یک دست ۵ تایی پوکر که در بالا لیست شده می‌سازد. بعد از نمایش Flop یک دور تازه شرط بندی، انجام می‌شود. در این دور نفر اول برای اعلام شرط SB است که بر اساس گردش عقربه‌های ساعت نفرات بعدی باید بازی کنند. باز هم مانند قبل هر بازیکن می‌تواند Check کند، Raise کند یا در پاسخ به یک Raise جا رفته یا Fold کند.

بعد از بسته شدن دور جدید کارت بعدی اشتراکی رو می‌شود.

دور دوم کارتهای اشتراکی: یک کارت با نام Turn یا Fourth Street

بعد از پایان دور دوم شرط بندی، ۱ کارت رو می‌شود. این کارت نیز همچون سه کارت قبلی متعلق به همه بازیکنان است. به این معنی که هر یک از آنان با اضافه کردن این چهار کارت به دو کارت موجود در دست خود و با ترکیب بهترین دست ۵ تایی از ۶ کارت که در بالا لیست شده می‌سازد. بعد از نمایش Turn یک دور تازه شرط بندی، انجام می‌شود. در این دور نفر اول برای اعلام شرط SB (یا اولین نفر بعد از وی که در بازی حضور دارد) است که بر اساس گردش عقربه‌های ساعت نفرات بعدی باید بازی کنند.

باز هم مانند قبل هر بازیکن می‌تواند Check کند، Raise کند یا در پاسخ به یک Raise جا رفته یا Fold کند.

بعد از بسته شدن دور جدید کارت پایانی اشتراکی رو می‌شود.

دور سوم کارتهای اشتراکی: یک کارت با نام River یا Fifth Street

بعد از پایان دور سوم شرط بندی، ۱ کارت که کارت آخر است رو می‌شود. این کارت نیز همچون چهار کارت قبلی متعلق به همه بازیکنان است. به این معنی که هر یک از آنان با اضافه کردن این پنج کارت به دو کارت موجود در دست خود و با ترکیب بهترین دست ۵ تایی از ۷ کارت که در بالا لیست شده می‌سازد. بعد از نمایش River یک دور تازه شرط بندی، انجام می‌شود. در این دور نفر اول برای اعلام شرط SB (یا اولین نفر بعد از وی که در بازی حضور دارد) است که بر اساس گردش عقربه‌های ساعت نفرات بعدی باید بازی کنند.

باز هم مانند قبل هر بازیکن می‌تواند Check کند، Raise کند یا در پاسخ به یک Raise جا رفته یا Fold کند.

در هر دور بازی اگر افزایش شرط توسط یک بازیکن منتهی به جارفتن یا Fold بقیه شود، نفر باقی‌مانده برنده کلیه پولهایی است که تا آن لحظه جمع شده است.

پس از رو شده کارت آخر یا River و پس از بسته شدن دور شرط، در صورتی که بیش از یک نفر در بازی حضور دارند، Show Down یا نمایش دستها اتفاق می‌افتد. به این معنی که آخرین نفر که قبل از کارت آخر شرط را افزایش داده (و در صورت عدم افزایش، SB یا نفر اول بعد از وی که در بازی حضور دارد) کارتهایش را رو می‌کند و به ترتیب بقیه نیز همین کار را می‌کنند و بهترین دست پولهای موجود را می‌برد.

اگر دو یا چند نفر دستهای مشابه داشته باشند، Split یا تقسیم پول انجام می‌شود.

بدیهی است میزان افزایش مبلغ توسط شما به قدرت دست شما در هر لحظه یا استنباط شما از ضعف حریفتان با توجه به بازی وی تا آن لحظه بستگی دارد.

مثال ۲ (No-Limit Hold'em) - تعداد افراد ۶ نفر

SB: ده دلار

BB: بیست دلار

نفر اول بعد از BB (علی) با دست ۳♠ ۲♦ جا می‌رود. (Fold) نفر دوم (بهزاد) با دست Q♥ J♥ بیست دلار می‌پردازد. (Call) نفر سوم (مجید) با دست A♠ A♦ با شصت دلار افزایش شرط را به هشتاد دلار میرساند. (Raise) نفر چهارم (الهام) که همان نفر صاحب دیسک Dealer است با دست ۵♠ ۴♥ جا می‌رود (Fold). نفر SB (روشنک) چون قبلاً ۱۰ دلار پرداخته است، برای ادامه باید ۷۰ دلار دیگر بپردازد. وی با دست K♠ Q♠ هفتاد دلار دیگر می‌پردازد. نفر BB (مسعود) با دست J♠ 4♥ جا می‌رود. نفر اول بعد از BB که قبلاً جا رفته است. نفر دوم بعد از BB که قبلاً با دست Q♥ J♥ بیست دلار پرداخته است شصت دلار دیگر می‌پردازد و دور شرط بندی بسته می‌شود. پول موجود در Pot: دویست و ۶۰ دلار



Flop:

A♣ 9♠ 7♠

نوبت بهزاد است. وی با ترکیب A♣ 9♠ 7♠ Q♥ J♥ دست قدرتمندی نساخته است. بنابراین چک می‌کند. مجید با ترکیب A♠ A ♦ A♣ 9♠ 7♠ دستی بسیار قدرتمند تا این لحظه دارد. سه آس. وی ۱۰۰ دلار شرط می‌بندد. روشنک با ترکیب A♣ 9♠ 7♠ K♠ Q♠ دستی قدرتمندی ندارد ولی اگر یک پیک دیگر روی زمین ظاهر شود دستی بسیار قدرتمند خواهد ساخت. وی تصمیم می‌گیرد ۱۰۰ دلار برای دیدن کارت بعدی بپردازد. مجدداً بازی به بهزاد می‌رسد. وی نه دست خوبی دارد و نه امیدی برای بهبود دستش دارد. وی از خیر پولی که تاکنون سرمایه گذاری کرده می‌گذرد و جا می‌رود.

پول موجود در Pot: چهارصد و ۶۰ دلار

Turn:

۱۰♠



Board:

A♣ 9♠ 7♠ 10♠

مجید با ترکیب A♠ A ♦ A♣ 9♠ 10♠ با دیدن پیک سوم تا حدودی نگران این است که روشنک با داشتن دو پیک در دستش به فلاش رسیده باشد. با اینحال وی ۲۰۰ دلار شرط می‌بندد. روشنک با ترکیب 9♠ 7♠ K♠ Q ♠10♠ دست بسیار قدرتمندی دارد. وی ۲۰۰ دلار را Call می‌کند.

پول موجود در Pot: هشتصد و ۶۰ دلار



River:

۷♥



Board:

A♣ 9♠ 7♠ 10♠ 7♥

مجید با ترکیب A♠ A ♦ A♣ 7♥ 7♠ تقریباً شکست ناپذیر است. روشنک تنها باید ۷♦ ۷♣ داشته باشد تا با کاره هفت مجید را ببرد که احتمالی بسیار بعید است. مجید تمام موجودی اش را ۱۰۰۰ دلار دیگر باشد به میان می‌گذارد.

روشنک کماکان بهترین ترکیب ممکنش همان 9♠ 7♠ K♠ Q ♠10♠ است. دیدن یک Pair در کارتهای مشترک او را نگران کرده که نکند مجید به فول هاوس رسیده باشد. با این حال وی موجودی باقی‌مانده اش را که ۱۲۰۰ دلار دیگر است را به میان می‌گذارد. البته از موجودی وی تنها ۱۰۰۰ دلار دیگر به میان می‌رود (برابر با آخرین موجودی مجید) و ۲۰۰ دلار برای خودش می‌ماند.

مجید با ترکیب ♠ A ♦ A♣ 7♥ 7♠ (Aces full of Sevens) روشنک را که دارای ترکیب 9♠ 7♠ K♠ Q ♠10♠ است (Flush King high) شکست می‌دهد.






بیست و یک

بیست و یک یا بلک‌جک یکی از بازی ورق‌بازی است که برای انجام آن بایستی از سکه یا اسکناس بهره گرفت. البته برخی از افراد برای پرهیز از بکارگیری سکه یا اسکناس از ژتون‌ها یا اشیای دیگری به عنوان پول استفاده می‌کنند. اما شرط کمیابی آن شی باید رعایت شود.

در این بازی مدیریت مجوعه ورق‌ها همراه ریسک‌پذیری، شرط‌بندی و تا اندازه‌ای بلوف است، به گونه‌ای که باید به عدد ۲۱ دست یافت یا به حد پایین آن دست یافت. اگر بازیکنی مجموع کارت‌هایش بیش از ۲۱ شود، بازی را باخت است. کسی که باخته است می‌بایست به حریفان باخت خود را اعلام کند






بلوف

تعداد بازیکنان:

برای این بازی حداقل نیاز به ۴ نفر می‌باشد و حداکثر ۸ نفر







روش بازی:

ابتدا طبق قرعه شخص دست دهنده مشخص می‌شود و همانند اکثر بازی‌های ورق، از سمت راست شروع به پخش کردن ورق‌ها می‌کند و تعداد کارت‌ها براساس تعداد نفرات مشخص می‌شود.







قواعد بازی:

۱: تعداد نفرات باید حتماً زوج باشد. (۴،۶،۸)

۲: در صورتیکه تعداد نفرات بیش از ۴ نفر باشد باید از ۲ دست ورق استفاده شود.

۳: نفر سمت راست دست دهنده به عنوان شروع کننده بازی نسبت به دست خود، تعداد و کارت خود را اعلام کرده و کارت‌های خود را از پشت به زمین می‌اندازد، مثلاً اعلام می‌کند ۲ تا ۷، بدین ترتیب دیگر بازیکنان ملزم به انداختن همان کارت اعلام شده می‌باشد، طبیعی است که شروع کننده و یا یکی از بازیکنان آن کارت اعلام شده را در دست خود نداشته باشند، اینجاست که اصل بازی شروع می‌شود و شخص "بلوف" می‌زند و کارتی به غیر از کارت اعلام شده را زمین می‌اندازد، اگر نفر بعد احساس کند که شخص، کارتی غیر از کارت اعلام شده به زمین انداخته، اعلام بلوف کرده و کارت‌های انداخته شده را، رو می‌کند، در صورتیکه حدسش درست باشد، نفر بلوف زننده، به عنوان جریمه تمامی کارت‌های روی زمین را باید بردارد و اگر به اشتباه اعلام بلوف شده باشد خود شخص باید تمام کارت‌ها را بعنوان جریمه بر دارد، گاهی اوقات پیش می‌آید که یک نفر از بازیکنان بلوف را می‌فهمد و چون نوبتش نیست و نمی‌تواند اعلام بلوف کند، باید از نفر بعد بلوف زننده بخواهد که اعلام کند و اگر به اشتباه اعلام بلوف کند، جریمه شامل خودش می‌شود. در صورتی که هیچ یک از بازیکنان اعلام بلوف نکنند و یک دور بازی تمام شود و نوبت به شروع کننده برسد، او باید تعداد و کارت دیگری را اعلام کند. هرکس زودتر کارت‌هایش تمام شود به عنوان برنده اعلام می‌شود و حکم شاه را دارد، نفر دوم تا ماقبل آخر وزیر، نفر آخر که بازنده بازی است (دزد) مجبور به اجرای حکم شاه می‌باشد.






شیطانک

این بازی بسیار ساده است و یادگیری آن بسیار آسان است و محدودیتی از نظر تعداد نفرات ندارد. با این حال بازی کردن با شمار کمتر از سه و نیز شمار بسیار زیاد از گیرایی آن می‌کاهد. به مجموعه ورق‌ها یک ژوکر افزوده می‌شود و بازکنان تلاش می‌کنند با تبادل نوبتی و شانسی کارت‌ها، هر چه زودتر کارتهای خود را به صورت دو به دو و از یک شماره از دست خود خارج کنند. در پایان کسی که دارنده ژوکر است بازنده بازی است و اصطلاحاً شیطان یا دزد نامیده می‌شود. نفر اول شروع می‌کند و یکی از ورق‌های نفر سمت راست خود را از پشت می‌کشد اگر ورق جوری با آن داشت هر ۲ را زمین می‌اندازد و یک ورق دیگر می‌کشد و همین طور ادامه می‌دهد و اگر ورق هم خوان (ار نظر عددی) نداشت نوبت او تمام می‌شود و نفر سمت راست همین کار را با نفر سمت راست خود می‌کند و دور تکرار می‌شود. جوکر با هیچ ورقی پایین انداخته نمی‌شود و کسی که در آخر جوکر در دستش باقی می‌ماند بازنده است و با نظر جمع جریمه‌ای را می‌دهد.

اگر احیاناً از دست نفر سمت راست خود جوکر را کشیدید سعی کنید لبخند نزنید یا چهرتون تغییر نکنه

نخستین کسی که بازی را به پایان برده است، شاه (یا حاکم) و نفر یکی مانده به نفر پایانی، جلاد نام می‌گیرد و شاه می‌تواند یک حکم کیفر را برای بازنده دستور دهد.






بیست‌سؤالی

بیست‌سؤالی گونه‌ای بازی شفاهی چندنفره است. در این بازی یک نفر یا یک تیم، واژه‌ای را در نظر می‌گیرند. بازیکن یا تیم طرف مقابل باید با پرسیدنِ تنها ۲۰ پرسش بتواند آن واژه را حدس بزند. به پرسش‌های او تنها پاسخِ بله/خیر داده می‌شود.

بهترین استراتژی برای پرسش‌کننده در این بازی، طبقه‌بندی موضوع‌ها است به طوری که بازیکن از موضوع‌های کلی به جزئی برود.




نقطه بازی
نقطه بازی یک بازی است که به شکل سنّتی با شرکت حداقل دو بازیکن، روی کاغذ انجام می‌شود. امروزه شکل‌های رایانه‌ای و برخطِ این بازی هم ساخته شده است.







مافیا

مافیا(که گرگینه یا آدمکش نیز نامیده می‌شود) یک بازی گروهی است که نبرد بین یک اقلیت آگاه و یک اکثریت ناآگاه را شبیه‌سازی می‌کند. بازیکنان به طور مخفیانه تعیین نقش می‌شوند: یا مافیا، که همدیگر را می‌شناسند؛ یا شهروند، که تنها از تعداد افراد مافیا آگاه هستند. در فاز شب بازی، افراد مافیا به صورت مخفیانه یک شهروند را می‌کشند. در طول فاز روز، تمام بازیکنان بازمانده در مورد هویت‌های مافیایی بحث می‌کنند و برای حذف یک مظنون رای می‌دهند.

بازی ادامه می‌یابد تا زمانی که همهٔ مافیاها حذف شوند(برد شهروندان) و یا تعداد مافیاها و شهروندان برابر شود(برد مافیا). یک بازی معمولی با ۷ شهروند (دکتر-کارآگاه-شهروند ساده) و ۲ مافیا شروع می‌شود.

این بازی به صورت آنلاین نیز قابل اجراست.






تاریخچه

دیمیتری دیویدف (به روسی: Дми́трий Давы́довv) به عنوان سازنده این بازی معرفی شده‌است. به گفتهٔ وی، اولین بار مافیا در بهار ۱۹۸۶ در بخش روانشناسی دانشگاه دولتی مسکو بازی شده‌است و سپس در کلاس‌های درس، خوابگاه‌ها و اردوگاه‌های تابستانی دانشگاه مسکو پخش شده‌است. شبکه خبری وایرد (Wired) هم ساخت این بازی را به دیویدف نسبت می‌دهد اما تاریخ اولین بازی را سال ۱۹۸۷ می‌داند. این بازی به سرعت در سایر مدارس و دانشگاه‌های شوروی محبوبیت پیدا کرد. در دهه ۱۹۹۰ این بازی به اروپا و پس از آن به ایالات متحده آمریکا راه یافت. مافیا در اویل دههٔ ۸۰ شمسی وارد ایران شد. وب سایت about.com بازی مافیا را به عنوان یکی از «۵۰ بازی برتر تاریخی و فرهنگی» ایجاد شده از سال ۱۸۰۰ تا به حال، معرفی کرده‌است.






روند کلی بازی

در این بازی بی‌گناهان متهم و حتی کشته می‌شوند (از بازی بیرون انداخته می‌شوند) در حالی که مافیای اصلی (گروه آگاه) تلاش می‌کنند تا دیگران (اکثریت ناآگاه) را متقاعد کنند که آنان قاتل نیستند. مجرمان واقعی در این بازی به دروغ خود را راستگو معرفی کنند و پلیس راستگو باید در مقابل بتواند دست مافیا را رو کند و شهروندان را متقاعد کند تا علیه مافیا دست به کار شوند.

برخی استدلال می‌کنند که بازی مافیا، شبیه ساختن آن چیزی است که در دنیای واقعی در اجتماع و سیاست رخ می‌دهد. آنان مافیا را شبیه سیاست‌ورزی و سیاست‌مداری می‌دانند به گونه‌ای که بازیگران این عرصه باید در فریب نخوردن و فریب دادن توانایی بالایی داشته باشند. در این بازی همچون دنیای سیاست هر فردی باید به شدت مراقب رفتار، گفتار خود و متهم نمودن دیگران باشد تا اکثریت بازیگران سوء برداشتی از او نداشته باشند.

این بازی به نوعی شبیه‌سازی فرایند دادرسی در دادگاه نیز هست که هر کسی در جایگاه وکیل خود باید در برابر یک قاضی بی‌طرف از خود دفاع کرده و شواهد و سرنخ‌های اتهام دیگران را رو کند و با استدلال دیگران را متقاعد کند که خود متهم نیست و کسی دیگری متهم است و در نهایت این هیات منصفه (متشکل از خود بازیگران) است که رای می‌دهد که آیا توضیحات و استدلال‌های آن فرد پذیرفته شده‌است یا خیر.






روش بازی

این بازی نیاز به یک بازیگردان (کدخدا) دارد که خود بازی نمی‌کند و فقط مدیریت بازی را بر عهده دارد. وی ناظر بر اعمال تمام بازیکنان است. در ابتدا، بازیگردان (کدخدا) نقش هر یک از افراد را به طور مخفیانه مثلاً با پخش کارت تعیین می‌کند. در هنگام بازی اگر تخلفی رخ دهد بازی‌گردان (کدخدا) می‌تواند فرد متخلف را از بازی اخراج می‌نماید. بازیکنان بایستی تمام صحبت‌ها و حرکات‌شان را پس کسب اجازه از بازی‌گردان (کدخدا) انجام دهند. بدون اجازهٔ کدخدا کسی حق صحبت کردن را ندارد و برای سخنرانی کردن باید از کدخدا اجازه گرفته شود.

بازی‌گردان (کدخدا) در صورتی که متوجه تقلبی از یکی از بازی‌کنان شود بایستی دخالت کرده و بازی را متوقف کند.

بازیکنی که حذف می‌شوند باید از محوطهٔ بازی خارج شود.

وظیفهٔ اصلی کدخدا مبارزه با ترول‌ها (خرابکارها و متقلبان) می‌باشد.
کاراکترها

این بازی دو گروه اصلی دارد مافیاها و شهروندان

هر کدام از این گروه‌ها نقش‌های مختلفی دارند:

نقش‌های مافیایی

گادفادر - مافیای ساده - ناتاشا

نقش‌های شهروندی

اسنایپر - کاراگاه (رییس پلیس) - دکتر -فراماسون- روئین تن - کشیش - شهروند ساده

مافیای ساده: در فاز شب به همراه گادفادر بیدار می‌شود و یک نفر را برای کشته شدن انتخاب می‌کند.

گادفادر (پدرخوانده): رئیس مافیا محسوب می‌شود که در فاز شب با مافیاهای ساده بیدار می‌شود ولی می‌تواند خود را مافیای ساده نشان دهد. (یعنی زمانی که گاد در شب اول اعلام می‌کند "گادفادر اگر مایل است، خودش را اشاره کند" می‌تواند عکس العملی نداشته باشد) ضمناً گادفادر در فاز شب پس از مافیا جداگانه نیز بیدار می‌شود و می‌تواند نظر قبلی خود را نیز تغییر دهد، به هر حال انتخاب آخر با اوست.

ناتاشا: شخصیت منفی بازی که در فاز شب، با ندای خدا (پس از دکتر) بیدار می‌شود و یک نفر را انتخاب می‌کند که در روز بعد لال باشد. ناتاشا نقش مافیایی دارد و باید سعی کند که مافیا را کمک کند ولی از هویت همکارانش خبر ندارد. اگر کشیش درست عمل نکند شهروند منتخب در روز بعد حق صحبت کردن و رأی دادن ندارد.

دکتر: در فاز شب، با ندای خدا (پس از گادفادر) بیدار می‌شود و یک نفر را انتخاب می‌کند که از خطر کشته شدن توسط مافیا نجات یابد.

کشیش (پدر روحانی): در فاز شب با ندای خدا، پس از ناتاشا بیدار می‌شود و یک نفر را که حدس می‌زند لال شده باشد را انتخاب می‌کند که لال نباشد.

کارآگاه: در فاز شب، با ندای خدا بعد از کشیش بیدار می‌شود و یک نفر را که حدس می‌زند مافیا باشد را انتخاب می‌کند که از هویتش آگاه شود. (اگر فرد مورد نظر، گادفادر یا ناتاشا باشد خدا به کاراگاه جواب منفی می‌دهد، به عبارتی بهتر خدا فقط مافیاهای ساده را لو می‌دهد)

اسنایپر (پلیس): در فاز شب، با ندای خدا بعد از کاراگاه بیدار می‌شود و یک نفر را که حدس می‌زند مافیا باشد را انتخاب می‌کند که کشته شود.

رویین‌تن: شهروندی است که یک بار در فاز شب قابل کشته شدن نیست.

فراماسون: یکی از شخصیت‌های شهروندی است که در فاز شب با ندای خدا بیدار می‌شود و می‌تواند یکی از بازیکنان که احتمال می‌دهد شهروند باشد را انتخاب کند و با او لینک کند. خدا به بازیکن انتخاب شده توسط فراماسون به گونه‌ای که کسی متوجه نشود دست می‌زند، آن بازیکن چشم را باز می‌کند و ۲ نفر یکدیگر را شناسایی می‌کنند.(منظور از این حرکت شناسایی شهروندان به صورت مخفیانه می‌باشد.) در شب‌های بعد به همین ترتیب ۲ نفر می‌توانند چشم‌ها را باز کنند و با نفر سوم لینک کنند و ۳ نفر یکدیگر را بشناسند.۳ نکته وجود دارد: ۱- در هنگام لینک کردن در فاز شب، افراد تنها می‌توانند یکدیگر را به عنوان عضوی از شهروندان شناسایی کنند و حق فاش کردن هویت اصلی خود را ندارند ۲- در صورتی که فراماسون یا فراماسونها اشتباها با یک مافیا لینک کنند همه فراماسون‌ها کشته می‌شوند. در حالی که آن مافیا زنده می‌ماند. در این صورت در روز بعد خدا تمام نفرات حذف شده از بازی (کشته شدگان توسط اسنایپر، مافیا، و فراماسونها) را نام می‌برد و فقط اعلام می‌کند که شهر مرگ فراماسونی داشته است و این که چه کسانی فراماسونی کشته شده‌اند را اعلام نمی‌کند ۳- اگر فراماسون اصلی به هر نحوی کشته یا حذف شود در شب‌های بعد سایر کسانی که با فراماسون لینک کرده بودند حق چشم باز کردن یا قدرت لینک کردن با نفر دیگر را ندارند.






فاز شب

خدا به بازیکنان می‌گوید که «همه بخوابند» که به معنای این است که همه بازیکنان چشمان خود را ببندند و سر خود را پایین بیندازند. سپس، با دستور خدا با عنوان «مافیا بیدار شود»، اعضای مافیا چشمان خود را باز می‌کنند و همدیگر را شناسایی می‌کنند. اعضای مافیا در هر شب، با اتفاق نظر باید یکی از شهروندان را به نوبتی که در شب اول تصمیم گرفته‌اند، به قتل برسانند. این کار باید بدون جلب توجه سایر بازیکنان (که چشمانشان بسته‌است) به طور هماهنگ و همزمان انجام شود و با اشاره انگشت به اطلاع خدا رسانده شود. اگر هماهنگی و نوبت رعایت نشود اعضای مافیا در کشتن شهروندان موفق نخواهند بود. طبیعی است که اعضای مافیا معمولاً کسی را می‌کشند که در پیدا کردن هویت افراد مافیا و قانع کردن بقیه در این زمینه موفق تر از سایرین باشد. حتی ممکن است در مواقع بحرانی، برای اعتبار دادن به حرف‌های دوست مافیای خود یا نقض حرف‌های یک شهروند باهوش، یکی از افراد خودی «مافیا» را بکشند و این گونه خلاقیت هاست که به پیچیدگی بازی می‌افزاید. پس از اتمام کارِ مافیا، خدا به آنها می‌گوید چشمان خود را ببندند (این کار معادل این جمله‌است: «مافیاها بخوابند»). در صورتی که بازی، دکتر، پلیس یا کارآگاه نیز داشته باشد، این افراد نیز به ترتیب به دستور خدا چشمان خود را باز می‌کنند و پس از انجام وظیفه خود مجدداً چشمانشان را می‌بندند.

ترتیب اولویت اعلام اسامی در شب به ترتیب ذیل خواهد بود.

۱- پدرخوانده (چون در شب تنها کسی است که قدرت داره و باید نقش خودش رو ایفا کنه دن می‌باشد) ۲- ساقی ۳- اسنایپر ۴- کارآگاه ۵- دکتر ۶- ناتاشا و.. و در آخر فراماسون

لازم به توضیح می‌باشد که به ترتیب اولویت خدای بازی باید اسامی رو دریافت و اعمال کند.






فاز روز

در این مرحله، خدا به بازیکنان اعلام می‌کند که چشمان خود را باز کنند و اتفاقات شب گذشته را به اطلاع آنها می‌رساند. اگر کسی توسط مافیا به قتل رسیده باشد، از این امر آگاه می‌شود و بدون گفتن وصیت از محل میدان بازی خارج می‌شود. سپس، بازیکنان می‌توانند با گرفتن نوبت از خدا شروع به صحبت کنند و استدلال خود را دربارهٔ هویت اعضای باقی‌مانده (بر اساس شواهد و رفتار گذشتهٔ آنان) بیان کنند. پس از اتمام صحبت‌ها، خدا برای حذف یکی از اعضای مظنون به عضویت در مافیا، رای گیری می‌کند و به چند نفر از کسانی که بیشترین رای را دارند اجازه صحبت مجدد برای دفاع از خود داده می‌شود. سپس یک بار دیگر بین این افراد رای گیری می‌شود و در نهایت کسی که بیشترین رای مخالف را دارد (تعداد بیشتری از بازیکنان مشکوک به عضویت او در مافیا هستند) از میدان بازی خارج می‌شود. هر کسی فقط حق دادن یک رای را دارد.

در ابتدای بازی تصمیم گرفته می‌شود:

۱- افرادی که از بازی خارج می‌شوند هویت خود را اعلام کنند یا ناشناس بمانند.

۲- در بازی وصیت کردن وجود داشته باشد یا خیر.






پایان بازی

بازی زمانی پایان می‌یابد که یا تمام مافیاها حذف شوند (برد شهروندان)، و یا تعداد مافیاها و شهروندان مساوی شود (یعنی برد مافیا).

در صورت وجود نقش‌های سفید (بی‌طرف، کیلر) در بازی، اگر بازی طبق روند فوق تمام شود اما نقش‌های سفید همچنان حذف نشده باقی‌مانده باشند، این نقش‌های سفید هستند که برنده می‌باشند.






ساده‌ترین چینش برای بازی

برای شروع می‌توان از ساده‌ترین چینش برای بازی مافیا بهره برد، شرایط ساده‌ترین چینش به شرح زیر است:

۱- وصیت کردن مجاز نیست، و شهروندان پس از حذف حق صحبت‌کردن ندارند.

۲- پس از هر حذف در فاز شب روز بعد کدخدا نقش بازیکن حذف شده را اعلام می‌کند.

۳- برای بازی به ۸ بازیکن نیاز است. (۱ کدخدا ۱ دکتر ۱ کارآگاه ۳ شهروند عادی و ۲ مافیا)

۴- بازی در مرحلهٔ یک شب آغاز می‌شود.

۵- مافیا امکان خودکشی (حذف یکی از یاران مافیایی خود) را ندارد.

۶- مافیا می‌تواند برای رد گم کنی و گیج کردن شهروندان هیچ‌کس را در مرحلهٔ شب حذف نکنند.






اندیشه‌های مافیایی (کاربرد در بازی مافیا)

برای پیروزی در بازی مافیا روش‌های متفاوتی وجود دارد، اما برای چینش فوق که ساده‌ترین نوع چینش بازی است، ساده‌ترین شیوهٔ عملکرد غالباً اینگونه می‌باشد که کارآگاه خود را معرفی می‌کند و دکتر نیز سعی می‌کند پنهان بماند تا توسط مافیا شناسایی نشده و حذف نشود تا بتواند همچنان به درمان شهروندان بپردازد.

در مقابل مافیا برای آنکه مانعی برای کارآگاه ایجاد کند اقدام به جای‌زدن دروغین خود به عنوان کارآگاه می‌کند، در این بین این شهروندان عادی هستند که اهمیت اصلی را دارند و باید تصمیم بگیرند که به کدام‌یک از پلیس‌ها اعتماد نمایند.







سودوکو
سودوکو جدول اعدادی است که امروزه یکی از سرگرمی‌های رایج در کشورهای مختلف جهان به شمار می‌آید.






تاریخچه
سودوکو، مخفف یک عبارت ژاپنی

سوجی وا دوکوشین نی کاگیرو به معنی «ارقام باید تنها باشند» است.

هر چند این بازی برای اولین بار در یک مجله پازل آمریکایی در سال ۱۹۷۹ انتشار یافت، ولی انتشار آن به طور مستمر و پی‌گیر برای نخستین مرتبه بر می‌گردد به ژاپن در ۱۹۸۶ و از سال ۲۰۰۵ این سرگرمی به محبوبیت جهانی دست یافت و نخستین مسابقه ملی آن در سال ۲۰۰۸ در فیلادلفیا، آمریکا بر‌گزار شد.

در ایران برای اولین بار روزنامه همشهری در سال ۱۳۸۵ ه.ش اقدام به چاپ سودوکو به صورت روزانه کرد.






قانون بازی

نوع متداول سودوکو یک جدول ۹x۹ است که کل جدول هم به ۹ جدول کوچک‌تر ۳x۳ تقسیم شده‌است. در این جدول چند عدد به طور پیش فرض قرار داه شده که باید باقی اعداد را با رعایت سه قانون زیر یافت:

قانون اول: در هر سطر جدول اعداد ۱ الی ۹ بدون تکرار قرار گیرد.
قانون دوم: در هر ستون جدول اعداد ۱ الی ۹ بدون تکرار قرار گیرد.
قانون سوم: در هر ناحیه ۳x۳ جدول اعداد ۱ الی ۹ بدون تکرار قرار گیرد.







روش حل

ابتدا در تمام خانه‌های خالی جدول، اعداد را از یک تا نه می‌نویسیم.

سپس به سراغ یکی از اعدادی که از قبل توسط طراح نوشته شده می‌رویم و تمام اعداد مشابه آن را که در عرضش (بصورت افقی) قرار گرفته‌اند را پاک می‌کنیم و سپس یک خط افقی در بالای آن عدد می‌کشیم که مشخص باشد.

در این مرحله همانند مرحله قبل عمل می‌کنیم با این اختلاف که در تمام خانه‌های عمودی در بالا یا پایین عدد مورد نظر اعداد مشابه را پاک می‌کنیم وسپس با یک خط عمودی در کنار آن عدد آن را مشخص می‌نماییم. اکنون باید اعداد مشابه عدد مورد نظر را در مربع نه خانه‌ای متناظر، پاک کنیم وعدد را با یک دایره بر دور آن مشخص کنیم.

فقط سه مرحله قبلی را در مورد تمام اعداد از قبل نوشته شده (اعداد چاپی) تکرار کنیم و کشیدن خطهای عمودی افقی و دایره را بر آن عددها نباید فراموش کنیم که این عمل می‌تواند به شما نشان دهد که کدام یک از قلم افتاده‌است.

وقتی که تمام اعداد چاپی با هر سه علامت مشخص شد کار ما تا این مرحله تمام شده‌است. در این مرحله به دنبال خانه‌هایی می‌گردیم که فقط یک عدد در آنها باقی‌مانده و آن اعداد را پررنگ می‌کنیم.

ما باید در هر ستون نیز عددی را که فقط یکبار درآن ستون آمده را پیدا کنیم که این عدد یقیناً جواب همان خانه‌است و این عدد را هم پررنگ کنیم. اکنون در هر مربع نه خانه‌ای عددی را که فقط یکبار در این نه خانه آمده‌است را یافته و به عنوان جواب یادداشت می‌کنیم.

اگر احساس کردید که روش فوق بسیار وقت گیر و خسته کننده است از روش میانبر زیر استفاده کنید توجه داشته باشید که هر عدد در هر مربع یک بار مصرف می‌شود و جدول ما دارای نه تا از مجموعه خانه‌های مربع شکل است سه در سه لذا هر عدد علاوه بر اینکه در هر ردیف وهر ستون یکبار مصرف می‌شود در هر مربع نیز یک بار مورد استفاده قرار می‌گیرد پس اگر عددی در یک مربع بزرگ پیدا شد بگردید و نظیر آن عدد را در مربع بزرگ در همان ردیف و یا همان ستون پیدا کنید، اگر آن را پیدا کردید یک خط فرضی از آن عدد از هر مربع بصورت افقی و یا عمودی بکشید با این کار ۲ ستون و یا دو ردیف از مربعی که عدد در آن نبوده است از محاسبات حذف می‌شوند و فقط ۳ خانه از آن مربع باقی می‌ماند، همین کار را هم از طرف مقابل از همان عدد انجام دهید یک خانه خالی بر جای می‌ماند که جای همان عدد است. معمولاً با این کار بیشتر خانه‌های خالی پر می‌شوند که مابقی را از طریق اسکن کردن سطر به سطر و یا ستون به ستون می‌توان بدست آورد. من با این روش معمولاً براحتی جداول سخت را حل می‌کنم و هر چه بیشتر تمرین کنید سرعتتان بیشتر می‌شود امید وارم توانسته باشم خوب توضیح بدهم

متأسفانه بصورت شکل نمی‌توانم روی این صفحه چیزی بنویسم امید وارم آنها که توان این کار را دارند نوشته‌های مرا تکمیل نمایند







جدول کلمات متقاطع
جدول کلمات متقاطع یک جدولی است که کلمات را به شکل حرف به حرف قرار در آن قرار دارد و به عمد بعضی از خانه‌های آن خالی هستند که توسط کسی که حل می‌کند باید پر شود و این کلمات به وسیله خانه‌های سیاه از هم جدا می‌شوند و نوعی سرگرمی است. خانه‌های جداول غالباً شماره گذاری شده‌اند و به دو دسته عمودی و افقی تقسیم می‌شود مانند «۲۰ افقی» یا «۵ عمودی».قانون کلى در طراحى جدول ، تعداد خانه هاى يکسان و مساوى در دو رديف افقى و عمودى ميباشد. به عنوان مثال اگر در خانه <<5 عمودى>> شش خانه خالى که معرف کلمه اى شش حرفى است داشته باشيم،به همان نسبت بايستى در خانه <<5 افقى >> هم شش خانه داشته باشيم.
1:04 pm
کاربرد برنامه نویسی

زبان برنامه نویسی یک مکانیزم ساخت یافته برای تعریف داده‌ها، و عملیات یا تبدیل‌هایی که ممکن است بطور اتوماتیک روی آن داده انجام شوند، فراهم می‌کند. یک برنامه نویس از انتزاعات آماده در زبان استفاده می‌کند تا مفاهیم به کار رفته در محاسبات را بیان کند. این مفاهیم به عنوان یک مجموعه از ساده‌ترین عناصر موجود بیان می‌شوند(مفاهیم ابتدایی نامیده می‌شوند).





زبان‌های برنامه نویسی با غالب زبان‌های انسانی تفاوتی دارد و آن این است که نیاز به بیان دقیق تر و کامل تری دارد. هنگام استفاده از زبان‌های طبیعی برای ارتباط با دیگر انسان‌ها، نویسندگان و گویندگان می‌توانند مبهم باشند و اشتباهات کوچک داشته باشند، و همچنان انتظار داشته باشند که مخاطب آنها متوجه شده باشد. اگرچه، مجازا، رایانه‌ها "دقیقاً آنچه که به آنها گفته شده را انجام می‌دهند." و نمی‌توانند "بفهمند" که نویسنده دقیقاً چه کدی مد نظر نویسنده بوده‌است] البته امروزه برنامه‌هایی برای انجام این کار تولید شده‌اند و تلاش‌های بسیاری در این زمینه انجام شده ولی هنوز به نتیجهٔ رضایت بخشی نرسیده است[. ترکیب تعریف زبان، یک برنامه، و ورودی برنامه بطور کامل رفتار خروجی را به هنگام اجرای برنامه (در محدوده کنترل آن برنامه) مشخص می‌کند. برنامه‌های یک رایانه ممکن است در یک فرایند ناپیوسته بدون دخالت انسان اجرا شوند، یا یک کاربر ممکن است دستورات را در یک مرحله فعل و انفعال مفسر تایپ کند.در این حالت "دستور"ها همان برنامه‌ها هستند، که اجرای آنها زنجیروار به هم مرتبطند.به زبانی که برای دستور دادن به برنامه‌ای استفاده می‌شود، زبان اسکریپت می‌گویند. بسیاری از زبان‌ها کنار گذاشته شده‌اند، برای رفع نیازهای جدید جایگزین شده‌اند، با برنامه‌های دیگر ترکیب شده‌اند و در نهایت استعمال آنها متوقف شده‌است. با وجود اینکه تلاش‌هایی برای طراحی یک زبان رایانه" کامل" شده‌است که تمام اهداف را تحت پوشش قرار دهد، هیچ یک نتوانستند بطور کلی این جایگاه را پر کنند. نیاز به زبان‌های رایانه‌ای گسترده از گستردگی زمینه‌هایی که زبان‌ها استفاده می‌شوند، ناشی می‌شود:

محدوده برنامه‌ها از متون بسیار کوچک نوشته شده توسط افراد عادی تا سیستم‌های بسیار بزرگ نوشته شده توسط صدها برنامه نویس است
توانایی برنامه نویس‌ها: از تازه کارهایی که بیش از هر چیز به سادگی نیاز دارند تا حرفه‌ای‌هایی که با پیچیدگی قابل توجهی کنار می‌آیند.
برنامه‌ها باید سرعت، اندازه و سادگی را بسته به سیستم‌ها از ریزپردازندها تا ابر رایانه‌ها متناسب نگه دارند.
برنامه‌ها ممکن است یک بار نوشته شوند و تا نسل‌ها تغییر نکنند، و یا ممکن است پیوسته اصلاح شوند.
در نهایت، برنامه نویس‌ها ممکن است در علایق متفاوت باشند: آنها ممکن است به بیان مسائل با زبانی خاص خو گرفته باشند.

یک سیر رایج در گسترش زبان‌های برنامه نویسی این است که قابلیت حل مسائلی با درجات انتزاعی بالاتری را اضافه کنند. زبان‌های برنامه نویسی اولیه به سخت‌افزار رایانه گره خورده بودند. همانطور که زبان‌های برنامه نویسی جدید گسترش پیدا کرده‌اند، ویژگی‌هایی به برنامه‌ها افزوده شده که به برنامه نویس اجازه دهد که ایده‌هایی که از ترجمه ساده به دستورات سخت‌افزار دورتر هستند نیز استفاده کند. چون برنامه نویس‌ها کمتر به پیچیدگی رایانه محدود شده‌اند، برنامه‌های آنها می‌تواند محاسبات بیشتری با تلاش کمتر از سوی برنامه نویس انجام دهند. این به آنها این امکان را می‌دهد که کارایی بیشتردر واحد زمان داشته باشند. "پردازنده‌های زبان طبیعی" به عنوان راهی برای ازبین بردن نیاز به زبان‌های اختصاصی برنامه نویسی پیشنهاد شده‌اند. هرچند، این هدف دور است و فواید آن قابل بحث است. "ادسگر دیجسترا" موافق بود که استفاده از یک زبان رسمی برای جلوگیری از مقدمه سازی ساختارهای بی معنی واجب است، و زبان برنامه نویسی طبیعی را با عنوان "احمقانه" رد کرد، "آلن پرلیس" نیز مشابها این ایده را رد کرد. مطابق با متدولوژی نامتجانس استفاده شده توسط langpop.com در سال ۲۰۰۸، ۱۲ زبان پرکاربرد عبارتند از: C, C++, C#, Java, JavaScript, Perl, PHP, Python, Ruby, Shell, SQL, and Visual Basic.



المان‌ها
تمام زبان‌های بزنامه نویسی تعدادی بلوک‌های ابتدایی برای توضیح داده و پردازش یا تبدیل آنها(مانند جمع کردن دو عدد با انتخاب یک عضو از یک مجموعه)دارند. این " عناصرابتدایی" بوسیله قوانین معناشناسی و دستوری تعریف می‌شوند که ساختار و معنای مربوطه را توضیح می‌دهند.
دستور(
syntax)

فرم سطحی یک زبان برنامه نویسی دستور آن نامیده می‌شود. غالب زبان‌های برنامه نویسی کاملاً متنی اند؛ و از دنبالهٔ متون شامل کلمات، اعداد، نشانگذاری، بسیار شبیه زبان نوشتاری طبیعی استفاده می‌کنند. از طرف دیگر، برنامه‌هایی نیز وجود دارند که بیشتر گرافیکی اند، و از روابط بصری بین سمبل‌ها برای مشخص کردن برنامه استفاده می‌کنند. دستور یک زبان ترکیبات ممکن سمبل‌ها برای ایجاد یک برنامهٔ درست را از نظر دستوری مشخص می‌کند. معنایی که به یک ترکیب سمبل‌ها داده می‌شود با معناشناسی اداره می‌شود(قراردادی یا نوشته شده در پیاده سازی منبع). از آنجا که اغلب زبان‌ها متنی هستند، این مقاله دستور متنی را مورد بحث قرار می‌دهد.

دستور زبان برنامه نویسی معمولاً بوسیله ترکیب عبارات معین(برای ساختار لغوی) و فرم توضیح اعمال(برای ساختار گرامری) تعریف می‌شوند. متن زیر یک گرامر ساده، به زبان lisp است: expression ::= atom | list atom ::= number | symbol number ::= [+-]?['۰'-'۹']+ symbol ::= ['A'-'Za'-'z'].* list ::= '(' expression* ')' این گرامر موارد ذیل را مشخص می‌کند:

یک عبارت یا atom است و یا یک لیست
یک atom یا یک عدد است و یا یک سمبل
یک عدد دنباله ناشکسته‌ای از یک یا تعداد بیشتری اعداد دهدهی است، که یک علامت مثبت و یا منفی می‌تواند پیش از آن بیاید.
یک سمبل حرفی است که بعد از هیچ یا تعدادی کاراکتر (جز فاصله) می‌آید.
یک لیست تعدادی پرانتز است که می‌تواند صفر یا چند عبارت در خود داشته باشد.

"۱۲۳۴۵"، "()"، "(a b c۲۳۲ (۱))" مثال‌هایی هستند از دنباله‌های خوش فرم در این گرامر.

همه برنامه‌هایی که از لحاظ دستوری درست هستند، از نظر معنا درست نیستند. بسیاری از برنامه‌های درست دستوری، بد فرم اند، با توجه به قوانین زبان؛ و ممکن است (بسته به خصوصیات زبان و درست بودن پیاده سازی) به خطای ترجمه و یا استثنا(exception) منتج شود. در برخی موارد، چنین برنامه‌هایی ممکن است رفتار نامشخصی از خود نشان دهند. حتی اگر یک برنامه در یک زبان به خوبی بیان شده باشد، ممکن است دقیقاً مطلوب نویسنده آن نبوده باشد.

به عنوان مثال در زبان طبیعی، ممکن نیست به برخی از جملات درست از لحاظ گرامری، معنای خاصی اطلاق کرد و یا ممکن است جمله نادرست باشد:

"ایده‌های بی رنگ سبز با خشم می‌خوابند."از نظر دستوری خوش فرم است ولی معنای مورد قبولی ندارد.
"جان یک مجرد متاهل است." از نظر دستوری درست است، ولی معنایی را بیان می‌کند که نمی‌تواند درست باشد.

این قسمت از زبان C از نظر دستوری درست است، اما دستوری را انجام می‌دهد که از نظرمعنایی تعریف نشده است(چون p یک اشاره گر خالی است، عمل p->real,p->im معنای خاصی ندارد.) complex *p = NULL; complex abs_p = sqrt (p->real * p->real + p->im * p->im);

گرامر مورد نیاز برای مشخص کردن یک زبان برنامه نویسی می‌تواند با جایگاهش در "سلسله مراتب چامسکی" طبقه بندی شود. دستور اغلب زبان‌های برنامه نویسی می‌تواند بوسیله یک گرامر نوع ۲ مشخص گردد، برای مثال، گرامرهای مستقل از متن.




معناشناسی ایستا
معناشناسی ایستا محدودیت‌هایی بر روی ساختار مجاز متن‌ها تعیین می‌کند که بیان آنها در فرمول دستوری استاندارد مشکل و یا غیر ممکن است. مهمترین این محدودیت‌ها به وسیله سیستم نوع گذاری انجام می‌شود.


سیستم نوع گذاری
یک سیستم نوع گذاری مشخص می‌کند که یک زبان برنامه نویسی چگونه مقادیر و عبارات را در نوع(type) دسته بندی می‌کند، چگونه می‌تواند آن نوع‌ها را تغییر دهد و رفتار متقابل آن‌ها چگونه‌است. این کارعموما توضیح داده ساختارهایی که می‌توانند در آن زبان ایجاد شوند را شامل می‌شود. طراحی و مطالعه سیستم‌های نوع گذاری بوسیله ریاضیات قراردادی را تئوری نوع گذاری گویند.
زبان‌های نوع گذاری شده و بدون نوع گذاری

یک زبان نوع گذاری شده‌است اگر مشخصات هر عملیات، نوع داده‌های قابل اجرا توسط آن را با نشان دادن نوع‌هایی که برای آنها قابل اجرا نیست، تعیین کند. برای مثال، "این متن درون گیومه قرار دارد" یک رشته‌است. در غالب زبان‌های برنامه نویسی، تقسیم یک رشته با یک عدد معنایی ندارد. در نتیجه غالب زبان‌های برنامه نویسی مدرن ممکن است اجرای این عملیات را توسط برنامه‌ها رد کنند. در برخی زبان‌ها، عبارات بی معنی ممکن است هنگام ترجمه(compile) پیدا شود(چک کننده نوع ایستا)، و توسط کامپایلر رد شود، در حالی که در سایر برنامه‌ها، هنگام اجرا پیدا شود.(چک کننده نوع دینامیک) که به استثنای در حال اجرا منتج شود(runtime exception). حالت خاص زبان‌های نوع دار زبان‌های تک نوعند. این زبان‌ها غالباً اسکریپتی و یا مارک آپ هستند، مانند rexx وSGML و فقط یک داده گونه دارند—غالباً رشته‌های کاراکتری که هم برای داده‌های عددی و هم برای داده‌های سمبلی کاربرد دارند. در مقابل، یک زبان بدون نوع گذاری، مثل اکثر زبان‌های اسمبلی، این امکان را می‌دهد که هر عملیاتی روی هر داده‌ای انجام شود، که معمولاً دنباله‌ای از بیت‌ها با طول‌های متفاوت در نظر گرفته می‌شوند. زبان‌های سطح بالا که بی نوع هستند شامل زبان‌های ساده رایانه‌ای و برخی از انواع زبان‌های نسل چهارم.

در عمل، در حالیکه تعداد بسیار کمی از دیدگاه نظریه نوع، نوع گذاری شده تلقی می‌شوند(چک کردن یا رد کردن تمام عملیات‌ها)، غالب زبان‌های امروزی درجه‌ای از نوع گذاری را فراهم می‌کنند. بسیاری از زبان‌های تولیدکننده راهی را برای گذشتن یا موقوف کردن سیستم نوع فراهم می‌کنند.



نوع گذاری ایستا و متحرک

در نوع گذاری ایستا تمام عبارات نوع‌های خود را قبل از اجرای برنامه تعیین می‌کنند(معمولاً در زمان کامپایل). برای مثال، ۱ و (۲+۲) عبارات عددی هستند؛ آنها نمی‌توانند به تابعی که نیاز به یک رشته دارد داده شوند، یا در متغیری که تعریف شده تا تاریخ را نگه دارد، ذخیره شوند.


زبان‌های نوع گذاری شده ایستا می‌توانند با مانیفست نوع گذاری شوند یا با استفاده از نوع استنباط شوند. در حالت اول، برنامه نویس بیشتر صریحاً نوع‌ها را در جایگاه‌های منتنی مشخص می‌نویسد(برای مثال، در تعریف متغیرها). در حالت دوم، کامپایلر نوع عبارات و تعریف‌ها را بر اساس متن استنباط می‌کند. غالب زبان‌های مسیر اصلی(mainstream) ایستا نوع گذاری شده، مانند C#,C++ و Java، با مانیفست نوع گذاری می‌شوند



نوع گذاری قوی و ضعیف

نوع گذاری ضعیف این امکان را ایجاد می‌کند که با متغیری به جای متغیری دیگر برخورد شود، برای مثال رفتار با یک رشته به عنوان یک عدد. این ویژگی بعضی اوقات ممکن است مفید باشد، اما ممکن است باعث ایجاد برخی مشکلات برنامه شود که موقع کامپایل و حتی اجرا پنهان بمانند.

نوع گذاری قوی مانع رخ دادن مشکل فوق می‌شود. تلاش برای انجام عملیات روی نوع نادرست متغیر منجر به رخ دادن خطا می‌شود. زبان‌هایی که نوع گذاری قوی دارند غالباً با نام "نوع-امن" و یا امن شناخته می‌شوند. تمام تعاریف جایگزین برای "ضعیف نوع گذاری شده" به زبان‌ها اشاره می‌کند، مثل perl, JavaScript, C++، که اجازه تعداد زیادی تبدیل نوع داخلی را می‌دهند. در جاوااسکریپت، برای مثال، عبارت ۲*x به صورت ضمنی x را به عدد تبدیل می‌کند، و این تبدیل موفقیت آمیز خواهد بود حتی اگر x خالی، تعریف نشده، یک آرایه، و یا رشته‌ای از حروف باشد. چنین تبدیلات ضمنی غالباً مفیدند، اما خطاهای برنامه نویسی را پنهان می‌کنند.

قوی و ایستا در حال حاضر عموماً دو مفهوم متعامد فرض می‌شوند، اما استفاده در ادبیات تفاوت دارد، برخی عبارت "قوی نوع گذاری شده" را به کار می‌برند و منظورشان قوی، ایستایی نوع گذاری شده‌است، و یا، حتی گیچ کننده تر، منظورشان همان ایستایی نوع گذاری شده‌است. بنابراین C هم قوی نوع گذاری شده و هم ضعیف و ایستایی نوع گذاری شده نامیده می‌شود.



معناشناسی اجرا

وقتی که داده مشخص شد، ماشین باید هدایت شود تا عملیات‌ها را روی داده انجام دهد. معناشناسی اجرا ی یک زبان تعیین می‌کند که چگونه و چه زمانی ساختارهای گوناگون یک زبان باید رفتار برنامه را ایجاد کنند.

برای مثال، معناشناسی ممکن است استراتژی را که بویسله آن عبارات ارزیابی می‌شوند را تعریف کند و یا حالتی را که ساختارهای کنترلی تحت شرایطی دستورها را اجرا می‌کنند.


کتابخانه هسته
اغلب زبان‌های برنامه نویسی یک کتابخانه هسته مرتبط دارند(گاهی اوقات "کتابخانه استاندارد" نامیده می‌شوند، مخصوصا وقتی که به عنوان قسمتی از یک زبان استاندارد ارائه شده باشد)، که به طور قراردادی توسط تمام پیاده سازی‌های زبان در دسترس قرار گرفته باشند. کتابخانه هسته معمولاً تعریف الگوریتم‌ها، داده ساختارها و مکانیزم‌های ورودی و خروجی پرکاربرد را در خود دارد. کاربران یک زبان، غالباً با کتابخانه هسته به عنوان قسمتی از آن رفتار می‌کنند، اگرچه طراحان ممکن است با آن به صورت یک مفهوم مجزا رفتار کرده باشند. بسیاری از خصوصیات زبان هسته‌ای را مشخص می‌کنند که باید در تمام پیاده سازی‌ها موجود باشند، و در زبان‌های استاندارد شده این کتابخانه هسته ممکن است نیاز باشد. بنابراین خط بین زبان و کتابخانه هسته آن از زبانی به زبان دیگر متفاوت است. درواقع، برخی زبان‌ها به گونه‌ای تعریف شده‌اند که برخی از ساختارهای دستوری بدون اشاره به کتابخانه هسته قابل استفاده نیستند. برای مثالف در جاوا، یک رشته به عنوان نمونه‌ای از کلاس “java.lang.String” تعریف شده است؛ مشابها، در سمال تاک(smalltalk) یک تابع بی نام(یک "بلاک") نمونه‌ای از کلاس BlockContext کتابخانه می‌سازد. بطور معکوس، Scheme دارای چندین زیرمجموعه مرتبط برای ایجاد سایر ماکروهای زبان می‌باشد، و در نتیجه طراحان زبان حتی این زحمت را نیز تحمل نمی‌کنند که بگویند کدام قسمت زبان به عنوان ساختارهای زبان باید پیاده سازی شوند، و کدام یک به عنوان بخشی ازکتابخانه.


عمل
طراحان زبان و کاربران باید مصنوعاتی ایجاد کنند تا برنامه نویسی را در عمل ممکن سازند و کنترل کنند. مهمترین این مصنوعات خصوصیات و پیاده سازی‌های زبان هستند.



خصوصیات

یک زبان برنامه نویسی باید تعریفی فراهم کند که کاربران و پیاده کننده‌های زبان می‌توانند از آن استفاده کنند تا مشخص کنند که رفتار یک برنامه درست است. با داشتن کد منبع: خصوصیات یک زبان برنامه نویسی چندین قالب می‌تواند بگیرد، مانند مثال‌های زیر:

تعریف صریح دستور، معناشناسی ایستا، ومعناشناسی اجرای زبان. درحالیکه دستور معمولاً با یک معناشناسی قراردادی مشخص می‌شود، تعاریف معناشناسی ممکن است در زبان طبیعی نوشته شده باشند (مثل زبان C)، یا معناشناسی قراردادی(مثل StandardML ,Scheme)
توضیح رفتار یک مترجم برای زبان(مثل C,fortran). دستور و معناشناسی یک زبان باید از این توضیح استنتاج شوند، که ممکن است به زبان طبیعی یا قراردادی نوشته شود.
پیاده سازی منبع یا مدل. گاهی اوقات در زبان‌های مشخص شده(مثل: prolog,ANSI REXX).دستور و معناشناسی صریحاً در رفتار پیاده سازی مدل موجودند.


پیاده سازی

پیاده سازی یک زبان برنامه نویسی امکان اجرای آن برنامه را روی پیکربندی مشخصی از سخت‌افزار و نرم‌افزار را فراهم می‌کند. بطور وسیع، دو راه رسیدن به پیاده سازی زبان برنامه نویسی وجود دارد. کامپایل کردن و تفسیر کردن. بطور کلی با هر بک از ابن دو روش می‌توان یک زبان را پیاده سازی کرد.

خروجی یک کامپایلر ممکن است با سخت‌افزار و یا برنامه‌ای به نام مفسر اجرا شود. در برخی پیاده سازی‌ها که از مفسر استفاده می‌شود، مرز مشخصی بین کامپایل و تفسیر وجود ندارد. برای مثال، برخی پیاده سازی‌های زبان برنامه نویسی بیسیک کامپایل می‌کنند و سپس کد را خط به خط اجرا می‌کنند.

برنامه‌هایی که مستقیماً روی سخت‌افزار اجرا می‌شوند چندین برابر سریعتر از برنامه‌هایی که با کمک نرم‌افزار اجرا می‌شوند، انجام می‌شوند.

یک تکنیک برای بهبود عملکرد برنامه‌های تفسیر شده کامپایل در لحظه آن است. در این روش ماشین مجازی، دقیقاً قبل از اجرا، بلوک‌های کدهای بایتی که قرار است استفاده شوند را برای اجرای مستقیم روی سخت‌افزار ترجمه می‌کند.



تاریخچه
پیشرفت‌های اولیه

اولین زبان برنامه نویسی به قبل از رایانه‌های مدرن باز می‌گردد. قرن ۱۹ دستگاه‌های نساجی و متون نوازنده پیانو قابل برنامه نویسی داشت که امروزه به عنوان مثال‌هایی از زبان‌های برنامه نویسی با حوزه مشخص شناخته می‌شوند. با شروع قرن بیستم، پانچ کارت‌ها داده را کد گذاری کردند و پردازش مکانیکی را هدایت کردند. در دهه ۱۹۳۰ و ۱۹۴۰، صورت گرایی حساب لاندای آلونزو چرچ و ماشین تورینگ آلن تورینگ مفاهیم ریاضی بیان الگوریتم‌ها را فراهم کردند؛ حساب لاندا همچنان در طراحی زبان موثر است.

در دهه ۴۰، اولین رایانه‌های دیجیتال که توسط برق تغذیه می‌شدند ایجاد شدند. اولین زبان برنامه نویسی سطح بالا طراحی شده برای کامپیوتر پلانکالکول بود، که بین سال‌های ۱۹۴۵ و ۱۹۴۳ توسط کنراد زوس برای ز۳ آلمان طراحی شد.

کامپیوترهای اوایل ۱۹۵۰، بطور خاص ÜNIVAC ۱ و IBM ۷۰۱ از برنامه‌های زبان ماشین استفاده می‌کردند. برنامه نویسی زبان ماشین نسل اول توسط نسل دومی که زبان اسمبلی نامیده می‌شوند جایگزین شد. در سال‌های بعد دهه ۵۰، زبان برنامه نویسی اسمبلی، که برای استفاده از دستورات ماکرو تکامل یافته بود، توسط سه زبان برنامه نویسی سطح بالا دیگر: FORTRAN,LISP , COBOL مورد استفاده قرار گرفت. نسخه‌های به روز شده این برنامه‌ها همچنان مورد استفاده قرار می‌گیرند، و هر کدام قویا توسعه زبان‌های بعد را تحت تاثیر قرار دادند. در پایان دهه ۵۰ زبان algol ۶۰ معرفی شد، و بسیاری از زبان‌های برنامه نویسی بعد، با ملاحظه بسیار، از نسل algol هستند. قالب و استفاده از زبان‌های برنامه نویسی به شدت متاثر از محدودیت‌های رابط بودند.



پالایش

دوره دهه ۶۰ تا اواخر دهه ۷۰ گسترش مثال‌های عمده زبان پرکاربرد امروز را به همراه داشت. با این حال بسیاری از جنبه‌های آن بهینه سازی ایده‌های اولیه نسل سوم زبان برنامه نویسی بود:

APL برنامه نویسی آرایه‌ای را معرفی کرد و برنامه نویسی کاربردی را تحت تاثیر قرار داد.
PL/i(NPL) دراوایل دهه ۶۰ طراحی شده بود تا ایده‌های خوب فورترن و کوبول را بهم پیوند دهد.
در دهه ۶۰، Simula اولین زبانی بود که برنامه نویسی شئ گرا را پشتیبانی می‌کرد، در اواسط دهه۷۰. Smalltalk به دنبال آن به

عنوان اولین زبان کاملاً شئ گرا معرفی شد.

C بین سال‌های ۱۹۶۹ تا ۱۹۷۳ به عنوان زبان برنامه نویسی سیستمی طراحی شد و همچنان محبوب است.
Prolog، طراحی شده در ۱۹۷۲، اولین زبان برنامه نویسی منطقی بود.
در ۱۹۷۸ ML سیستم نوع چند ریخت روی لیسپ ایجاد کرد، و در زبان‌های برنامه نویسی کاربردی ایستا نوع گذاری شده پیشگام شد.

هر یک از این زبان‌ها یک خانواده بزرگ از وارثین از خود به جای گذاشت، و مدرنترین زبان‌ها از تبار حداقل یکی از زبان‌های فوق به شمار می‌آیند.

دهه‌های ۶۰ و ۷۰ مناقشات بسیاری روی برنامه نویسی ساخت یافته به خود دیدند، و اینکه آیا زبان‌های برنامه نویسی باید طوری طراحی شوند که آنها را پشتیبانی کنند.

"ادسگر دیکسترا" در نامه‌ای معروف در ۱۹۶۸ که در ارتباطات ACM منتشر شد، استدلال کرد که دستورgoto باید از تمام زبان‌های سطح بالا حذف شود.

در دهه‌های ۶۰ و ۷۰ توسعهٔ تکنیک‌هایی صورت گرفت که اثر یک برنامه را کاهش می‌داد و در عین حال بهره وری برنامه نویس و کاربر را بهبود بخشید. دسته کارت برای ۴GL اولیه بسیار کوچکتر از برنامهٔ هم سطح بود که با ۳GL deck نوشته شده بود.




یکپارچگی و رشد

دهه ۸۰ سال‌های یکپارچگی نسبی بود. C++ برنامه نویسی شئ گرا و برنامه نویسی سیستمی را ترکیب کرده بود. ایالات متحده ایدا(زبان برنامه نویسی سیستمی که بیشتر برای استفاده توسط پیمان کاران دفاعی بود) را استاندارد سازی کرد. در ژاپن و جاهای دیگر، هزینه‌های گزافی صرف تحقیق در مورد زبان نسل پنجم می‌شد که دارای ساختارهای برنامه نویسی منطقی بود. انجمن زبان کاربردی به سمت استانداردسازی ML و Lisp حرکت کرد. به جای ایجاد مثال‌های جدید، تمام این تلاش‌ها ایده‌هایی که در دهه‌های قبل حلق شده بودند را بهتر کرد.

یک گرایش مهم در طراحی زبان در دهه ۸۰ تمرکز بیشتر روی برنامه نویسی برای سیستم‌های بزرگ از طریق مدول‌ها، و یا واحدهای کدهای سازمانی بزرگ مقیاس بود. مدول-۲، ایدا. و ML همگی سیستم‌های مدولی برجسته‌ای را در دهه ۸۰ توسعه دادند. با وجود اینکه زبان‌های دیگر، مثل PL/i، پشتیبانی بسیار خوبی برای برنامه نویسی مدولی داشتند. سیستم‌های مدولی غالباً با ساختارهای برنامه نویسی عام همراه شده‌اند.

رشد سریع اینترنت در میانه دهه ۹۰ فرصت‌های ایجاد زبان‌های جدید را فراهم کرد. Perl، در اصل یک ابزار نوشتن یونیکس بود که اولین بار در سال ۱۹۸۷ منتشر شد، در وب‌گاه‌های دینامیک متداول شد. جاوا برای برنامه نویسی جنب سروری مورد استفاده قرار گرفت. این توسعه‌ها اساساً نو نبودند، بلکه بیشتر بهینه سازی شده زبان و مثال‌های موجود بودند، و بیشتر بر اساس خانواده زبان برنامه نویسی C بودند. پیشرفت زبان برنامه نویسی همچنان ادامه پیدا می‌کند، هم در تحقیقات و هم در صنعت. جهت‌های فعلی شامل امنیت و وارسی قابلیت اعتماد است، گونه‌های جدید مدولی(mixin، نماینده‌ها، جنبه‌ها) و تجمع پایگاه داده.

۴GLها نمونه‌ای از زبان‌هایی هستند که محدوده استفاده آنها مشخص است، مثل SQL. که به جای اینکه داده‌های اسکالر را برگردانند، مجموعه‌هایی را تغییر داده و بر می‌گردانند که برای اکثر زبان‌ها متعارفند. Perl برای مثال، با "مدرک اینجا" خود می‌تواند چندین برنامه ۴GL را نگه دارد، مانند چند برنامه جاوا سکریبت، در قسمتی از کد پرل خود و برای پشتیبانی از چندین زبان برنامه نویسی با تناسب متغیر در "مدرک اینجا" استفاده کند.




سنجش استفاده از زبان

مشکل است که مشخص کنیم کدام زبان برنامه نویسی بیشتر مورد استفاده‌است، و اینکه کاربرد چه معنی می‌دهد با توجه به زمینه تغییر می‌کند. یک زبان ممکن است زمان بیشتری از برنامه نویس بگیرد، زبان دیگر ممکن است خطوط بیشتری داشته باشد، و دیگری ممکن است زمان بیشتری از پردازنده را مصرف کند. برخی زبان‌ها برای کاربردهای خاص بسیار محبوبند. برای مثال: کوبول همچنان در مراکزداده متحد، غالباً روی کامپیوترهای بزرگ توانا است؛ fortran در مهندسی برنامه‌های کاربردی، C در برنامه‌های تعبیه شده و سیستم‌های عامل؛ و بقیه برنامه‌ها معمولاً برای نوشتن انواع دیگر برنامه‌ها کاربرد دارند. روش‌های مختلفی برای سنجش محبوبیت زبان‌ها، هر یک متناسب یا یک ویژگی محوری متفاوت پیشنهاد شده‌است:

شمارش تعداد تبلیغات شغلی که از آن زبان نام می‌برند.
تعداد کتاب‌های آموزشی و شرح دهندهٔ آن زبان که فروش رفته‌است.
تخمین تعداد خطوطی که در آن زبان نوشته شده اند- که ممکن است زبان‌هایی را که در جستجوها کمتر پیدا می‌شوند دست کم گرفته شوند.
شمارش ارجاع‌های زبان(برای مثال، به اسم زبان) در موتورهای جستجوهای اینترنت.

طبقه بندی‌ها هیچ برنامه غالبی برای دسته بندی زبان‌های برنامه نویسی وجود ندارد. یک زبان مشخص معمولاً یک زبان اجدادی ندارد. زبان‌ها معمولاً با ترکیب المان‌های چند زبان پیشینه بوجود می‌آیند که هربار ایده‌های جدید درگردشند. ایده‌هایی که در یک زبان ایجاد می‌شوند در یک خانواده از زبان‌های مرتبط پخش می‌شوند، و سپس از بین خلاهای بین خانواده‌ها منتقل شده و در خانواده‌های دیگر ظاهر می‌شوند.

این حقیقت که این دسته بندی ممکن است در راستای محورهای مختلف انجام شوند، این وظیفه را پیچیده تر می‌کند؛ برای مثال، جاوا هم یک زبان شیءگرا(چون به برنامه نویسی شیءگرا تشویق می‌کند) و زبان همزمان(چون ساختارهای داخلی برای اجرای چندین جریان موازی دارد) است. پایتون یک زبان اسکریپتی شیءگراست.

در نگاه کلی، زبان‌های برنامه نویسی به مثال‌های برنامه نویسی و یک دسته بندی بر اساس محدوده استفاده تقسیم می‌شوند. مثال‌ها شامل برنامه نویسی رویه‌ای، برنامه نویسی شیءگرا، برنامه نویسی کاربردی، وبرنامه نویسی منطقی؛ برخی زبان‌ها ترکیب چند مثالند. یک زبان اسمبلی مثالی از یک مدل مستقیم متضمن معماری ماشین نیست. با توجه به هدف، زبان‌های برنامه نویسی ممکن است همه منظوره باشند، زبان‌های برنامه نویسی سیستمی، زبان‌های اسکریپتی، زبان‌های محدوده مشخص، زبان‌های همزمان/ گسترده(و یا ترکیب اینها). برخی زبان‌های همه منظوره تا حد زیادی برای اهداف آموزشی طراحی شده‌اند.

یک زبان برنامه نویسی ممکن است با فاکتورهای غیر مرتبط به مثال‌های برنامه نویسی دسته بندی شود. برای مثال، غالب زبان‌های برنامه نویسی کلمات کلیدی زبان انگلیسی را استفاده می‌کنند، در حالیکه تعداد کمی این کار را نمی‌کنند. سایر زبان‌ها ممکن است براساس داخلی بودن یا نبودن دسته بندی شوند.
ساعت : 1:04 pm | نویسنده : admin | گرافیکسولوژی | مطلب قبلی
گرافیکسولوژی | next page | next page