ইয়াহটজি গেমটিতে খেলোয়াড়রা ঘুরে ঘুরে ঘুরে ঘুরে 6 টি তরফা পাশা প্রতি বারে তিনবার করে, সম্ভবত রোলগুলির মধ্যে ডাইস সাশ্রয় করে এবং তারপরে তারা তাদের রোলটির জন্য যে বিভাগটি ব্যবহার করতে চান তা নির্বাচন করে। আর কোনও বিভাগ না হওয়া অবধি এটি অব্যাহত থাকে (যা 13 টির পরে ঘটে)। তারপরে, খেলোয়াড়দের স্কোর দীর্ঘায়িত হয় এবং প্লেয়ার সর্বোচ্চ স্কোর জিততে পারে।
বিভাগগুলি নিম্নরূপ:
- আপার সেকশন
- টেক্কা : 1 পিপ দেখানো পাশের সমষ্টি
- দ্বাদশ : 2 পিপ দেখানো পাশের সমষ্টি
- ত্রয়ী : 3 পিপস দেখানো পাশার সমষ্টি
- চার : পাশা এর সমষ্টি 4 পিপস দেখাচ্ছে
- পাঁচটি: পাইস যোগফল 5 পিপস দেখায়
- ছক্কা : 6 পাইপ দেখানো পাশার সমষ্টি
- লোয়ার সেকশন
- এক ধরণের তিনটি : একই মান সহ 3 ডাইস, স্কোর সমস্ত ডাইসের সমষ্টি
- এক ধরণের চারটি : একই মান সহ 4 ডাইস, স্কোর হ'ল সমস্ত পাশ্বের যোগফল
- ফুল হাউস : একটি মান সহ 3 পাশা এবং অন্যের সাথে 2, স্কোর 25
- ছোট সোজা : 4 অনুক্রমিক পাশা, স্কোর 30
- বড় সোজা : 5 অনুক্রমিক পাশা, স্কোর 40
- ইয়াহ্তজি : একই মান সহ সমস্ত 5 ডাইস, স্কোর 50
- সম্ভাবনা : পাশা যে কোনও সংমিশ্রণ, স্কোর সমস্ত পাশা যোগফল
বিভাগের পছন্দগুলি সম্পর্কে কয়েকটি নিয়ম রয়েছে:
- যদি কোনও খেলোয়াড় কোনও বিভাগ নির্বাচন করে যা তাদের রোলের সাথে মেলে না, তবে তারা এই বিভাগের জন্য 0 এর একটি স্কোর পাবে।
- যদি কোনও খেলোয়াড় উপরের অংশে কমপক্ষে 63৩ স্কোর অর্জন করে তবে তারা 35 বোনাস পয়েন্ট পান।
- যদি কোনও খেলোয়াড় কোনও ইয়াহ্তজি ঘূর্ণিত করে তবে ইয়াহ্তজি বিভাগটি ইতিমধ্যে নেওয়া হয় (অন্য ইয়াহ্তজি দ্বারা - একটি মিসের জন্য 0 পূরণ করা হয় না), তারা 100 পয়েন্টের বোনাস পান। এই বোনাসটি প্রথম ইয়াহতজির জন্য প্রথম দেওয়া হয়।
- অতিরিক্তভাবে, খেলোয়াড়কে এখনও একটি বিভাগ পূরণ করতে বেছে নিতে হবে। তাদের অবশ্যই তাদের রোল অনুসারে উপরের বিভাগের বিভাগটি বেছে নিতে হবে (উদাহরণস্বরূপ 5 6 এর রোলটি সিক্সস বিভাগে স্থাপন করা উচিত)। সংশ্লিষ্ট উচ্চতর বিভাগ বিভাগটি ইতিমধ্যে ব্যবহার করা থাকলে, ইয়াহটজি একটি নিম্ন বিভাগের বিভাগের জন্য ব্যবহার করা যেতে পারে (এক্ষেত্রে ফুল হাউস, ছোট স্ট্রেইট বা বড় স্ট্রেইট পুরষ্কারগুলি 0 এর চেয়ে সাধারণ পরিমাণের পয়েন্টগুলি বেছে নেওয়া)। নীচের বিভাগের সমস্ত বিভাগ যদি নেওয়া হয়, তবে ইয়াহটজি 0 টি স্কোর সহ একটি অব্যবহৃত উপরের বিভাগে প্রয়োগ করা যেতে পারে।
চ্যালেঞ্জ
এই চ্যালেঞ্জের মধ্যে, প্রতিযোগীরা ইয়াহটজির 1000 গেম খেলবে। প্রতিটি গেমের শেষে, জমা (গুলি) যে সর্বাধিক রান করেছে তারা 1 পয়েন্ট পাবে। সমস্ত গেম শেষ হওয়ার পরে, সর্বাধিক পয়েন্ট সহ জমাটি জিতবে। যদি কোনও টাই থাকে, তবে টাইটি ভাঙা না হওয়া পর্যন্ত অতিরিক্ত গেমগুলি কেবল আবদ্ধ জমা দিয়ে জমা হবে।
নিয়ামক
এই গিটহাব সংগ্রহস্থলে সম্পূর্ণ নিয়ামক কোডটি পাওয়া যাবে । এখানে এমন সর্বজনীন ইন্টারফেস রয়েছে যার সাথে খেলোয়াড়রা ইন্টারঅ্যাক্ট করবে:
public interface ScorecardInterface {
// returns an array of unused categories
Category[] getFreeCategories();
// returns the current total score
int getScore();
// returns the current Yahtzee bonus
int getYahtzeeBonus();
// returns the current Upper Section bonus
int getUpperBonus();
// returns the current Upper Section total
int getUpperScore();
}
public interface ControllerInterface {
// returns the player's scorecard (cloned copy, so don't try any funny business)
ScorecardInterface getScoreCard(Player p);
// returns the current scores for all players, in no particular order
// this allows players to compare themselves with the competition,
// without allowing them to know exactly who has what score (besides their own score),
// which (hopefully) eliminates any avenues for collusion or sabotage
int[] getScores();
}
public enum Category {
ACES,
TWOS,
THREES,
FOURS,
FIVES,
SIXES,
THREE_OF_A_KIND,
FOUR_OF_A_KIND,
FULL_HOUSE,
SMALL_STRAIGHT,
LARGE_STRAIGHT,
YAHTZEE,
CHANCE;
// determines if the category is part of the upper section
public boolean isUpper() {
// implementation
}
// determines if the category is part of the lower section
public boolean isLower() {
// implementation
}
// determines if a given set of dice fits for the category
public boolean matches(int[] dice) {
// implementation
}
// calculates the score of a set of dice for the category
public int getScore(int[] dice) {
// implementation
}
// returns all categories that fit the given dice
public static Category[] getMatchingCategories(int[] dice) {
// implementation
}
}
public class TurnChoice {
// save the dice with the specified indexes (0-4 inclusive)
public TurnChoice(int[] diceIndexes) {
// implementation
}
// use the current dice for specified category
public TurnChoice(Category categoryChosen) {
// implementation
}
}
public abstract class Player {
protected ControllerInterface game;
public Player(ControllerInterface game) {
this.game = game;
}
public String getName() {
return this.getClass().getSimpleName();
}
// to be implemented by players
// dice is the current roll (an array of 5 integers in 1-6 inclusive)
// stage is the current roll stage in the turn (0-2 inclusive)
public abstract TurnChoice turn(int[] dice, int stage);
}
অতিরিক্তভাবে, এখানে কিছু ইউটিলিটি পদ্ধতি রয়েছে Util.java
। তারা নিয়ামক কোডটি সরল করতে মূলত সেখানে রয়েছে, তবে তারা ইচ্ছা করলে প্লেয়াররা তাদের ব্যবহার করতে পারে।
বিধি
- খেলোয়াড়দের
Scorecard.getScores
সমস্ত খেলোয়াড়ের বর্তমান স্কোর দেখতে পদ্ধতিটি বাদ দিয়ে কোনওভাবেই ইন্টারঅ্যাক্ট করার অনুমতি নেই । এর মধ্যে অন্যান্য খেলোয়াড়দের সাথে জড়িত হওয়া বা জনসাধারণের ইন্টারফেসের অংশ নয় এমন সিস্টেমের অংশগুলিকে ম্যানিপুলেট করার মাধ্যমে অন্যান্য খেলোয়াড়দের নাশকতা অন্তর্ভুক্ত রয়েছে। - কোনও খেলোয়াড় যদি অবৈধ পদক্ষেপ নেয়, তাদের টুর্নামেন্টে অংশ নিতে দেওয়া হবে না। টুর্নামেন্ট পরিচালনার আগে যে কোনও সমস্যা অবৈধ পদক্ষেপের কারণ হতে হবে তা সমাধান করা উচিত।
- টুর্নামেন্টটি চালানোর পরে যদি অতিরিক্ত জমা দেওয়া হয় তবে নতুন জমা দেওয়া (গুলি) নিয়ে একটি নতুন টুর্নামেন্ট পরিচালিত হবে এবং সেই অনুসারে বিজয়ী জমাটি আপডেট করা হবে। তবে, নতুন টুর্নামেন্টটি চালানোর ক্ষেত্রে আমি তাত্ক্ষণিকতার কোনও গ্যারান্টি রাখি না।
- জমাগুলি কন্ট্রোলার কোডের কোনও বাগ ব্যবহার করতে পারে না যার ফলে এটি আসল গেমের বিধি থেকে বিচ্যুত হয়। আমার কাছে বাগগুলি চিহ্নিত করুন (একটি মন্তব্যে এবং / অথবা একটি গিটহাব ইস্যুতে) এবং আমি সেগুলি ঠিক করব।
- জাভার প্রতিবিম্ব সরঞ্জামগুলির ব্যবহার নিষিদ্ধ।
- JVM- তে চলমান বা জাভা বা জেভিএম বাইটকোড (যেমন স্কেলা বা জাইথন) তে সংকলন করা যায় এমন কোনও ভাষা ব্যবহার করা যেতে পারে, যতক্ষণ না আপনি জাভা দিয়ে ইন্টারফেস করার জন্য প্রয়োজনীয় কোনও অতিরিক্ত কোড সরবরাহ করেন।
চূড়ান্ত মন্তব্য
যদি কোনও ইউটিলিটি পদ্ধতি থাকে তবে আপনি আমাকে কন্ট্রোলারে যুক্ত করতে চান, কেবল মন্তব্যগুলিতে জিজ্ঞাসা করুন এবং / অথবা গিটহাবের উপর একটি সমস্যা তৈরি করুন, এবং আমি এটি যুক্ত করব, ধরে নিই যে এটি নিয়ম ভাঙ্গার অনুমতি দেয় না বা তথ্য প্রকাশ করতে দেয় না কোন খেলোয়াড় গোপনীয় নয়। আপনি যদি এটি নিজে লিখতে চান এবং গিটহাবের উপর একটি টান অনুরোধ তৈরি করতে চান, আরও ভাল!
ACES
? মানেONES
? এগুলি পাশা, কার্ড নয়।