GithubHelp home page GithubHelp logo

zayebeast / labirynt Goto Github PK

View Code? Open in Web Editor NEW
1.0 4.0 3.0 291 KB

The simple maze game written in C++ It's a demonstration of git using in a group. There's everything in the Polish language there.

License: MIT License

C++ 91.61% Shell 2.23% C 6.16%
labirynt maze cpp cxx cpp98-compatible

labirynt's People

Contributors

crackhoff avatar gummybear45 avatar igorbia avatar mrdarkness19 avatar nircek avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

labirynt's Issues

Uniwersalne menu

@GummyBear45 zaproponował stworzenie kalibracji przycisków strzałek. Do tego przydałoby się zrobić jakieś ładne menu, ale żeby nie robić do każdej rzeczy osobnego przydałoby się zrobić jedno uniwersalne, które możnaby używać w zależności od sytuacji. Przyda się to także przy rozwiązywaniu #40, bo tam będzie do wyboru jaką metodą użytkownik chce kolorować poszczególne rzeczy.

Ikona

Przydałoby się dodać jakąś ikonę do naszego wynikowego programu, bo to jakoś biednie wygląda... Proponuję też zawierać tam info o wersji, autorach itd. Samym dodawaniem tg do pliku wynikowego mogę się zająć, ale fajnie by było jakby ktoś nam ikonę zrobił.

Naprawa buildów

https://travis-ci.com/Nircek/labirynt/builds/85000113

main.cpp: In function ‘void getMap()’:
main.cpp:58:29: error: no matching function for call to ‘std::basic_fstream<char>::open(std::string&, const openmode&)’
 file.open(file_name, ios::in);
                             ^
main.cpp:58:29: note: candidate is:
In file included from main.cpp:5:0:
/usr/include/c++/4.8/fstream:886:7: note: void std::basic_fstream<_CharT, _Traits>::open(const char*, std::ios_base::openmode) [with _CharT = char; _Traits = std::char_traits<char>; std::ios_base::openmode = std::_Ios_Openmode]
       open(const char* __s
       ^
/usr/include/c++/4.8/fstream:886:7: note:   no known conversion for argument 1 from ‘std::string {aka std::basic_string<char>}’ to ‘const char*’

https://github.com/Nircek/labirynt/blob/805cf015dfa1c23e83503509165e490bf62d7243/main.cpp#L17
Wystarczy scastować tego stringa w pierwszym argumencie na const char*a

README

Przydało by się napisać jakieś README, żeby ktoś kto to będzie przeglądał wiedział do czego to służy...
@IgorBia moim zdaniem najlepiej się nadasz na to zadanie.

Organizacja kodu


funkcja użytkownik branch status
getMap @MrDarkness19 getmap()-by-pan-ciemność #9
beginningCoords @Crackhoff mojebranczydło #6
targetCoords @Nircek targetCoords-function #19
isWall @IgorBia isWall #20
drawOnBufor @Nircek bufor #18
viewBufor @Nircek bufor #18
getEvent @GummyBear45 GummyBear45-patch-1 #16
doEvent @GummyBear45 GummyBear45-patch-1 #16
isEnd @Crackhoff pre-alpha #21
doEnd @MrDarkness19 & @Nircek doEnd-func #15
main @Nircek main-function #8

Wszystkie funkcje mają mieć swoje Pull Requesty do czwartku, godziny 18:45.

Czarno-białe mapy

Nie możemy zrobić map z full blockami (█), ponieważ chcemy mieć jak największą przenośność, a full blocki są różnie kodowane przez konsole na windach (cmd.exe) oraz na różnego typu terminalach unixowych. Natomiast pojawiła się inna możliwość zrobienia "full blobków" przez #45. Mianowicie można pomalować na jeden kolor ściany, a na inny kolor spacje.

Kampania w stand-alone exe

Kiedy komuś się podeślę samego EXEka (lub ktoś pobierze skompilowaną wersję z releasa) to nie ma folderu maps. Jak nie ma folderu maps to program podczas uruchomienia kampanii się wysypie. No i teraz pytanie co chcemy z tym zrobić... Czy dostarczać skompilowane EXEki wraz z folderem maps? A może przepisać mapy z maps statycznie do kodu, żeby nie było żadnego folderu?

Polskie znaki

Program posiada polskie znaki. Trzeba je zmienić na zwykłe ( zamiast "ą" wpisać "a" itd. )

Struktura COORDS

Proponuję dodać nową strukturę COORDS, w której bdmy przechowywać wszystkie rzeczy dotyczące koordynatów...

Generowanie losowych map

Dobrze by było dodać losowe mapy, żeby to nie były tylko te cztery z pliku... Jest to zadanie trudne, żeby napisać dobry algorytm.
@Nircek good luck

Obsługa strzałek

Proponuję dodać obsługę strzałek, żeby oprócz WSADa można było się równocześnie przemieszczać się strzałkami na klawiaturze.
@GummyBear45 liczę na Ciebie.

Wyeliminowanie prostszych kombinacji wejścia i wyjścia

Bardzo często są losowane wejścia i wyjścia blisko siebie, żeby nieco zwiększyć trudność gier, proponuję dopisać linijkę, która by sprawiała, że wyjścia MUSI być co najmniej oddalone o pół przekątnej mapy od wyjścia. Jeżeli potrzebujesz inspiracji to to samo zrobiłem w swoim wcześniejszym projekcie labiryntu Nircek/maze@03c84d7.

Zmiana systemu eventów

Do #43 potrzebujemy strzałek, aktualnie strzałki są rozpoznwane w doEvent, a powinny być rozpoznawane w getEvent, ponieważ eventem jest naciśnięcie strzałki, a nie klawisze jej przypisane.

Podział na pliki

Przydałoby się podzielić ten nasz labirynt na poszczególne pliki z funkcjami, żeby jeszcze bardziej nikt nie ogarniał o co chodzi, a przy okazji, żeby takie rzeczy jak portable kolorowanie czy portable getch'e były w osobnych plikach.

Multiplayer

Jak już zrobimy #25 to będziemy mieli gotową kalibrację. Można ją potem wykorzystać do pobrania klawiszy innych playerów i potem do grania z innymi osobami.

Dodanie kolorów

Przejrzystość w naszym labiryncie jest bardzo słaba i ciężko odróżnić cel i usera od ścian. Trzeba zmienić kolory celu i usera żeby dało się ich odróżnić od ścian i nie oślepnąć od wpatrywania się w hashe.

Licencja

Musimy się zastanowić nad tym na jakiej licencji chcemy udostępniać naszą pracę. Ja preferuję licencję MIT, ale jest to kwestia do przedyskutowania i uzgodnienia.

make

W momencie kiedy kompilacja się nie powiodła to make powinien nie odpalać wcześniej skompilowanego programu...

Menu

Chciałbym dodać do tego projektu algorytm do generowania map, żeby nie trzeba było ich ładować z pliku i żeby za każdym razem były losowe, ale do tego trzeba by zrobić jakieś menu z wyborem losowego generowania mapy oraz wczytania mapy z pliku...
@MrDarkness19 mam nadzieję, że się podejmiesz zadania, tylko żeby było jakieś wymyślne, a nie zwykłe zapytanie

Naprawienie skryptu make

Skrypt make niepoprawnie wykonuje się na niektórych systemach nieposiadających /usr/bin/time, w przypadku braku takiego systemu można zrezygnować z wypisywania czasu, pamięci oraz errorlevela zwracanego przez program.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.