اهلا وسهلا بك فى بوابة الثانوية العامة ... سجل الان

العودة   بوابة الثانوية العامة المصرية > الجامعات والمعاهد المصرية > كليات المجموعة الرياضية

كليات المجموعة الرياضية (الهندسة - الحاسبات والمعلومات - التجارة & التجارة إنجلش - الفنون التطبيقية والجميلة)

 
 
أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 12-05-2013, 02:35 AM
فاطمة عبدالرحيم فاطمة عبدالرحيم غير متواجد حالياً
طالبة بالصف الثالث الثانوي ( علمي علوم)
 
تاريخ التسجيل: Aug 2009
العمر: 30
المشاركات: 200
معدل تقييم المستوى: 16
فاطمة عبدالرحيم is on a distinguished road
Impp مسااااااااااااااعدة كود لعبة اكس او بلغة السي

اريد شرح كامل هذا الكود
هذا كود لعبة اكس او بلغة السي

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<windows.h>

int board[10] = {2,2,2,2,2,2,2,2,2,2};
int turn = 1,flag = 0;
int player,competitor;

void menu();
void go(int n);
void start_game();
void check_draw();
void draw_board();
void player_first();
void put_X_O(char ch,int pos);
COORD coord={0,0}; // this is global variable
//center of axis is set to the top left cornor of the screen
void gotoxy(int x,int y)
{
coord.X=x;
coord.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_H ANDLE),coord);
}



void main()
{
system("cls");
menu();
getch();

}

void menu()
{
int choice;
system("cls");
printf("***** Menu *****");
printf(" \n 1: play with x ");
printf(" \n 2: play with y ");
printf(" \n 3: Exit ");
printf("Enter your choice");
scanf("%d",&choice);
turn = 1;
switch (choice)
{
case 1:
player = 1;
competitor = 0;
player_first();
break;
case 2:
player = 0;
competitor = 1;
start_game();
break;
case 3:
exit(1);
default:
menu();
}
}

int make2()
{
if(board[5] == 2)
return 5;
if(board[2] == 2)
return 2;
if(board[4] == 2)
return 4;
if(board[6] == 2)
return 6;
if(board[8] == 2)
return 8;
return 0;
}

int make4()
{
if(board[1] == 2)
return 1;
if(board[3] == 2)
return 3;
if(board[7] == 2)
return 7;
if(board[9] == 2)
return 9;
return 0;
}

int posswin(int p)
{
// p==1 then X p==0 then O
int i;
int check_val,pos;

if(p == 1)
check_val = 18;
else
check_val = 50;

i = 1;
while(i<=9) //row check
{
if(board[i] * board[i+1] * board[i+2] == check_val)
{
if(board[i] == 2)
return i;
if(board[i+1] == 2)
return i+1;
if(board[i+2] == 2)
return i+2;
}
i+=3;
}

i = 1;
while(i<=3) //column check
{
if(board[i] * board[i+3] * board[i+6] == check_val)
{
if(board[i] == 2)
return i;
if(board[i+3] == 2)
return i+3;
if(board[i+6] == 2)
return i+6;
}
i++;
}

if(board[1] * board[5] * board[9] == check_val)
{
if(board[1] == 2)
return 1;
if(board[5] == 2)
return 5;
if(board[9] == 2)
return 9;
}

if(board[3] * board[5] * board[7] == check_val)
{
if(board[3] == 2)
return 3;
if(board[5] == 2)
return 5;
if(board[7] == 2)
return 7;
}
return 0;
}

void go(int n)
{
if(turn % 2)
board[n] = 3;
else
board[n] = 5;
turn++;
}

void player_first()
{
int pos;

check_draw();
draw_board();
gotoxy(30,18);
printf("Your Turn :> ");
scanf("%d",&pos);

if(board[pos] != 2)
player_first();

if(pos == posswin(player))
{
go(pos);
draw_board();
gotoxy(30,20);
//textcolor(128+RED);
printf("Player Wins");
getch();
exit(0);
}

go(pos);
draw_board();
start_game();
}

void start_game()
{
// p==1 then X p==0 then O
if(posswin(competitor))
{
go(posswin(competitor));
flag = 1;
}
else
if(posswin(player))
go(posswin(player));
else
if(make2())
go(make2());
else
go(make4());
draw_board();

if(flag)
{
gotoxy(30,20);
//textcolor(128+RED);
printf("Computer wins");
getch();
}
else
player_first();
}

void check_draw()
{
if(turn > 9)
{
gotoxy(30,20);
//textcolor(128+RED);
printf("Game Draw");
getch();
exit(0);
}
}

void draw_board()
{
int j;

for(j=14;j<17;j++)
{
gotoxy(35,j);
printf("| |");
}
gotoxy(28,11);
printf("-----------------------");
gotoxy(28,14);
printf("-----------------------");

for(j=1;j<10;j++)
{
if(board[j] == 3)
put_X_O('X',j);
else
if(board[j] == 5)
put_X_O('O',j);
}
}

void put_X_O(char ch,int pos)
{
int m;
int x = 31, y = 10;

m = pos;

if(m > 3)
{
while(m > 3)
{
y += 3;
m -= 3;
}
}
if(pos % 3 == 0)
x += 16;
else
{
pos %= 3;
pos--;
while(pos)
{
x+=8;
pos--;
}
}
gotoxy(x,y);
printf("%c",ch);
}
 

العلامات المرجعية

أدوات الموضوع
انواع عرض الموضوع

ضوابط المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا يمكنك اضافة مرفقات
لا يمكنك تعديل مشاركاتك

BB code متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع


جميع الأوقات بتوقيت GMT +2. الساعة الآن 07:21 PM.