Курсов проект № 1 по “Интернет програмиране с Java”
1.2. Игра ”Крави и бикове”
Автор: Лъчезар Цеков
Версия: 0.9
Последна промяна: 21.03.2004
Да се напише програма на Java, която използвайки възможностите на пакета java.net реализира играта „Крави и Бикове” под формата на сървър, обслужващ клиентите си по протокол TCP. Не е необходимо да се разработва клиентско приложение, защото като клиент може да се използва стандартен telnet.
Сървърът трябва да дава възможност за играене на неограничен брой игри по едно и също време. При свързване на клиент със сървъра клиентът изпраща на сървъра името на играча, което се въвежда от конзолата.След като получи името на играча сървърът го добавя в списък с играчите, които желаят да играят. Сървърът връща на клиента списък с всички играчи които не играят в момента но са свързани към сървъра. Клиентът има възможност да стартира игра с някой от свързаните към сървъра играчи, които не играят в момента и са в списъка на чакащите или да изчака някои от останалите играчи да започне игра с него. Пример:
клиент:
|
(стартираме на клиента с име на потребител Lucho)
|
сървър:
|
Free Players:
0)(wait for another player to choose you)
1)Krasi
2)Niki
3)Nakov
4)Boris
5)Dimityr
Choose player:
|
След стартиране на клиента и получаване на списъка със свободните играчи следва избор на играч. Той се извършва чрез въвеждане на номера на играча в конзолата на клиента .
Сървърът стартира игра, която включва двамата играчи. Играчът, който е бил избран, получава нотификация за това от сървъра. На конзолата на избрания играч се показва:
След избора на играч сървърът стартира игра и известява играчите да въведат четири различни цифри. Известяването се появява дотогава докато се въведат точно четири различни цифри. Двамата играча по едно и също време въвеждат своите цифри, без да се изчакват в някаква последователност.
сървър:
|
Please insert your number:
|
клиент:
|
1234
|
сървър:
|
Please make your guess:
|
Сървърът запаметява цифрите на всеки играч.
След като и двамата играча са въвели своите цифри играта започва. Пръв дава своето предположение играчът които е бил избран от списъка на чакащите играчи - в случая Niki.
сървър:
|
Please make your guess:
|
клиент:
(Niki)
|
2345
|
сървър:
|
Your guess: 2345 --> 1c0b Lucho’s guess: 3456 --> 2c1b
Please make your next guess:
|
След като сървърът получи предположението на съответния играч, сравнява предположението с цифрите на противника и връща резултата на играча (брой крави и брой бикове). Играчът чака докато противникът му даде предположение и отново дойде неговият ред. Предположението на противника и резултата от него се визуализират по подходящ начин, например в дясната страна на същия ред, на който е било предположението на играча. Играчите се редуват докато един от тях познае правилната комбинация от цифри на противника. За игра от двама играчи Lucho и Niki конзолите могат да изглеждат примерно по този начин:
Niki:
Free Players:
0)(wait for another player to choose you)
1)Krasi
2)Nakov
3)Boris
4)Dimityr
Choose player: 0
Lucho vs Niki Game started
Please insert your number: 9876
Please make your guess: 1892 1c1b Lucho’s Guess: 3456 0c1b
Please make your guess: 7654 0c1b Lucho’s Guess: 2347 1c0b
Please make your guess: 1234 0c4b
Game end. You win!
|
Lucho:
Free Players:
0)(wait for another player to choose you)
1)Krasi
2)Niki
3)Nakov
4)Boris
5)Dimityr
Choose player: 2
Lucho vs Niki Game started
Please insert your number: 1234 Niki’s Guess: 1892 1c1b
Please make your guess: 3456 --> 0c1b Niki’s Guess: 7654 --> 0c1b
Please make your guess: 2347 --> 1c0b Niki’s Guess: 1234 --> 0c4b
Game end. Winner - Niki
|
При всеки ход от играта всеки играч дава своето предположение, вижда резултата от сравнението предоставен от сървъра и изчаква противника си да даде неговото предположение, след което играе следващия си ход.
Сподели с приятели: |