Konsolowy Snake

3

To mój pierwszy i raczej ostatni Snake.

Są jabłka zielone jak i czerwone. Nie które z nich też są robaczywe co powoduje utratę określonej ilości punktów i oderwanie jednego członu.

Sterowanie strzałki, zmiana poziomu trudności klawisze 1,2,3:
1:Easy - bez przeszkód.
2:Normal - Czasami pojawią się przeszkody i wężyk ma większego speeda.
3:Hard - Przeszkody + większa prędkość niż na normalnym poziomie.

Niestety nie ma ani pauzy ani zapisu. Może zostanie dodane później.
Generalnie gra się kończy gdy ekran będzie już tak zawalony przez przeszkody, że wężykiem nie będzie można się poruszać ;)

Muzyka dużo zajmuję.

PS: paczka .7zip waży 8mb a przy dodawaniu załącznika wywala, że przekroczony rozmiar(gdzie te 20mb?:D) ale to i tak dobrze bo ostatnio wcale .7zipów nie chciało ładować;)

http://www.sendspace.pl/file/d5e36670f0a52cb445fb1e9

0

Fajne ale popraw losowanie bo raz są tylko czerwone @ a raz tylko zielone. Poza tym nie działa strzałka w lewo zaraz po starcie gry, jak klikniemy np. góra a potem lewo to już działa.

0

Strzałka w lewo nie działa na początku ponieważ początkowy kierunek węża jest w prawo więc po wciśnięciu lewej strzałki miałby przejść przez siebie?
Jest sprawdzanie kolizji głowy z resztą ciała.

Szansa na dany kolor to 50% więc po iluś jabłkach musi ci się trafić inny kolor ;)
Czy w ogóle ciągle zielone lub czerwone do restartu gry?

0
nerf napisał(a):

Szansa na dany kolor to 50% więc po iluś jabłkach musi ci się trafić inny kolor ;)

Nie musi :) Chyba, ze dales warunek, ze przy x czerwonych pod rząd musi byc inny kolor, inaczej, jezeli są losowane z prawdopodobieństwem 50% na każdy to przy skrajnym wypadku będzie non stop jeden kolor :)

0

Chwilę pograłem. Kilka razy zdarzyło mi się zginąć po wjechaniu w jabłko(?). Możliwe jest, że pojawia się na wężu przeszkoda, lub pod jabłkiem? Jabłko nie było blisko ściany ani nic.

0

hard.png
Jestem hardkorem! Ktoś mnie przebije? Hehe. Zaraz potem się rozwaliłem o ścianę heh...

fff.png
Easy się nie chwalę bo tam mi jakoś nie idzie... :|
Btw to ten Game Over to jakiś nie fair bo o nic się nie rozbiłem...

1

Nie wiem czemu ale nie mogę edytować 1 posta.

Nowa wersja -> http://www.sendspace.pl/file/e8101a8b44cddab93cbc0ec

  • Nie powinno już tworzyć zielonych przeszkód z członów węża.
  • 2 człony + głowa na początek = nie umieramy na 1 zatrutym jabłku ;p
  • Przerobione trochę rysowanie. Widać kiedy uderza w przeszkodę, ścianę i obszar wyłączony z ruchu;d
  • Nowa gra po przegranej. Nie trzeba odpalać na nowo.
0

ddd.png
really, wtf?
Tam nic nie było! No i wcale się nie uruchamia sam potem. Przynajmniej u mnie.

#Edit:
jj.png
Ale na serio. Nic tam nie było. Specjalnie sprawdziłem drugi raz. Ale za to tym razem restartuje się sama :-). Popracuj jeszcze. Jak na razie idzie Ci dobrze.
Ale co to za poprawki, które nie dają nowych błędów hmm?:)

0

motyw z zatrutymi jabłkami jest głupi
nie widać które jabłko jest zatrute
nie ma innych jabłek do wyboru
gracz nie ma innej opcji jak zjeść to jabłko

innymi słowy - nieuchronnie karasz gracza za nic, tylko za to że gra
skoro chcesz zmniejszyć liczbę punktów to po prostu dawaj ich mniej, jeśli nie chcesz żeby wąż za szybko się rozrastał to nie powiększaj go za każdym razem

skąd wziąłeś muzykę i dźwięki?

4

A tam, co wy wiecie o graniu w snake :P

aaa.png

0
  • Widać kiedy jabłko zatrute.
  • Jabłka pojawiają się co 8, 6 i 4 sekundy zależnie od levelu.
  • Można się już poruszać przy prawej krawędzi ;d

Dalej są losowe zgony i zielone,białe przeszkody.
Release.7z

0

co do kodu - zamiast robić pętle po wszystkich elementach żeby sprawdzić czy punkt koliduje z wężem dodaj to klasy Position własną metodę porównującą Equals i będziesz mógł zastąpić kod:

	List<Position> snakePos = this.snakeElements.ToList<Position>();
	for (int i = 0; i < snakePos.Count - 1; i++)
	{
		if (Col == snakePos[i].Column && Row == snakePos[i].Row)
		{
			return true;
		}
	}
	return false;

tym:

return snakeElements.Contains(pozycja);

skoro już tworzysz typ Position to mógłbyś przeładować też operator +, a zamiast określać kierunek cyfrą zrobić wektor kierunku (0, 1) / (1, 0), (-1, 0) / (0, -1)

po tych zmianach kod:

this.snakeElements.RemoveFirst();
	this.snakeElements.AddLast(new Position(Convert.ToSByte((int)(this.snakeElements.Last.Value.Column + this.directions[(int)this.direction].Column)), Convert.ToSByte((int)(this.snakeElements.Last.Value.Row + this.directions[(int)this.direction].Row))));

możnaby zastąpić:

snakeElements.RemoveFirst();
snakeElements.AddLast(snakeElements.Last() + wektorKierunku);

poza tym wydaje mi się że kolejka FIFO (Queue) będzie tutaj lepsza niż LinkedList

no i robisz pętle dopóki user wciska spację
każdy inny klawisz wychodzi z gry - moim zdaniem powinieneś ignorować wszystkie klawisze poza spacją i escape które powinno wychodzić z gry bo teraz nawet się nie pojawia komunikat żeby nacisnąć tę spację ;)

i angielski trochę kuleje ;) "isPoisioned", "isEated", "SomethinkOnSnakePosition" (??)

0

Czyli rozumiem że jeżeli pojawi się jedno czerwone jabłko, to gracz musi je zjeść? Bo nie pojawi się inne? W takim wypadku mistrz gry w snake może odpaść z gry bo pojawiły się pod rząd na początku gry, powiedzmy 3/4 (trzy cztery, nie trzy czwarte) jabłka, mimo że nie zrobił żadnego błędu. Nie podoba mi się taka idea gry.

1

Postanowiłem, że napiszę jeszcze raz to w pewnymi zmianami i udoskonaleniami i tak by działało na kompach w mojej szkole(jeszcze 2 lata tam w coś trzeba grać na zawodowych przedmiotach;d )
Tak więc jeśli jest możliwość to prosił bym o usunięcie tematu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1