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

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

كليه الحاسبات والمعلومات كليات الحاسبات ونظم المعلومات

إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 12-05-2013, 02:35 AM
فاطمة عبدالرحيم فاطمة عبدالرحيم غير متواجد حالياً
طالبة بالصف الثالث الثانوي ( علمي علوم)
 
تاريخ التسجيل: Aug 2009
المشاركات: 203
معدل تقييم المستوى: 15
فاطمة عبدالرحيم 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. الساعة الآن 11:44 AM.