Mavzu: Tic tac toe o’yini reja: I. Kirish II. Asosiy qism
Tic-tac-toe o’yinini yaratish ketma-ketligi
Download 1.26 Mb. Pdf ko'rish
|
Muxarramning kurs ishi -1
Tic-tac-toe o’yinini yaratish ketma-ketligi
Ushbu o’yinni Microsoft Visual studio 2012 C# dasturida yaratilgan. Loyihani yaratish uchun birinchi bo`lib yangi proyekt ochib olamiz. Buning uchun avval Пуск Все программы Microsoft Visual Studio 2012 Microsoft Visual Studio ni tanlab sichqonchani o’ng tomonini bir marta chertamiz, so’ngra u yerdan Visual Studio 2012 ni tanlab sichqonchani o’ng tomonini ikki marta chertamiz. Visual Studio ning menyular satrida joylashgan File menyusidan New Projekt Visual C#, Windows Forms Application ni tanlab, “OK” tugmasinini chertamiz (1, 2, 3-rasmlarga qarang).
1-rasm
2-rasm
3-rasm
Form oynasidagi “Form1” nomini “Tic tac toe” ga o’zgartirib olamiz (4-rasmga qarang).
4-rasm
File va Help menyularini hosil qilish uchun ochilgan form oynamizga toolbox dan “ToolStrip” tashlaymiz (5-rasmga qarang).
5-rasm O’yin tugmachalari uchun toolbox dan 9 ta button tashlaymiz, ularning o’lchamini kerakli holatga keltirib olamiz. Birinchi satrda joylashgan tugmalarni A1, A2, A3 deb nomlab olamiz. Ikkinchi satrda joylashgan tugmalarni B1, B2, B3 deb nomlab olamiz. Uchinchi satrda joylashgan tugmalarni C1, C2, C3 deb nomlab olamiz. (6-rasmga qarang).
6-rasm Help menyusidagi “About” bo’limini o’yin haqida qisqacha malumot berish uchun hosil qilamiz (7, 8-rasmlarga qarang).
7-rasm
8-rasm File menyusidagi “New game” o’yinni yangidan boshlash vazifasini, “Exit” o’yindan chiqish vazifasini bajarishi uchun hosil qilib olamiz va kerkli dastur kodini kiritib olamiz (9, 10-rasmlarga qarang).
9-rasm 10-rasm
O’yin ishtirokchilarni ismlarini yozish uchun 2 ta “Texbox” va 4 ta “Label” tashlab olamiz (11-rasmga qarang).
11-rasm
O’yin ko’rimli bo’lishi uchun dizayniga biroz ishlov beramiz. Buning uchun Properties BackgroundImage ni tanlaganizda 12-rasmdagi muloqot oynasi ochiladi.
12-rasm “Import” tugmasini chertamiz va 13-rasmdagi muloqot oynasidan kerakli rasmni topganimizdan so’ng “Открыт” tugmasini chertamiz (13-rasmga qarang).
13-rasm
14-rasm Quyidagi dastur kodlarini bexato yozganimizdan song o’yinimiz tayyor bo’ladi: namespace Kurs_ishim { public
partial
class
Form1
: Form
{ bool turn = true
; // false = X turn; true = O turn;
int
turn_count = 0; public
Form1() { InitializeComponent(); } private
void
aboutToolStripMenuItem_Click( object
sender, EventArgs e) {
.Show( " Muxarram tomonidan ishlab chiqildi." , "Tic tac toe haqida" ); }
private
void exitToolStripMenuItem_Click( object
sender, EventArgs e) {
.Exit(); } private void
button_Click( object
sender, EventArgs e) {
((p1.Text == "Player1" ) || (p2.Text == "Player2" )) {
.Show( "O'yinni boshlash uchun o'yinchilar ismlari kiritilishi shart!" ); }
{ Button b = ( Button
)sender; if (turn)
b.Text = "X"
; else
b.Text = "O" ;
b.Enabled = false
; turn_count++; label2.Focus(); checkForWinner(); } }
void
checkForWinner() { bool there_is_a_winner= false
; //gorizontaliga tekshirishlar:
if
there_is_a_winner= true
; else
if ((B1.Text == B2.Text) && (B3.Text == B2.Text) && (!B1.Enabled)) there_is_a_winner= true
; else
if ((C1.Text == C2.Text) && (C3.Text == C2.Text) && (!C1.Enabled)) there_is_a_winner= true
; //vertikaliga tekshirishlar:
if
there_is_a_winner = true
; else
if ((A2.Text == B2.Text) && (B2.Text == C2.Text) && (!A2.Enabled)) there_is_a_winner = true
; else
if ((A3.Text == B3.Text) && (B3.Text == C3.Text) && (!A3.Enabled)) there_is_a_winner = true
; //Gorizontaliga tekshirishlar:
if
there_is_a_winner = true
; else
if ((A3.Text == B2.Text) && (B2.Text == C1.Text) && (!A3.Enabled)) there_is_a_winner = true
; if (there_is_a_winner) { disableButtons(); String winner = "" ; if (turn) { winner = p2.Text; o_win_count.Text = ( Int32
.Parse(o_win_count.Text) + 1).ToString(); } else { winner = p1.Text; x_win_count.Text = ( Int32
.Parse(x_win_count.Text) + 1).ToString(); } MessageBox .Show(winner + " G'olib!" ); }
else
{ if (turn_count == 9) { draw_count.Text = ( Int32 .Parse(draw_count.Text) + 1).ToString(); MessageBox .Show(
"Durrang!" , "Bummer" ); } } } //checkForWinner ning tamomlanishi.
private
void
disableButtons() {
try
{ foreach ( Control c in Controls) { Button
b = ( Button
)c; b.Enabled = false ;
//foreach ning tamomlanishi.
} //try ning tamomlanishi.
catch { } } private void
newGameToolStripMenuItem_Click( object
sender, EventArgs e) {
true ; turn_count = 0; foreach ( Control c in Controls) { try
{ Button b = ( Button
)c; b.Enabled = true ;
"" ; } //try ning tamomlanishi.
catch { } } //foreach ning tamomlanishi. } private void
button_enter( object
sender, EventArgs e) {
b = ( Button
)sender; if (b.Enabled) { if (turn)b.Text = "X" ;
b.Text = "O"
; } } private
void button_leave( object
sender, EventArgs e) {
b = ( Button
)sender; if (b.Enabled) { b.Text = "" ; }
} private
void
resetWinCountToolStripMenuItem_Click( object
sender, EventArgs e) {
"0" ; o_win_count.Text = "0" ; draw_count.Text = "0" ; } } } Kompilyator programma matnini leksik va sintaktik tahlil qiladi. Probel ajratuvchisi - probel belgisi ('─'), '\t' - tabulyatsiya belgisi, '\n'- keyingi qatorga o‘tish belgisi hisoblnadi. Programma matni tushunarli bo‘lishi uchun izohlar ishlatiladi. Izohlar kompilyator tomonidan «o‘tkazib» yuboriladi va ular programma amal qilishiga hech qanday ta’sir qilmaydi. C# tilida izohlar ikki ko‘rinishda yozilishi mumkin. Birinchisida "/*" dan boshlanib, "*/" belgalari bilan tugagan barcha belgilar ketma-ketligi izoh hisoblanadi, ikkinchisi «satriy izoh» deb nomlanadi va u "//" belgilardan boshlangan va satr oxirigacha yozilgan belgilar ketma-ketligi bo‘ladi. Izohlardan keyin C# operatorlari davom etishi mumkin. XULOSA Ushbu o’yin dasturini tayyorlash jarayonida men Google Chrome va Yandex dasturlaridan samarali foydalanishni o’rgandim. Microsoft Visual Studio dasturi yordamida Adobe Photoshop, AdobeIllustrator va boshqa kompyuter grafikasi dasturlarida tayyorlash ancha murakkab bo’lgan animatsiyali va grafik mahsulotlarni nihoyatda ko’rimli va osongina tayyorlash mumkinligini bilib oldim. Microsoft Visual Studio da tayyorlangan mahsulotimizni dizayniga ishlov berishni o’rgandim. Buning natijasida, tayyorlangan o’yin dasturimiz tashqi ko’rinishi bilan o’ynovchilarni o’ziga jalb qiladi. O’ynovchilarning o’yinga bo’lgan qiziqishini orttiradi. Dasturda yuz berishi mumkin bo’lgan xatoliklarni oldi olingan, dasturning yashash sikli hisobga olingan bo’lishi lozim ekan. shundagina yaratilgan dastur foydalanuvchiga uzoq muddat, samarali hizmat qilishi mumkin. Men ushbu kurs ishini tayyorlash davomidagi vaqt oralig`ida juda ko`p bilim, ko`nikma va malakalarga ega bo`ldim. Ushbu kurs ishim yordamida C# tili, uning tarixi, asoschilari, uning asosi, til grammatikasi va qoidalari va operatorlar haqida juda ko`p bilimga ega bo`ldim. Bundan tashqari chizmalar chizish shu ishlar orqali o`yinlar yaratish o`yin yaratilayotgan vaqt mobaynida o`yin kodlarini yozish haqida ham ko`p ma`lumotlar oldim. C# visual studio dasturida o`yinlarni yaratish tahlil qilish uchun yana ko`pgina grafik chiziqlar chizish, funksiyalardan foydalanish usullarini o`rgandim. Qisqa qilib aytganda ushbu kurs ishim meni bilim olishimga, izlanishimga orgatdi. Microsoft Visual Studio dasturi , dasturlashasoslari yordamida hosil qilinadigan - fraktal grafika ga bo’lgan qiziqishlarimni yanada orttirdi. Fraktal grafikaga juda ham qiziqaman. Kelgusida fractal grafika yo’nalishida kata ishlar qilishni o’z oldimga maqsad qilib oldim. Ushbu kurs ishini tayyorlash jaryonida ko’pgina kitoblarni o’qib chiqishga muvaffaq bo’lsdim. Buning natijasida men anchdan buyon o’ylantirayotgan ko’pgina savollarimga javoblar oldim va ko’pdan – ko’p yangi bilimlarni o’zlashtirib oldim. |
ma'muriyatiga murojaat qiling