Forum programistyczne
Kwiecień 20, 2024, 06:55:28 *
Witamy, Gość. Zaloguj się lub zarejestruj.

Zaloguj się podając nazwę użytkownika, hasło i długość sesji
Aktualności: Forum programistyczne wystartowało. Potrzebujesz pomocy przy pisaniu programu, masz problem programistyczny?

Zapraszamy do rejestracji!!!
 
   Strona główna   Pomoc Szukaj Zaloguj się Rejestracja  

Strony: [1]
  Drukuj  
Autor Wątek: dowolny jezyk 5 programow  (Przeczytany 4517 razy)
wapnoziom
Nowy użytkownik
*
Wiadomości: 1


Zobacz profil
« : Kwiecień 26, 2009, 13:41:09 »

Poszukuje programistow ktorzy napisza mi pare programow w c#, oczywiscie zaplace za nie, cena jest do ustalenia. Nie sa to programy na zaliczenie, potrzebuje je na uzytek wlasny. Po zapoznaniu sie ze specyfikacjami poprosze osoby zainteresowane o wyslanie swojej ceny + czasu jaki potrzebuje na program (nie jest to zaden deadline wiec nie mam wygorowanych zalozen czasowych). Na tym etapie interesuje mnie kontakt mailowy: programyprogramy@googlemail.com

1)freecell
2)mahjong
3)solitare
4)spider
5)program


1)freecell

program ma znalezc najszybsza (najmniejsza ilosc przesuniec) kombinacje rozwiazania dowolnego ustawienia kart dla gry freecall.
Mysle ze zasad freecella nie musze przytaczac. Program nie musi byc maksymalnie zoptymalizowany w czasie zalezy mi tylko na znalezeniu najlepszej sekwencji, ewentualnie gdy czas bedzie zbyt dlugi, o podanie najlepszej znalezionej sekwencji. Po znalezieniu sekwencji program ma jako plik wyjsciowy zapisac kazdy krok sekwencji celem pozniejszego wyswietlenia. Plikiem wsadowym do programu bedzie:... tu do wyboru dowolny rodzaj pliku w ktory bede wprowadzal 8 stosow kart.

Plik wyjsciowy:
kazdy ruch ma byc zapisany w pliku tekstowym
przelozenie karty z kolumny na kolumne - x,4:y,4[nastepna linia]
przelozenie karty na pola z buforem    - x,4:z,0[nastepna linia]
przelozenie karty z kolumny na pole koncowe (tam gdzie maja znalezc sie uporzadkowane karty od asa do krola)
                                       - x,4:w,0[nastepna linia]
przelozenie karty z bufora na pole koncowe
                                       - z,0:w,0[nastepna linia]
                                       
x{0,1,2,3,4,5,6,7}
y{0,1,2,3,4,5,6,7}
z{0,1,2,3}
w{4,5,6,7}

2)mahjong

Program ma skladac sie z dwoch podprogramow
1 Programu wprowadzajacego dane
2 Programu rozwiazujacego macierz z danymi.

1 Program wprowadzajacy dane ma pozwolic na wprowadzenie danych do trojwymiarowej tablicy o wymiarach nie wiekszych niz 30x30x6(wymiary sa z duzym zapasem wiec nie ma problemu z iloscia rozwiazan, w momencie napisania programu wprowadzajacego moge wprowadzic pare przykladowych macierz w celach testowych dla programu glownego). Pola macierzy beda liczbami, jednakze kazda liczba bedzie zajmowala 4 pola w poziomie. Liczby, moga lezec "na sobie" gdyz jest to macierz 3D. Gdy jedna liczba bedzie lezala chocby czesciowo na drugiej to dla programu glownego widoczna bedzie tylko liczba na wierzchu-sytuacja bardzo podobna do gry mahjong, wlasciwie mozna opierac sie na jej zasadach.

2 Program ma znalezc przejscie macierzy(mozna zalozyc ze bedzie takie) wg zasad parowania takich samych elementow bedacych elementami skrajnymi i bedacych na wierzchu.
Element skrajny jest to taki ktory nie ma sasiada z lewej badz z prawej strony(zadne z 4 pol prezentowanych przez element nie moze miec sasiada w danej plaszczyznie z lewej badz prawej strony).
Rozwiazaniem programu ma byc plik w formacie .txt ktory bedzie zawierac wszystkie ruchy w odpowiedniej kolejnosci potrzebne do rozwiazania macierzy w formacie:
x1,y1:x2,y2  , gdzie x1,x2 to wspolrzedna wiersza a y1,y2 wpolrzedna kolumny(odwrotnie niz w matematyce)
wspolrzedne maja byc liczone od lewej gornej komorki macierzy, ktorej adresem bedzie 0,0.Nie ma tu bledy interesuja mnie tylko wspolrzedne x i y.

3)solitare

Program ma odczyta liste kart i 7 kolumn kart w ktorych karty zakryte beda oznaczone *, wszystkie karty w liscie sa zakryte.
Program bazujac na zasadach solitare(pasjans) ma znalezc najkrotsze(najmniejsza ilosc ruchow) rozwiazanie pasjansa. Program ma miec rowniez opcje wprowadzenia niepelnego stanu gry i znalezienia rozwiazania badz rozwiazan ktore moga umozliwic przejscie gry. Wszystkie rozdania jakie otrzyma program beda mozliwe do ukonczenia. Program ma generowac plik wyjsciowy formatu txt.
Kazda operacja jaka bedzie przeprowadzona przez program ma zostac zapisana w pliku w nastepujacy sposob:
odkrycie karty z ktorejs z kolumn - x,1:3,0[znak nastepnej lini]
przeniesienie karty z kolumny na kolumne - x,1:y,1[znak nastepnej lini]
odkrycie karty z listy kart - 0,0:3,0
przeniesienie karty z listy kart na kolumne - 1,0:x,1
przeniesienie karty z kolumny na stos kart uporzadkowanych(miejsce gdzie wszystkie karty maja zostac odlozone w kolejnosci od asa do krola) - x,1:z,0

x,y{0,1,2,3,4,5,6}
z{3,4,5,6}

4)Spider

w grze bierze udzial 2 talie kart w jednym kolorze
Stan gry na wstepie:
10 kolumn kart
4 pierwszej maja po 5 kart zakrytych i 1 odkryta
6 nastepnych maja 4 karty zakryte i 1 odkryta
co daje 54 kart
lacznie w talii jest 104 kart
na kupce kart nierozdanych znajduje sie 50 kart podzielonych na 5 fal.
Karty mozna przekladac wg nastepujacych zasad:
-Karte nizsza mozna przelozyc na karte wyzsza. W hierarchi najwyzszy jest krol-jego nie mozna nic polozyc, najnizszy jest as na niego nie moze byc polozne nic.
-mozna przelozyc kolumne kart badz jej czesc pod warunkiem ze jest uporzadkowana
-mozna przelozyc uporzadkowana kolumne badz pojedyncza karte na pusta kolumne

Wierzch-niech to bedzie ostatnie pole zajete w kazdej kolumnie(przypadek dla kart nieuporzadkowanych badz dla 1 karty), badz ostatnia uporzadkowana czesc kolumny
Stos uporzadkowana kolumna od asa do krola(od 1 do 13)
Rozdanie dodanie rzedu cyfr do macierzy(kart)
Stos automatycznie znika z pola gry w momencie gdy jest uporzadkowana zaczyna sie od krola i konczy na asie(pod krolem moga znajdowac sie karty zakryte badz odkryte)
Rozdac karty mozna jedynie w momencie gdy nie ma pustych kolumn(program musi sie zabezpieczyc przed tym)
Gra jest w pelni zakonczona gdy wszystkie karty znikna z pola gry.
Wynikiem ma byc rozwiazanie rozdan w najmniejszej liczbie ruchow
Na wyjsciu program ma zapisac w pliku tekstowym rozwiazanie w formacie:

x,1:y,1

gdzie x,y jest numerem kolumny{0,1,2,3,4,5,6,7,8}, a 1 stala.
*przy liczbie oznacza karte zakryta ktora jest nieaktywna w macierzy do momentu az nie bedzie na wierzchu
Przyklad pliku wejsciowego w zalaczniku
as ma symbol 1
krol ma symbol 13

Potrzebne beda dwie funkcje przekladania
1) tworzaca stos
moze rozbijac uporzadkowane kolumny, ma zawierac sie w tym usuwanie gwiazdek ilekroc gwiazdka jest na wierzchu
2) przekladanie normalne
nie moze rozbijac uporzadkowanych kolumn, ma zawierac sie w tym usuwanie gwiazdek ilekroc gwiazdka jest na wierzchu

Algorytm postepowania[opcjonalne uzycie]

-program ma znalezc czy istnieja na wierzchu wszystkie karty z zakresu 1-13(sprawdza karty pojedyncze na wierzchu jak rowniez uporzadkowane kolumny na wierzchu)
-jesli tak to stworzyc z nich stos i wrocic na poczatek
-dla danego ukladu macierzy program ma znalezc wszystkie mozliwosci przelozenia 1 karty badz uporzadkowania wg przekladania normalnego i zapisac stany wszystkich macierz powstalych wraz z ilosciami ruchow ktore byly na kazdej przeprowadzone
-jesli nie istnieje mozliwosc przelozenia karty, badz wszystkie karty sa uporzadkowane w kolumnach program ma zapisac macierz i przejsc do nastepnej
-gdy w kazdej macierzy nie bedzie mozliwosci przeprowadzenia ruchu program ma policzyc ilosc kart zakrytych i wybrac ta macierz ktora ma ich najmniej, jesli bedzie wiecej macierzy z taka sama iloscia kart nieodkrytych program ma sprawdzic ilosc ruchow i wybrac ta z najmniejsza, jesli bedzie wiecej macierzy z tym i z tym takim samym to ma je zapisac wszystkie i zrobic rozdanie
-program ma sprawdzic czy ktoras macierz sie nie powtarza
-jesli tak to usunac ta z wieksza liczba ruchow, jesli liczba ruchow jest taka sama to usunac jedna z nich
-program ma otworzyc najstarsza macierz(zapisana jaka pierwsza)
-program ma wrocic na poczatek
-jesli skoncza sie rozdania i nie bedzie kart na poly gry to program ma podac najlepsze rozwiazanie

5) program

Program ma rozwiazac macierz na okreslonych zasadach.
Sa 3 poziomy
1 poziom: usuniecie 1 pary-100pkt, za usuniecie kolejnej takiej samej pary w nastepnym ruchu stawka za pare mniej +25 az do 3 par z rzedu
2 poziom: usuniecie 1 pary-110pkt, za usuniecie kolejnej takiej samej pary w nastepnym ruchu stawka za pare mniej +25 az do 4 par z rzedu
3 poziom: usuniecie 1 pary-120pkt, za usuniecie kolejnej takiej samej pary w nastepnym ruchu stawka za pare mniej +25 az do 5 par z rzedu
Celem jest uzyskanie za kazdy z poziomow jak najwiecej punktow, czyli uzyskanie najwiecej kilkukrotnych par.
Program ma sprawdzic wszystkie mozliwe rozwiazania tablicy i wybrac najlepsze.
Rozwiazanie tablicy jest to usuniecie wszystkich jej elementow.
Elementami beda cyfry, ich ilosc jest skonczona i wynosi odpowiednio dla poziomu 1:36{1,2,3,4,5,6} 2:56{1,2,3,4,5,6,7} 3:80{1,2,3,4,5,6,7,8}, ilosc cyfry jest dla kazdego poziomu taka sama(szesc szostek na 1 poziomie, szesc piatek na 1 poziomie, 8 na 2 poziomie, 10 na 3 poziomie)
Element mozna usuwac wtedy i tylko wtedy gdy znajduje sie on w bezposrednim sasiedztwie pionowym poziomym badz skosnym w tablicy.
Tablica sklada sie z 5 rzedow poziomych i 4 kolumn pionowych.
Ilekroc dwa elementy z tablicy zostana poprawnie usuniete, tablica zapelnia sie elementami bedacymi w kolejce, wg nastepujacych zasad.
Elementy przesuwaja sie na puste miejsca w lewo w swoim rzedzie. Gdy ostatni element gornego rzedu tablicy stanie sie pusty na to miejsce wchodzi 1 element rzedu nizej, i tak az do konca tablicy. W miejsce ostatnich dwoch elementow ostatniego rzedu(wciaz liczac od gory) wchodza dwa elementy z kolejki spoza tablicy. Program powinien byc zoptymalizowany zeby skrocic jego czas dzialania. Program ma miec mozliwosc zapauzowania go, oraz zrobienia zapisu stanu programu celem wylaczenia go i ponownego wlaczenia w innym terminie. Mimo ze metoda wydaje sie bardzo zmudna kombinacji nie bedzie zbyt duzo, gdyz nie duza bedzie ilosc mozliwych par w macierzy(program ma nie parowac elementow ktore nie sa jeszcze w macierzy!), oraz zostana zawezone poszukiwania(o tym nizej). Po znalezieniu najlepszej sekwencji, badz tez po zapauzowaniu, program ma zapisac w pliku tekstowym wynik najlepszej dotychczas poznanej kombinacji w formacie:

wspolrzedna_x_pierwszej_cyfry_z_pary,wspolrzedna_y_pierwszej_cyfry_z_pary:wspolrzedna_x_drugiej_cyfry_z_pary,wspolrzedna_y_drugiej_cyfry_z_pary
np 0,0:0,1
pusta linia po kazdym poziomie

W innym pliku ma dopisywac za kazdym razem ile kombinacji sprawdzil, ile znalazl kombinacji rozwiazujacych macierz, oraz czas pracy (pauza oczywiscie zatrzymuje czas)

Droga rozwiazania macierzy wzgledem poziomu:

poziom pierwszy:
program ma znalezc element ktory pojawi sie w calosci w macierzy najszybciej(element wiodacy-3 pary) i nie kasowac go do momentu pojawienia sie(w calosci). Program ma zaczynac kazdy ruch od sprawdzenia:
-czy istnieje mozliwosc skasowania 3 par jesli tak to skasowac je i wrocic na poczatek
-jesli nie istnieje mozliwosci skasowania 3 pary czy istnieje mozliwosc skasowania 2 par, jesli tak to skasowac i wrocic na poczatek
-jesli nie to skasowac 1 pare
-jesli nie bedzie mozliwosci skasowania zadnej pary kombinacja jest nieudana i nalezy szukac nastepnej
-jesli jedyna para jaka bedzie, bedzie para z elementu wiodacego nalezy nalezy szukac nastepnej kombinacji
-jesli nie bedzie nastepnej kombinacji to nalezy zmienic element wiodacy i zaczac od nowa
-jesli wszystkie pary zostana skasowane program ma zapisac wyniki i zaczac inna kombinacje

poziom drugi:
program ma sprawdzic kazdy z mozliwych podciagow 40 cyfrowych pod katem ilosci elementow i wyznaczyc 3 elementy wiodace w danych podciagach ktore beda mialy byc kasowane razem tak jak na poziomie 1,
Program ma zaczynac kazdy ruch od sprawdzenia:
-czy istnieje mozliwosc skasowania 4 par jesli tak to skasowac je i wrocic na poczatek
-jesli nie istnieje mozliwosc skasowania 4 par czy istnieje mozliwosc skasowania 3 par jesli tak to skasowac je i wrocic na poczatek
-jesli nie istnieje mozliwosc skasowania 3 par czy istnieje mozliwosc skasowania 2 par, jesli tak to skasowac i wrocic na poczatek
-jesli nie to skasowac 1 pare
-jesli nie bedzie mozliwosci skasowania zadnej pary kombinacja jest nieudana i nalezy szukac nastepnej
-jesli jedyna para jaka bedzie, bedzie para z elementu wiodacego nalezy nalezy szukac nastepnej kombinacji
-jesli nie bedzie nastepnej kombinacji to nalezy zmienic jeden z elementow wiodacych i zaczac od nowa
-jesli nie bedzie mozliwosci rozwiazania tablicy dla wszystkich kombinacji 3 elementow wiodacych, program ma zmniejszyc ich liczbe do 2 i zaczac od nowa
-jesli nie bedzie mozliwosci rozwiazania tablicy dla wszystkich kombinacji 2 elementow wiodacych program ma postepowac jak dla poziomu 1
-jesli wszystkie pary zostana skasowane program ma zapisac wyniki i zaczac inna kombinacje

poziom trzeci: 
program ma sprawdzic kazdy z mozliwych podciagow 40 cyfrowych pod katem ilosci elementow i wyznaczyc 4 elementy wiodace w danych podciagach ktore beda mialy byc kasowane razem tak jak na poziomie 1,
program ma sprawdzic kazdy z mozliwych podciagow 30 cyfrowych pod katem ilosci elementow i wyznaczyc 3 elementy wiodace drugiej kategorii w danych podciagach(poprzednie elementy wiodace nie beda tu juz sprawdzane),
Program ma zaczynac kazdy ruch od sprawdzenia:
-czy istnieje mozliwosc skasowania 5 par jesli tak to skasowac je i wrocic na poczatek
-jesli nie istnieje mozliwosc skasowania 5 par czy istnieje mozliwosc skasowania 4 par jesli tak to skasowac je i wrocic na poczatek
-jesli nie istnieje mozliwosc skasowania 4 par czy istnieje mozliwosc skasowania 3 par jesli tak to skasowac je i wrocic na poczatek
-jesli nie istnieje mozliwosc skasowania 3 par czy istnieje mozliwosc skasowania 2 par, jesli tak to skasowac i wrocic na poczatek
-jesli nie to skasowac 1 pare
-jesli nie bedzie mozliwosci skasowania zadnej pary kombinacja jest nieudana i nalezy szukac nastepnej
-jesli jedyna para jaka bedzie, bedzie para z elementu wiodacego, badz elementu wiodacego drugiej kategorii nalezy nalezy szukac nastepnej kombinacji
-jesli nie bedzie nastepnej kombinacji to nalezy zmienic jeden z elementow wiodacych drugiej kategorii i zaczac od nowa
-jesli nie bedzie mozliwosci rozwiazania tablicy dla wszystkich kombinacji 3 elementow wiodacych drugiej kategorii program ma zmniejszyc ich liczbe do 2 i zaczac od nowa
-jesli nie bedzie mozliwosci rozwiazania tablicy dla wszystkich kombinacji 2 elementow wiodacych drugiej kategorii program ma zmniejszyc ich liczbe do 1 i zaczac od nowa
-jesli nie bedzie mozliwosci rozwiazania tablicy dla wszystkich kombinacji 1 elementu wiodacego drugiej kategorii program ma pominac elementy wiodace drugiej kategorii i zaczac od nowa
-jesli nie bedzie nastepnej kombinacji to nalezy zmienic jeden z elementow wiodacych i zaczac od nowa
-jesli nie bedzie mozliwosci rozwiazania tablicy dla wszystkich kombinacji 3 elementow wiodacych, program ma zmniejszyc ich liczbe do 2 i zaczac od nowa
-jesli nie bedzie mozliwosci rozwiazania tablicy dla wszystkich kombinacji 2 elementow wiodacych program ma postepowac jak dla poziomu 1
-jesli wszystkie pary zostana skasowane program ma zapisac wyniki i zaczac inna kombinacje
Zapisane
Strony: [1]
  Drukuj  
 
Skocz do:  



https://aktinet.pl/czy-dyskryminacja-cenowa-jest-dobra-czy-zla/ Apteki Profesjonalne usługi remontowe Poznań
Działa na MySQL Działa na PHP Powered by SMF 1.1.20 | SMF © 2006-2007, Simple Machines Prawidłowy XHTML 1.0! Prawidłowy CSS!