Microsoft Visual C# в задачах и примерах. 2-е изд



Download 2,39 Mb.
Pdf ko'rish
bet53/104
Sana23.02.2022
Hajmi2,39 Mb.
#135218
TuriКнига
1   ...   49   50   51   52   53   54   55   56   ...   104
Bog'liq
C# справочник задачи


Часть 1 
168 
field[i, j] = rndN; 
buf[rndN - 1]++; 

nOpened = 0; 
cOpened = 0; 
this.drawField(); 

public Form1() 

InitializeComponent(); 
try 

// загружаем файл с картинками 
pics = new Bitmap("pictures.bmp"); 

catch (Exception exc) 

MessageBox.Show("Файл 'pictures.bmp' не найден.\n" 

exc.ToString(), "Парные картинки", 
MessageBoxButtons.OK, 
MessageBoxIcon.Error); 
this.Close(); 
return; 

// определяем размер картинки и устанавливаем 
// размер клеток игрового поля 
cw = (int)(pics.Width / np); 
ch = pics.Height; 


Примеры и задачи 
169 
// установить размер клиентской области формы 
// в соответствии с размером картинок и их количеством 
// (см. определения констант cw и ch) 
this.ClientSize = 
new System.Drawing.Size(nw * (cw + 2) + 1, 
nh * (ch + 2) + 1 + menuStrip1.Height); 
// рабочая графическая поверхность 
g = this.CreateGraphics(); 
// создать объект timer1 
timer1 = new Timer(); 
timer1.Tick += 
new System.EventHandler(this.timer1_Tick); 
timer1.Interval = 200; 
newGame(); 

// щелчок на игровом поле 
private void Form1_MouseClick(object sender, 
MouseEventArgs e) 


int i,j; // индексы элемента массива fild, 
// соответствующего клетке, в которой 
// сделан щелчок 
i = e.X / (cw +3);
j = (e.Y - menuStrip1.Height) / (ch+3);
// если таймер работает, это значит, что в данный
// момент открыты две клетки, в которых находятся 
// одинаковые картинки, но они еще не "стерты". 


Часть 1 
170 
// Если щелчок сделан в одной из этих картинок, 
// то ничего делать не надо. 
if ((timer1.Enabled) && (field[i,j] > 200)) 

return; 

// щелчок на месте одной из двух уже найденных 
// парных картинок 
if (field[i, j] > 200) return; 
// открытых клеток нет 
if (cOpened == 0) 

cOpened++; 
// записываем координаты 1-й открытой клетки 
open1[0] = i; open1[1] = j; 
// клетка помечается как открытая 
field[i, j] += 100; 
// отрисовать клетку 
this.cell(i, j); 
return; 

// открыта одна клетка, надо открыть вторую 
if (cOpened == 1) 

// записываем координаты 2-й открытой клетки 
open2[0] = i; open2[1] = j; 


Примеры и задачи 
171 
// если открыта одна клетка, и щелчок сделан 
// в той же клетке, ничего не происходит 
if ((open1[0] == open2[0]) && 
(open1[1] == open2[1])) 
return; 
else 

// теперь открыты две клетки 
cOpened++; 
// клетка помечается как открытая 
field[i, j] += 100; 
// отрисовать клетку 
this.cell(i, j); 
// открыты 2 одинаковые картинки 
if (field[open1[0], open1[1]] == 
field[open2[0], open2[1]]) 

nOpened++; 
// пометим клетки как найденные 
field[open1[0], open1[1]] += 100; 
field[open2[0], open2[1]] += 100; 
cOpened = 0; 
// Запускаем таймер. Процедура обработки 
// сигнала от таймера "сотрет" клетки 
// с одинаковыми картинками 
timer1.Enabled = true; 




Download 2,39 Mb.

Do'stlaringiz bilan baham:
1   ...   49   50   51   52   53   54   55   56   ...   104




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish