You are on page 1of 17

Racunarska grafika II

Univerzitet u Novom Sadu


Tehnički fakultet ″Mihajlo Pupin″
Đure Đakovića BB
23000 Zrenjanin
www.tf.zr.ac.yu

Seminarski rad
tema: Ajnc igrica
predmet:Racunarska grafika II

Student: Mentor:
Viktor David 7/08-11 prof. dr Ivana Berkovic

Zrenjanin, Maj 2011.god.

Viktor David 45/08-11 Page 1


Racunarska grafika II

Uvod

Sada cemo objasniti kako uraditi igricu nalik Ajnc-u u C#, Visual Studio 2010
okruzenju. Kreiranje GUI, ubacivanje funkcija, kako se koristi kontrola grafickih
objekata, reagovanje i odgovor na promene objekta, Event-a. Ova igrica je
simulacija igre sa kartama, ova igra sa kartama se igra tako sto se iz spila karata od
52 karte random izbaci dve karte, a njihov zbir sa trecom kartom treba da bude 21
ili sto blize. Ova originalna igrica ima jos par dodataka ali mi smo simulirali da
ako ne predje zbir tri karte da ste pobednik i da ste uvecali broj cipova za ulog koji
se sabira sa vec dodeljenim cipovima koji su na startu 100, ulog moze da bude bez
obzira na unos za broj cipova koliko imas. Naravno ako izgubite tj. Predjete zbir
21 za ulozene cipove bice umanjen skor. Igra je pracena upustvima na centralnom
delu forme, tako da ne bih trebalo da bude problema u igri i zato uzivajte.

Viktor David 45/08-11 Page 2


Racunarska grafika II

Za kreiranje nove aplikacije u Visual Studio-u potrebno je odabrati File → New Project. U
prozoru koji se zatim otvori treba izabrati Windows Forms Application. U polje Name unosi se
ime nove aplikacije: Ajnc.

Viktor David 45/08-11 Page 3


Racunarska grafika II

Forma treba da izgleda kao na sledecem screanshot-u i ona sadrzi 3 panela koji oznacavaju karte,
jos jedan panel koji predstavlja info display koji u sebi sadrzi labele sa kojima obavestavamo
igraca o koracima igre i trenutnom stanju da li pobedjuje ili gubi. Ispod display-a se nalazi
gupa u kojoj se nalazi dve labele jedna koja oznacava broj preostalih karata i druga broj cipova,
izmedju ljih se nalazi Numeric up-down u kojom unosimo ulog. Nize svega se nalazi dugme koje
prestavlja kontrolu o podeli karata i prikazu karata koju mi kontrolisemo. U dnu same forme se
nalazi dva dugmeta jedno za start igre i drugi za exit i stopiranje igre. Da ne bih dozlo do zabune
sledecim screanshot-ovima cemo pojasniti:

Viktor David 45/08-11 Page 4


Racunarska grafika II

Paneli rezervisani za karte:

Labele unutar karata koje oznacavaju vrednost karte:

Viktor David 45/08-11 Page 5


Racunarska grafika II

|Picture box-ovi koji prestavljaju logo karte:

Labela za indormacije:

Viktor David 45/08-11 Page 6


Racunarska grafika II

Ostatak ide isto kao navedeno do sada do krajnjeg rezultata koji izgleda:

Ova igra ima samo jednu formu bez dodatnih calss-a.

Viktor David 45/08-11 Page 7


Racunarska grafika II

Deo koda koji je prikazan predstavlja sam ulaz u igru gde smo ubacili funkciju za praznjene
resursa i zahtev za design variables.

Da bih izbegli neke error-e posle Dispose slesi Main class-a koja poziva frmAjnc formu:

Viktor David 45/08-11 Page 8


Racunarska grafika II

Sledece sto bih terebali da uradimo jeste da definishemo promenjive za nas projekat dodelimo tip
i pocetne vredosti, i pozovemo GUI komponenete.

Sledeca funkcija obavestava o osnovnim pravilima igre i prvi korak koji treba da uradimo koje
ispisuje u labele:

Viktor David 45/08-11 Page 9


Racunarska grafika II

btnPrikazi_Click event je kljucna funkcija u kojoj se odigrava dobar deo pravila i uslova koji
daju funkcionalnost igrice zato cemo podeliti u delove.

Prvo cemo dodeliti unutrasnje promenljive i uslove za prikaz leve desne i prazne srednje karte:

Provera da li je leva veca od desne karte prikaz leve i ispis u labelama o sledecem koraku:

Viktor David 45/08-11 Page 10


Racunarska grafika II

Sledeci else provera da li ste pobedili i sabira cipove:

Ako nisi pobedio onda si izgubio a to proverava sledeci else, obavestava oduzima cipove za
ulozeno i menja btnPrikazi za "Podeli nove karte!!" i vraca fokus na ulog:

Viktor David 45/08-11 Page 11


Racunarska grafika II

btnNova_Click startuje igru sa restartovanim vrednostima:

btnIzadji_Click omogucava izlaz iz igre il zaustavljanje igre:

Viktor David 45/08-11 Page 12


Racunarska grafika II

Sada sledi funkcija koja kontrolice prikaz karata koja u sebi ima da swich-a jedan koji prikazuje
brojeve i oznaku obojenih karata i druga koja konrolise unos logo-a:
private void Prikazikarte(int v, string c)
{
//Prikaz karti na osnovu vrednosti(v)
string cardLabel;
int karteuit;
switch ((v - 1) % 13 + 1)
{
case 10:
cardLabel = "J";
break;
case 11:
cardLabel = "Q";
break;
case 12:
cardLabel = "K";
break;
case 13:
cardLabel = "A";
break;
default:
cardLabel = Convert.ToString((v - 1) % 13 + 2);
break;
}
karteuit = (int) ((v - 1) / 13);
switch (c)
{
case "Left":
lblLeft.Text = cardLabel;
switch (karteuit)
{
case 0:
picLevi.Image = picSrce.Image;
break;
case 1:
picLevi.Image = picDetelina.Image;
break;
case 2:
picLevi.Image = picKocka.Image;
break;
case 3:
picLevi.Image = picList.Image;
break;
}
pnlLevi.Refresh();
break;
case "Middle":
pnlSrednji.BackColor = Color.White;
lblSrednja.Text = cardLabel;
lblSrednja.Visible = true;
switch (karteuit)
{
case 0:
picSrednja.Image = picSrce.Image;
break;

Viktor David 45/08-11 Page 13


Racunarska grafika II
case 1:
picSrednja.Image = picDetelina.Image;
break;
case 2:
picSrednja.Image = picKocka.Image;
break;
case 3:
picSrednja.Image = picList.Image;
break;
}
picSrednja.Visible = true;
pnlSrednji.Refresh();
break;
case "Right":
lblDesna.Text = cardLabel;
switch (karteuit)
{
case 0:
picDesna.Image = picSrce.Image;
break;
case 1:
picDesna.Image = picDetelina.Image;
break;
case 2:
picDesna.Image = picKocka.Image;
break;
case 3:
picDesna.Image = picList.Image;
break;
}
pnlDesna.Refresh();
break;
}
}

Preposledanja ali naj vaznija funkcija koja nam na osnovu randome nArray-a daje razlicite
vrednosti karata:

Viktor David 45/08-11 Page 14


Racunarska grafika II

Kontrola unosa cipova:

I da bi na kraju izgledala ovako:

Viktor David 45/08-11 Page 15


Racunarska grafika II

Zakljucak

Literatura:

http://www.codeproject.com/
http://www.c-sharpcorner.com/
http://java2s.com/
ebook: Advanced C# Programming by Paul Kimmel
2005 - Wiley - CSharp 2005 For Dummies by Stephen Randy Davis

Viktor David 45/08-11 Page 16


Racunarska grafika II

Viktor David 45/08-11 Page 17

You might also like