Amaliy ishi


Tic-tak-toe o’yinini Microsoft Visual studio 2012 C# dasturi yordamida ham



Yüklə 1,8 Mb.
Pdf görüntüsü
səhifə4/5
tarix07.02.2022
ölçüsü1,8 Mb.
#83540
1   2   3   4   5
Amaliy topshiriq Jo\'raboyev Haydarjon

Tic-tak-toe o’yinini Microsoft Visual studio 2012 C# dasturi yordamida ham 

yaratamiz. 

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). 

 

 



 


 

Form oynasidagi “Form1” nomini “Tic tac toe” ga o’zgartirib olamiz . 

 

File va Help menyularini hosil qilish uchun ochilgan form oynamizga 



toolbox dan “ToolStrip” tashlaymiz. 

 



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. 

 

Help menyusidagi “About” bo’limini o’yin haqida qisqacha malumot berish 



uchun hosil qilamiz. 

 



 

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. 

 

 

 



 


 

O’yin ko’rimli bo’lishi uchun dizayniga biroz ishlov beramiz. Buning uchun 

Properties  BackgroundImage ni tanlaganizda rasmdagi muloqot oynasi 

ochiladi. 

 

“Import” tugmasini chertamiz va 13-rasmdagi muloqot oynasidan kerakli 



rasmni topganimizdan so’ng “Открыт” tugmasini chertamiz. 


 

 

Quyidagi dastur kodlarini bexato yozganimizdan song o’yinimiz tayyor 



bo’ladi: 

namespace Amaliy_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) 

MessageBox.Show(" Jo’raboyev tomonidan ishlab chiqildi.","Tic tac toe haqida"); 



private void exitToolStripMenuItem_Click(object sender, EventArgs e) 

Application.Exit(); 



private void button_Click(object sender, EventArgs e) 

if ((p1.Text == "Player1") || (p2.Text == "Player2")) 



MessageBox.Show("O'yinni boshlash uchun o'yinchilar ismlari kiritilishi shart!"); 

else 


Button b = (Button)sender; 

if (turn) 

b.Text = "X"; 

else 

b.Text = "O"; 



turn = !turn; 

b.Enabled = false; 

turn_count++; 

label2.Focus(); 

checkForWinner(); 



private void checkForWinner() 



bool there_is_a_winner=false; 

//gorizontaliga tekshirishlar: 

if((A1.Text==A2.Text)&&(A3.Text==A2.Text)&&(!A1.Enabled)) 

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 ((A1.Text == B1.Text) && (B1.Text == C1.Text) && (!A1.Enabled)) 

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 ((A1.Text == B2.Text) && (B2.Text == C3.Text) && (!A1.Enabled)) 

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!"); 



}//if ning tamomlanishi. 

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) 

turn = true; 



turn_count = 0; 

foreach (Control c in Controls) 

try 


Button b = (Button)c; 

b.Enabled = true; 

b.Text = ""; 

}//try ning tamomlanishi. 

catch { } 

}//foreach ning tamomlanishi. 

private void button_enter(object sender, EventArgs e) 



Button b = (Button)sender; 

if (b.Enabled) 

if (turn)b.Text = "X"; 



else b.Text = "O"; 



private void button_leave(object sender, EventArgs e) 

Button b = (Button)sender; 



if (b.Enabled) { b.Text = ""; } 




private void resetWinCountToolStripMenuItem_Click(object sender, EventArgs e) 

x_win_count.Text = "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.  Constructor  2  pragrammasida 

ishlashni 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. 

 

 

 



 

 

 



 

 

 



 



Yüklə 1,8 Mb.

Dostları ilə paylaş:
1   2   3   4   5




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə