تمرین سری دوم
درس برنامه نویسی شئگرا
موعد ارسال :جمعه 91اسفند 9119
تٌْام حاتوی
توزیي سزی اٍل تزًاهِ ساسی ضیءگزا
هْلت تحَیل :جمعه 91اسفند 9119
نکات کلی
در ایي توزیي ضوا تزًاهِی اجزایی ًویًَیسیذ ٍ کاری کِ اًجام هیدّیذ ،پیادُساسی چٌذ کالس است.
هطخصات کلی سَال ایي توزیي تِ ایي ضزح است:
توزیي
نام کالس
نام فایل
نمره
توزیي 1
Othello
Othello.java
111
ّ ذف ایي توزیي ،آسهایص درک ضوا اس هفَْم ضئگزایی ٍ تکارگیزی ایي هفَْم در عول است .پس اس ایي
توزیي ضوا تایذ تزاحتی تتَاًیذ هذلّای سادُ جْاى ٍاقعی را تصَرت ضئگزایی هذل کٌیذ.
تزای ارسال توزیي تِ آدرس سیز هزاجعِ کٌیذ:
http://arsh.co/java902/
تَجِ ًواییذ کِ تایذ یک فایل .javaرا ارسال ًواییذ.
هَعذ تحَیل ساعت 16:5:رٍس جوعِ 1:اسفٌذ تَدُ ٍ تِ ّیچ عٌَاى توذیذ ًخَاّذ ضذ.
تأخیز تا 1ساعت ،تِ اسای ّز 3دقیقِ هَجة کسز ضذى ً %1وزُ ،اس 1ساعت تا 42ساعت هَجة کسز ضذى
ً %41وزُ ،اس 42ساعت تا 45ساعت ،تِ اسای ّز 4دقیقِ هَجة کسز ضذى ً %1وزُی دیگز ٍ تیي 45ساعت
تا 24ساعت تاعث کسز ضذى ً %51وزُ هیضَد .تأخیز تیطتز اس 24ساعت قاتل قثَل ًیست.
هَجْی تزای تأخیز ًیستٌذ .تٌاتزایي پیطٌْاد هیضَد جَابّای خَد را در دانشکده ارسال کٌیذ.
اس آًجایی کِ تصحیح تِ ضکل خَد کار اًجام ضَد در ًتیجِ عذم رعایت ًکات ظزیف هاًٌذ ًام هتذّا ٍ ...هَجة
اختالل در رًٍذ تصحیح (ٍ ًوزُ) خَاّذ ضذ.
تالش تزای استفادُ اس هٌاتع سیستن هاًٌذ کارت صذا ٍ پزیٌتز ٍ ًَضتي تِ فایل ٍ ...هٌجز تِ دریافت ًوزُی
صفز در ایي توزیي هیضَد.
توزیي سزی دٍم تزًاهِ ساسی ضیءگزا
قطع تَدى ایٌتزًت خَاتگاُ ،کٌذی پایگاُ ایٌتزًتی داًطکذُ ،توام ضذى کارت ایٌتزًت ٍ … ّیچکذام دلیل
1
کالسّا ٍ هتذّای گفتِ ضذُ در آىّا حذاقلّای السم ّستٌذ .یعٌی ضوا هیتَاًیذ تزای راحتتز ضذى پیادُ-
ساسیتاى یا ضئگزاتز ضذى کذتاى تِ ایي کالسّا هتذّای Privateدیگزی اضافِ کٌیذ یا تِ کل توزیي
کالسّای دیگزی اضافِ کٌیذٍ .لی دقت داضتِ تاضیذ کِ کالسّای گفتِ ضذُ ٍ هتذّای آًْا تایذ تِ ّویي
ضکل ،هَجَد تاضٌذ .تَجِ کٌیذ کِ توام هتغیزّای داخلی ضوا تایذ Privateتاضٌذ.
سَاالت خَد را در سایت piazzaهطزح کٌیذ.
ً حَُ تحَیل حضَری توزیي هتعاقثاً اعالم خَاّذ ضذ.
رعایت آداب ًَضتي تزًاهِ (اس جولِ گذاضتي کاهٌت هٌاسة ،اسنگذاری هٌاسةً )... ٍ indention ،وزُ خَاّذ
داضت.
تمرین:
تزای آضٌایی تیصتز تا تاسی Othelloکافی است تِ WikiPediaایي تاسی هزاجعِ کٌیذ.
ایي تاسی ،یک تاسی دٍ ًفزُ است .اتتذا تاسی تا یک صفحِ خالی کِ تٌْا 2خاًِی ٍسط آى پز است ضزٍع هیضَد.
ایي 2خاًِ تِ صَرت یک هزتع 4در ّ 4ستٌذ کِ دارای قطز اصلی " ٍ "Rقطز فزعی " "Bهیتاضذ .اتتذا ًَتت
تاسیکي قزهش استّ .ز تاسیکي در ًَتت خَد تٌْا در خاًِّایی هیتَاًذ هْزُی خَد را تگذارد ،کِ هْزُای ّنرًگ
خَد ّنسطزّ ،نستَى یا ّنقطز آى ٍجَد داضتِ تاضذ؛ ٍ ّوچٌیي فاصلِی تیي ایي هْزُ ٍ هْزُی ّنرًگ را فقط
هْزُّای حزیف پَضاًذُ تاضٌذ .تا گذاضتي چٌیي هْزُای توام هْزُّای حزیف هَجَد تیي دٍ هْزُی خَدی تِ
هْزُّای خَدی تثذیل هیضَد .در صَرتی کِ حزکتی تزای اًتخاب ٍجَد ًذاضتًَ ،تت تِ فزد هقاتل دادُ هیضَد ٍ
اگز ّیچ یک اس تاسیکٌاى حزکتی تزای اًتخاب ًذاضتِ تاضٌذ ،تاسی توام هیضَد.
در تاسی گفتِ ضذُ ضوا تایذ کالسّای سیز را پیادُساسی ًواییذ.
توزیي سزی دٍم تزًاهِ ساسی ضیءگزا
4
{class Game
;)public Game(int n
// create a new game with Board that have size n*n
;)(public String getTurn
;)"// return the type ("R" or "B
// game starts with "R" turn
;)public boolean play(int i, int j
// if the play is possible it returns true else false
// place the piece of type turn, in the (i, j) cell of the Board
public boolean isFinished();
// Say that game is finished or not
public int getScore(String type);
// return the number of board’s cell that is of argument type
// for example number of “B” or “R”
public Board getBoard();
// return Board of the Current Game
}
class Board{
public Board(int n);
// creating a Board that have size n*n
// n would be always even
// for initialization of the board see the wiki of the Othello game
public Board();
// creating a Board that have size 8*8
public boolean setCell(int i, int j, String type);
// 0,0 is the top, left cell
// this function would set type of the piece on the (i, j) place of the board
// if cell[i][j] isn't empty the operation isn't possible
// if the operation isn't possible this function would return false, else it would return true
public boolean changeCell(int i, int j, String type);
// this function would change type of the piece on the (i, j) place of the board
// if cell[i][j] is empty the operation isn't possible
// if the operation isn't possible this function would return false, else it would return true
توزیي سزی دٍم تزًاهِ ساسی ضیءگزا
public int[][] getPossibleChoices(String type);
// return place of available choices, if it's type turn
3
public String toString();
// this function show the board in String format
// for each row we have one row in output string that contains toString of pieces of
// that row which separated with a space
// for example if n = 4 the output would be something like this:
// "R E B E \nB E E B \nR E E B \nE E E E \n"
};
class Piece{
public Piece();
// make an empty Piece
public void setType(string type);
// set the type of the string
// possible type: "R", "E", "B"
public String toString();
// get the type of the Piece
};
توزیي سزی دٍم تزًاهِ ساسی ضیءگزا
هَفق تاضیذ
2
© Copyright 2026 Paperzz