Arkadaşlar d de bayağı yeniyim. Ben de kendimi geliştirmek için basit bir xox oyunu yazdım. Ama normal olarak oyun konsol üzerinde çalışıyor ve mesela giriş yapabilmek için koordinat girmek gerekiyor, mause değil ve ayrıca ekran otomatik yenilenmiyor. Fakat ben bu uygulmamanın nasıl görsel arayüzde çalışabileceğini ( gerçek bir oyun gibi ) merak ediyorum. Beni bu konuda aydınlatabilir misiniz ?
Şimdiden teşekkürler :) ayrıca kodlarımı paylaşıyorum düzeltmem gereken bir yer varsa (optimizasyon açışından) lütfen söyleyin.
import std.stdio;
int[3][3] oyunTahtasi;
int r, c;
int hamle = 0, oyuncu = 1;
void main()
{
oyunTahtasiYazdir();
while(true) {
writeln(oyuncu, ". oyuncunun sirasi");
write("Konumu girin (once satir sonra sutun)(0-1-2) : ");
readf(" %s %s", &r, &c);
if (oyunTahtasi[r][c] == 0) {
oyunTahtasi[r][c] = oyuncu;
oyunTahtasiYazdir;
oyuncu = ++hamle % 2 + 1;
}
else {
continue;
}
if(oyunBiter()){
break;
}
}
}
void oyunTahtasiYazdir()
{
int i, k;
writeln();
for (i = 0; i < oyunTahtasi.length; ++i) {
for (k = 0; k < oyunTahtasi.length; ++k) {
write(oyunTahtasi[i][k]);
}
writeln();
}
writeln();
}
bool oyunBiter()
{
if (hamle == 9) {
writeln("Berabere kaldiniz.");
return true;
}
if (oyuncu == 1) {
oyuncu = 2;
}
else {
oyuncu = 1;
}
if ((((oyunTahtasi[0][c] == oyunTahtasi[1][c]) & (oyunTahtasi[1][c] == oyunTahtasi[2][c]))) ||
(((oyunTahtasi[r][0] == oyunTahtasi[r][1]) & (oyunTahtasi[r][1] == oyunTahtasi[r][2]))) ||
(((oyunTahtasi[0][0] == oyunTahtasi[1][1]) & (oyunTahtasi[1][1] == oyunTahtasi[2][2]))
& (oyunTahtasi [0][2] != 0)) ||
(((oyunTahtasi[0][2] == oyunTahtasi[1][1]) & (oyunTahtasi[1][1] == oyunTahtasi[2][0]))
& (oyunTahtasi [0][2] != 0))) {
writeln(oyuncu, ". oyuncu kazandi !");
writeln("Tebrikler, ", hamle / 2 + 1, " hamlede kazandiniz.");
return true;
}
else {
if (oyuncu == 1) {
oyuncu = 2;
}
else {
oyuncu = 1;
}
return false;
}
}
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]