Skocz do zawartości
Zamknięcie Forum PC LAB

Szanowny Użytkowniku,

Informujemy, że za 30 dni tj. 30 listopada 2024 r. serwis internetowy Forum PC LAB zostanie zamknięty.

Administrator Serwisu Forum PC LAB - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie: wypowiada całość usług Serwisu Forum PC LAB z zachowaniem miesięcznego okresu wypowiedzenia.

Administrator Serwisu Forum PC LAB informuje, że:

  1. Z dniem 29 listopada 2024 r. zakończy się świadczenie wszystkich usług Serwisu Forum PC LAB. Ważną przyczyną uzasadniającą wypowiedzenie jest zamknięcie Serwisu Forum PC LAB
  2. Dotychczas zamowione przez Użytkownika usługi Serwisu Forum PC LAB będą świadczone w okresie wypowiedzenia tj. do dnia 29 listopada 2024 r.
  3. Po ogłoszeniu zamknięcia Serwisu Forum od dnia 30 października 2024 r. zakładanie nowych kont w serwisie Forum PC LAB nie będzie możliwe
  4. Wraz z zamknięciem Serwisu Forum PC LAB, tj. dnia 29 listopada 2024 r. nie będzie już dostępny katalog treści Forum PC LAB. Do tego czasu Użytkownicy Forum PC LAB mają dostęp do swoich treści w zakładce "Profil", gdzie mają możliwość ich skopiowania lub archiwizowania w formie screenshotów.
  5. Administrator danych osobowych Użytkowników - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie zapewnia realizację praw podmiotów danych osobowych przez cały okres świadczenia usług Serwisu Forum PC LAB. Szczegółowe informacje znajdziesz w Polityce Prywatności

Administrator informuje, iż wraz z zamknięciem Serwisu Forum PC LAB, dane osobowe Użytkowników Serwisu Forum PC LAB zostaną trwale usunięte ze względu na brak podstawy ich dalszego przetwarzania. Proces trwałego usuwania danych z kopii zapasowych może przekroczyć termin zamknięcia Forum PC LAB o kilka miesięcy. Wyjątek może stanowić przetwarzanie danych użytkownika do czasu zakończenia toczących się postepowań.

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

kostek13_88

[C]Snake...

Rekomendowane odpowiedzi

potrzebuję kodu gry snake w czystym c, najlepiej bez struktur... wężyk nie musi wię wydłużać może mieć stałądługość np. 5, musi być uwzględnione to żeby się nie dotknął... najlepiej pod kompilator borlandc 3.1... nie mam zielonego pojęcia jak się do tego zabrać :/ proszę więc Was o pomoc...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Tworzysz tablicę o rozmiarze odpowiadającym rozmiarom planszy, dodatkowo pamiętasz położenie końca, początku i kierunek ruchu.

W tablicy np. 0 to puste pola 1 to wąż itd.

Jak początek będzie chciał wejść na pole z wartością 1 to masz kolizję.

 

Być może da się to uprościć - nie zastanawiałem się dokładnie nad problemem.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Plansza gry - to tablica, dwuwymiarowa. Wartości w tablicy to głowa węża, elementy jego ciała, "bonusy".

Wąż ma jakąś prędkość poziomą, np vx, oraz pionową, np. vy. Przyjmują one wartości -1, 0, 1 - zmieniają sie w zależności od wciśniętego klawisza strzałki. wszystko działa w pętli, każdy obieg pętli to zmiana indeksów tablicy zgodnie z watrościami vx i vy.\

No i oczywiście to wszystko trzeba wyświetlić :E

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

no właśnie:/ jeszcze trzeba napisać to przesuwanie w boki żeby reszta węża przed zakrętem szedł dlaej prosto i diopiero wtedy skręcił :/

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Kiedyś zrobiłem programik gdzie 2 kreski latały po ekranie. Na początku były jasne i stopniowo ciemniały na końcach.

 

Zrobiłem to tak, że początek miał np. wartość 10 i tylko to dopisywałem w tablicy. Za każdym obejsciem pętli, sprawdzałem wartości w tablicy i gdzie było coś większego od 0 to zmniejszałem wartość, aż doszło do 0 i się nic nie wyswietlało.

 

Możesz dla węża zarezerwować np. wartości od 1 do 1000 (nie wiem jak dużą planszę masz), a inne na ściany, bonusy.

 

Jak coś zjesz to zwiększasz wartość jaką dopisujesz na początku, dopisujesz ją i nie zmniejszasz wartości w tym obejsciu pętli.

 

Mam nadzieję, że w miarę zrozumiale to napisałem.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
no właśnie:/ jeszcze trzeba napisać to przesuwanie w boki żeby reszta węża przed zakrętem szedł dlaej prosto i diopiero wtedy skręcił :/

Pobaw się trochę w 13h/bgi a rozwiązanie samo przyjdzie do głowy ;) Oczywiscie bedziesz mial wieksza satysfakcje ze sam przez to przebrnales, a nie ktos podal ci na tacy gotowe rozwiazanie ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
ale ja to musze zrobić w zwykłej konsoli :P

Yyyy ok, to podejdz do tego tak masz 80 kolumn i 25 wierszy (chyba).

Wspolrzedne lewego gornego rogu to 0,0, albo 1,1, ale to jest mniej wazne.

Ogolnie to ma byc tak w glownej petli:

1)Sprawdzasz czy wcisnieto jakies klawisze jezeli tak to modyfikujesz costam

jezeli nie to nic

2)Odswiezasz ekran ze zmodyfikowanymi lub nie danymi (czyscisz+rysujesz jeszcze raz od nowa wszystko).

 

Inni juz ci podali wiecej szczegolow.

Nie pisalem nigdy weza, ale w sumie z kazda klatka musisz go przesuwac o 1 znak w ktoras ze stron. Ja zrobil bym tak ze mialbym plansze jakas jako tablice 2 wymiarowa, jezeli waz moze sie poruszac to sa w niej 0 na brzegach sa 1 i teraz sprawdzasz wspolrzedne glowy czy jest na 0 jezeli na 0 to przesuwasz dalej jezeli na 1 to game over, jezeli skrecasz weza to po prostu zabierasz jeden kawalek z konca i rysujesz w pozycji poziomej jezeli byl pionowy + kierunek.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

ew. malujesz glowe snejka, oraz w miejscu gdzie byl ogon wstawiasz spacje, dwa punkty zamiast 80x25

 

poza tym trzeba uwazac na punkt 80,25 ; niektore rozwiazania (mimo, ze powinny wstawic pojedynczy znak) powoduja, ze zawartosc ekranu przesuwa sie o jedna linie (scroll)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

I pomyśl nad opóźnieniem innym niż sleep();

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
poza tym trzeba uwazac na punkt 80,25 ; niektore rozwiazania (mimo, ze powinny wstawic pojedynczy znak) powoduja, ze zawartosc ekranu przesuwa sie o jedna linie (scroll)

Nie musi robic planszy na caly ekran ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

naucz sie chociaz struktur - bedzie Ci latwiej zapanowac za kazdym "modulem" Twojego snejka ;) To nie musi byc trudne - wystarcza na poczatek dwie zmienne, np. vx, vy...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dorzuce swoje 3 grosze.

Kiedys wpadlem na pomysl, aby punkty bedace bonusami, bombami i cialem weza trzymac na trzech listach.

 

Ulatwia to pisanie programu i przyspiesza jego dzialanie poniewaz jesli segmety weza sa zapisane na liscie to:

-mamy szybki dostemp do pierwszego elementu (glowy)

-mamy szybki dostep do ostatniego elementu (ogona)

 

Czyli mamy szybki dostep do elementow ktorymi czesto manipulujemy ...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Dorzuce swoje 3 grosze.

Kiedys wpadlem na pomysl, aby punkty bedace bonusami, bombami i cialem weza trzymac na trzech listach.

 

Ulatwia to pisanie programu i przyspiesza jego dzialanie poniewaz jesli segmety weza sa zapisane na liscie to:

-mamy szybki dostemp do pierwszego elementu (glowy)

-mamy szybki dostep do ostatniego elementu (ogona)

 

Czyli mamy szybki dostep do elementow ktorymi czesto manipulujemy ...

:thumbup: Ale nie trzeba moim zdaniem az listy, wystarczy tablica, latwo policzyc maksymalna dlugosc weza, i mozna potem tylko jakos sprytnie manipulowac indeksami.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zgadzam sie. List nie trzeba urzywac. Ale moga one ulatwic wykonywanie niektorych zadan. Kiedys pisalem troche bardziej rozbudowanego "Snajka" (c++, Winapi) i doszedlem do wniosku, ze np do wykonania zadania:

"Co 10 sekund zmieniamy polozenie 25% bomb, zaczynajac od tych ktore przez najdluzszy czas nie byly przemieszczane"

 

Najlepiej jest wykorzystac listy...

 

Ale aby sie dowiedziec czy przed wezem znajduje sie jedzenie/bomba korzystam z tablicy - wystarczy sprawdzic co jest zapisane pod odpowiednim indeksem.

 

Pozdrawiam

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Zgadzam sie. List nie trzeba urzywac. Ale moga one ulatwic wykonywanie niektorych zadan.

Trzeba po prostu wiedziec kiedy bardziej oplaca sie uzyc listy a kiedy bardziej tablicy, a kiedy jeszcze czegos innego.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

jak nie lubisz struktur, to albo naucz sie porzadnie z nich korzystac-zobaczysz co dzieki temu zyskujesz- albo sobie odpusc programowanie. Taka moja rada...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

no niech Ci będzie ale i tak wolę napisać listę sąsiedztwa na 3 tablicach niż na wskaźnikach i strukturach... mieliśmy w szkole na infę zrobić bibliotekę w werski relacyjnej.... tam tylko struktury wchodzą w grę...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
mój kolega napisał kiedyś snake'a w pascalu dla innego kolegi... przetłumaczyłby mi to ktoś na c i przy okazji powyrzucał zbędne shity typu autor, poziom trudności... to ma być najprostszy snake... na pascalu się wogóle nie znam........

http://m.boo.pl/download/pliki/11/jacek3.pas

A po co to potrzebujesz?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ja kiedyś napisałem snake w c, jak byś jeszcze potrzebował to odezwij się na gg

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

  • Tematy

  • Odpowiedzi

    • Cześć all Znajomy chce złożyć nowego kompa Prosiłbym coś doradzić na temat tego zestawu  Przedział to 5500-6000zł wraz z monitorem  MSI B550-A PRO AMD Ryzen 5 5600X Cooler Master MWE GOLD-V2. 750W 80 Plus Gold Kingston FURY 32GB (2x16GB) 3200MHz CL16 Beast Black Genesis IRID 505F Gigabyte GeForce RTX 4060 Ti Eagle 8G GDDR6 Silver Monkey X STORMY 120mm Lexar 1TB M.2 PCle Gen4 NVMe NQ790 BenQ ZOWIE XL254OK czarny https://ibb.co/3WRkpmk ( zdjęcie zestawu )
    • Siedem to jeszcze niedużo. Są osoby, które mają na przykład ponad setkę latarek. Ja zgromadziłem tylko kilkanaście.
    • Siedem multimetrów.... okeeejjjjjjjjjjjj........ https://i.giphy.com/HoCPpVFKfvK5HRugp3.webp
    • Hmmmm, tak się zastanawiałem jaki ja mam fetysz i opanować się nie mogę. Wyszło na to, że to multimetry. Mam ich chyba z siedem nie licząc zabawek z biedry. Jak nie mam już co mierzyć to biorę sondy w łapę i straszę dzieciaki uważające, że w domu to tylko ojciec jest dziadersem. Dziadersem, który nie rozumie współczesnej młodzieży.  No, kuźwa... nie rozumiem i tyle. 
    • Weź sprzedaj tego Phenoma i kup FX 8300  Będzie na pewno sporo lepiej, a teraz ludzie chcą za te procki grosze. W dodatku na Twojej płycie na spokojnie go podkręcisz wyżej niż na 4GHz, nawet przy chłodzeniu pokroju Spartana Pro - a zegar to właściwie jedyna przewaga wyższych modeli nad tym.  P.S. Normalnie nikomu w życiu nie proponowałbym FX'a, ale skoro chłop zaszalał na tyle by kupić 32GB RAM'u i ma jedną z lepszych płyt to co ma do stracenia  Jakiś czas temu widziałem 8300 z Spartanem 3 Pro ARGB za 7 dych, jak poszuka to sam procek za 50/60 upoluje, a na Phenoma może za te 40 zł znajdzie jelenia Co do NVMe w razie czego służę pomocą, modułami w UEFI bawiłem się już nie raz.
  • Aktywni użytkownicy

×
×
  • Dodaj nową pozycję...