الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

لعبة X O

بدأه hero for eve في 27 مايو 2011 · 10 رد · 875 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

كيفكم اخواني ان شاء الله طيبين

اتمنى اخواني تساعدوني ببرمجة اللعبه دي :(

طبعا الكل عارفها لعبة اكس اوه x o

يبغانا نستخدم المصفوفات

بحيث يظهر جدول وتضغط مثلا حرف اكس وتجي رسالة انو اللاعب التاني يدخل حرف اوه في مكان بالجدول

واذا اكتملت يظهر مين الفايز فيهم

باللهي مو تعقيد :(

هوا يعني مطلوب بالمنهج نسوي العاب هووا شرحو على قدو وجالس ينكبنا

الله يوفق ويسعد ويسهل على كل مين يساعدني يااااااااااااااااارب

#2

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

اخي شوف الرابط ده http://www.codeproject.com/KB/cs/tictactoewin32.aspx

.:: Wish to become better and better ::.

#3

إحنا عملناها بالويندوز فورم....

بقولك الفكرة لكن مو فاكرتها بالضبط كيف برمجناها.... عملنا buttons "زر حدث" حطينا 9 ازارير...وعرفنا متغير ياخذ 0أو 1....

وعملنا دالة نستدعيها في كل button... كانت وظيفتها تبدل يعني لما تشوف إن العدد 0 تخليه 1...والعكس... لما تصير 0 معناه إن x لعب يعني الزر التالي حيظهر o والعكس ..... وعرفنا متغيرات في كل button وقلنا لما يكون المدخل o المتغير حياخذ قيمة ..ولما يكون x ياخذقيمة ثانية...

بعدين عند الضغط على كل زر يتم إختبار ناتج مجموع الرقم الذي عرفناه بداخله مع الأرقام الأخرى التي في button المؤدية للفوز......

مثلاً في الصف الأول : في 3 ازارير....في كل مرة حيتم إختبار مجموع الأرقام اللي بداخلها ....هذي الأرقام انت تكون حاطها..... يعني نفترض عشان يكون x فايز في الصف الأول لازم قيم الأرقام اللي جوا button الصف مجموعها= قيمة معينة...وإذا o الفايز لازم مجموعها تاخذ قيمة أخرى.... وعند الضغط على أي زر يتم إختباره بالنسبة لموقعه الذي يؤدي للفوز( قطر أو صف أو عمود)

في طرق ثانية بس هذي اللي عملناها....إن شاء الله حتقدر تسويها في البداية تحس إنها صعبة بس ابدأ فيها وحتصير سهلة بإذن الله

تم تعديل هذه المشاركة بواسطة -الأمل- في 28 مايو 2011 في 00:52

1
#4

يبغاها بـ ConsoleApplication

#5

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

اخي جرب هذا


{
class Program
{

public static char[,] Board = new char[5, 5];
public static string PlayerOneName;
public static string PlayerTwoName;
public static float PlayerOneScore;
public static float PlayerTwoScore;
public static int XCoord;
public static int YCoord;
public static bool ValidMove;
public static int NoOfMoves;
public static bool GameHasBeenWon;
public static bool GameHasBeenDrawn;
public static char CurrentSymbol;
public static char StartSymbol;
public static char PlayerOneSymbol;
public static char PlayerTwoSymbol;
public static char Answer;

static void Main(string[] args)
{
Console.WriteLine("What is the name of player one? ");
PlayerOneName = Console.ReadLine();
Console.WriteLine("What is the name of player two? ");
PlayerTwoName = Console.ReadLine();
Console.WriteLine();
PlayerOneScore = 0;
PlayerTwoScore = 0;
do // Choose player one's symbol
{
Console.WriteLine(PlayerOneName + " what symbol do you wish to use, X or O?");
PlayerOneSymbol = char.Parse(Console.ReadLine());
Console.WriteLine();
if (PlayerOneSymbol != 'X' && PlayerOneSymbol != 'O')
{
Console.WriteLine("Symbol to play must be uppercase X or O");
Console.WriteLine();
}
} while (PlayerOneSymbol != 'X' && PlayerOneSymbol != 'O');
if (PlayerOneSymbol == 'X')
PlayerTwoSymbol = 'O';
else
PlayerTwoSymbol = 'X';
StartSymbol = GetWhoStarts();
do // Play a game
{
NoOfMoves = 0;
GameHasBeenDrawn = false;
GameHasBeenWon = false;
ClearBoard(ref Board);//
Console.WriteLine();
DisplayBoard(Board);
if (StartSymbol == PlayerOneSymbol)
Console.WriteLine(PlayerOneName + " starts playing " + StartSymbol.ToString());
else
Console.WriteLine(PlayerTwoName + " starts playing " + StartSymbol.ToString());
Console.WriteLine();
CurrentSymbol = StartSymbol;
do // Play until a player wins or the game is drawn
{
do // Get a valid move
{
GetMoveCoordinates(ref XCoord, ref YCoord);
ValidMove = CheckValidMove(XCoord, YCoord, Board);
if (!ValidMove)
Console.WriteLine("Coordinates invalid, please try again");
} while (!ValidMove);
Board[XCoord, YCoord] = CurrentSymbol;
DisplayBoard(Board);
GameHasBeenWon = CheckXOrOHasWon(Board);
NoOfMoves++;
if (!GameHasBeenWon)
{
if (NoOfMoves == 16) // Check if maximum number of
// allowed moves has been reached
GameHasBeenDrawn = true;
else
{
if (CurrentSymbol == 'X')
CurrentSymbol = 'O';
else
CurrentSymbol = 'X';
}
}
} while (!GameHasBeenWon && !GameHasBeenDrawn);
if (GameHasBeenWon) // Update scores and display results
{
if (PlayerOneSymbol == CurrentSymbol)
{
Console.WriteLine(PlayerOneName + " congratulations you win!");
PlayerOneScore++;
}
else
{
Console.WriteLine(PlayerTwoName + " congratulations you win!");
PlayerTwoScore++;
}
}
else
Console.WriteLine("A draw this time!");
Console.WriteLine();
Console.WriteLine(PlayerOneName + ", your score is: " + PlayerOneScore.ToString());
Console.WriteLine(PlayerTwoName + ", your score is: " + PlayerTwoScore.ToString());
Console.WriteLine();
if (StartSymbol == PlayerOneSymbol)
StartSymbol = PlayerTwoSymbol;
else
StartSymbol = PlayerOneSymbol;
Console.WriteLine("Another game Y/N? ");
Answer = char.Parse(Console.ReadLine());
} while (Answer != 'N' && Answer != 'n');
} // end Main

public static void DisplayBoard(char[,] Board)
{
int Row;
int Column;

Console.WriteLine(" ¦ 1 2 3 4 ");
Console.WriteLine("--+---------");
for (Row = 1; Row <= 4; Row++)
{
Console.Write((Row).ToString() + " ¦ ");
for (Column = 1; Column <= 4; Column++)
{
Console.Write(Board[Column, Row] + " ");
}
Console.WriteLine();
}
Console.WriteLine();
} // end DisplayBoard

public static void ClearBoard(ref char[,] Board)
{
int Row;
int Column;

for (Row = 1; Row <= 4; Row++)
{
for (Column = 1; Column <= 4; Column++)
{
Board[Row, Column] = ' ';
}
}
} // end ClearBoard

public static void GetMoveCoordinates(ref int XCoordinate, ref int YCoordinate)
{
Console.Write("Enter x coordinate: ");
XCoordinate = int.Parse(Console.ReadLine());
Console.Write("Enter y coordinate: ");
YCoordinate = int.Parse(Console.ReadLine());
Console.WriteLine();
} // end of GetMoveCoordinates

public static bool CheckValidMove(int XCoordinate, int YCoordinate, char[,] Board)
{
bool ValidMove = true;

if (XCoordinate < 1 || XCoordinate > 4) // Check X coordinate is valid
ValidMove = false;
if (YCoordinate < 1 || YCoordinate > 4) // Check Y coordinate is valid
ValidMove = false;
if (Board[XCoordinate, YCoordinate] != char.Parse (" "))
ValidMove = false;
return ValidMove;
} // end CheckValidMove

public static bool CheckXOrOHasWon(char[,] Board)
{
bool XOrOHasWon;
int Row;
int Column;

XOrOHasWon = false;
for (Column = 1; Column <= 4; Column++)
{
if (Board[Column, 1] == Board[Column, 2]
&& Board[Column, 2] == Board[Column, 3]
&& Board[Column, 2] != ' ')
XOrOHasWon = true;
}
for (Row = 1; Row <= 4; Row++)
{
if (Board[1, Row] == Board[2, Row]
&& Board[2, Row] == Board[3, Row]
&& Board[2, Row] != ' ')
XOrOHasWon = true;
}

return XOrOHasWon;
} // end of CheckXOrOHasWon

public static char GetWhoStarts()
{
char WhoStarts;
Random objRandom = new Random();
int RandomNo = objRandom.Next(100);
if (RandomNo % 2 == 0)
WhoStarts = 'X';
else
WhoStarts = 'O';
return WhoStarts;
} // end of GetWhoStarts
}
}
namespace tic_tac_toe

.:: Wish to become better and better ::.

#6

اخووووووووووووووووووووي ما ظبط معايا :(

#7

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

اخي شغاله تمام, قم بادخال اسم اللاعب الاول ثم الثاني ثم رمز الاول طبعا Capital X او O من ثم حدد احداثي X وبعده Y وستستمر اللعبه

.:: Wish to become better and better ::.

#8

اخوي ادخلت الاسم

وبلعب بس اللعبة ما تنتهي وضح اكتر طريقة اللعب

#9

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

اخي جرب المشروع المرفق

ConsoleApplication1.zip

1

.:: Wish to become better and better ::.

#10

صصصصصصصصصصصصصصصصصصصصصصصصصصصصصصصصاح عليك

الله يوفقك ويسعدك يااااااااااااااااااااارب ويسهل طريقك وامورك

وربي بطل بطل يامبدع

#11

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

بالتوفيق اخي ...

1

.:: Wish to become better and better ::.

مواضيع مشابهة