Освой Android играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Карточная игра "Счастливая девятка"

6-й курс/Закрытая зона

Из описания к правилам игры "Дурак":

Ти ж мене підманула,
Ти ж мене підвела,

Манул

В далёком 2005 году я написал статью для журнала RSDN Тройка, семерка, туз о том, как использовать библиотеку Windows для создания карточной игры. К сожалению, в Android нет готовой библиотеки, поэтому будем создавать игру с нуля.

Создадим новый проект LuckyNine. Почему "девятка"? У кота девять жизней. Такое объяснение вас устроит?

Правила игры

Для игры используется стандартная колода из 52 карт. Игрок должен избавиться от своих карт во время игры.

Каждый игрок получает по семь карт, остальные карты остаются в колоде.

Первая карта колоды показывается открытой.

Каждый игрок по очереди должен сбросить свою карту, которая совпадает либо по масти, либо по достоинству.

Девятка любой масти позволяет выбрать новую масть для продолжения игры.

Если открыта Шестерка Треф, вы можете отказаться от любой шестёрки или от любой карты с мастью треф.

Вы можете использовать Девятку любой масти в любой момент и указать новую масть для продолжения игры.

Если у игрока нет подходящей карты, то берётся карта из колоды до тех пор, пока не появится подходящая карта.

Нам понадобится стартовая страница с кнопкой Старт, которая запустит вторую активность. Оформить стартовую активность мы можете самостоятельно, используя статьи Красивое меню для игры и Красивое оформление для игры. Назовём первую активность StartActivity вместо стандартного MainActivity и разместим на ней кнопку Старт. Придумайте сами оформление стартовой страницы.

Создадим вторую активность GameActivity, на которой будет происходить сама игра. С этой задачей вы тоже должны справиться без моей помощи.

Сделаем игру в альбомном режиме, поэтому в манифесте укажем, что вторая активность поддерживает только горизонтальную ориентацию.


<activity
    android:name="ru.alexanderklimov.luckynine.GameActivity"
    android:configChanges="keyboardHidden|orientation"
    android:label="@string/title_activity_game"
    android:screenOrientation="landscape" >
</activity>

У нас теперь есть две активности и нужно с первой активности переключиться на вторую при нажатии кнопки.


@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_start);
	
	Button startButton = findViewById(R.id.buttonStart);
	startButton.setOnClickListener(clickListener);
}

OnClickListener clickListener = new OnClickListener() {
	
	@Override
	public void onClick(View v) {
		Intent intent = new Intent(getApplicationContext(), 
		        GameActivity.class);    
		startActivity(intent);
	}
};

Проверяем. Запустим проект и через кнопку переходим на вторую активность. Если всё работает, то оставляем первую активность в покое. Она свою задачу выполнила.

Вы вошли на сайт, как гость.
Необходимо зарегистрироваться, чтобы прочитать статью

Выводим вторую колоду

Реклама