Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Robert Cichocki 180330 EiT gr 2
- #include <iostream>
- #include <cstdlib>
- #include <ctime>
- #include <cstdio>
- #include <vector>
- #include "func.h"
- using namespace std;
- int select;
- char x;
- int kolumna;
- void wyjdz();
- void menu();
- void pomoc();
- void gra();
- void RysujPlansze();
- void PokazMenu();
- void ZmienKart();
- void DolozKarty();
- void LosujKartyNaPlanszy();
- void GenerujKarty();
- vector<Karta> wszystkieKarty;
- vector<Karta*> kartyNaPlanszy;
- vector<vector<Karta*>> grupka;
- vector<vector<Karta*>> kol;
- int main()
- {
- menu();
- }
- void wyjdz() {
- system("cls");
- cout << "Do zobaczenia!" << endl;
- system("exit");
- }
- void menu() {
- GenerujKarty();
- cout << "*****MENU*****" << endl;
- cout << "1.Rozpocznij gre!" << endl;
- cout << "2.Jak grac?" << endl;
- cout << "3.Wyjscie" << endl;
- cout << "> ";
- cin >> x;
- switch (x) {
- case '1':
- system("cls");
- gra();
- cout << hex;
- break;
- case '2':
- pomoc();
- break;
- case '3':
- wyjdz();
- break;
- default:
- menu();
- break;
- }
- }
- void pomoc() {
- system("cls");
- int select;
- cout << "Zasady:" << endl;
- cout << "Posiadamy 8 kompletow klockow oznaczonych 0,1,2,3,4,5,6,7,8,9,A,B,C" << endl;
- cout << "Podana kolejnosc jest jednoczesnie porzadkiem klockow:" << endl;
- cout << "- Klocki 0 sa najmniejsze" << endl;
- cout << "- Klocki C sa najwieksze" << endl;
- cout << "Na poczatku gry klocki umieszczone sa w dziesiaciu kolumnach:" << endl;
- cout << "- W pierwszysch 4 kolumnach znajduje sie 6 klockow" << endl;
- cout << "- W nastepnych 6 kolumnach jest po 5 klockow" << endl;
- cout << "Tylko ostatni klocek z kazdej kolumny jest widoczny." << endl;
- cout << "Klocek zostaje odsloniety, gdy jest ostatni w kolumnie." << endl;
- cout << "Pozostale klocki sa zgrupowane w pieciu grupach po 10 klockow." << endl;
- cout << "Seria, to sekwencja klockow, ktore sa ustawione w kolejnosci malejacej o 1:" << endl;
- cout << "- np. 5 4 3 jest seria." << endl;
- cout << "Mozliwe ruchy:" << endl;
- cout << "- dowolona ostatnie serie klockow kolumn mozna przelozyc na ostatnie miejsce w innej" << endl;
- cout << "kolumnie tylko wtedy, gdy po takiej operacji dlugosc przekladanej serii zwiekszy sie" << endl;
- cout << "przynajmniej o jeden np. majac serie 6 5 4 3 i 5 serie 4 3 mozna przelozyc na serie 5" << endl;
- cout << "otrzymujac tym samym serie 6 5 oraz 5 4 3" << endl;
- cout << "- dowolnej dlugosci serie mozna przelozyc na pusta kolumne" << endl;
- cout << "- wylozenie zgrupowanych klockow - 10 klockow z grupy zostaje ustawione jako ostatnie w kolumnach" << endl;
- cout << "Jesli po kilku ruchach powstaje seria dlugosci 13, czyli zawierajaca wszystkie klocki, wtedy" << endl;
- cout << "wszystkie klocki z tej serii zostaja automatycznie usuniete z gry. Gracz wygrywa, gdy usunie" << endl;
- cout << "wszystkie klocki, natomiast przegrywa, gdy nie ma ruchu." << endl;
- cout << "" << endl;
- cout << "Poruszanie sie:" << endl;
- cout << "----------------------------------------------------------------------------------------------" << endl;
- cout << "1.Wroc do MENU" << endl;
- cout << "> ";
- cin >> select;
- switch (select) {
- case 1:
- system("cls");
- menu();
- break;
- default:
- pomoc();
- break;
- }
- }
- void gra()
- {
- LosujKartyNaPlanszy();
- while (x != '3')
- {
- system("CLS");
- PokazMenu();
- RysujPlansze();
- switch (x) {
- case '1':
- system("cls");
- break;
- case '2':
- break;
- case '3':
- wyjdz();
- break;
- default:
- gra();
- break;
- }
- }
- }
- void PokazMenu()
- {
- cout << "*****MENU*****" << endl;
- cout << "1.Przestaw karty Wybrana Kolumna: "<< kolumna << endl;
- cout << "2.Doloz karty" << endl;
- cout << "3.Wyjscie" << endl;
- cout << "> ";
- cin >> x;
- }
- void ZmienKarty()
- {
- }
- void DolozKarty()
- {
- }
- void GenerujKarty()
- {
- for (int i = 0; i < 8; i++)
- {
- for (int j = 0; j < 13; j++)
- {
- Karta* temp = new Karta((char)j,false,-1);
- wszystkieKarty.push_back(*temp);
- delete temp;
- }
- }
- for (int i = 0; i < 5; i++)
- {
- vector<Karta*> row;
- grupka.push_back(row);
- }
- for (int i = 0; i < 10; i++)
- {
- vector<Karta*> row;
- kol.push_back(row);
- }
- }
- void LosujKartyNaPlanszy()
- {
- for (int i = 0; i < 54; i++)
- {
- Karta* temp = nullptr;
- while (temp->kolumna != -1)
- {
- int liczba = rand() % 104;
- temp = &wszystkieKarty[104];
- }
- kartyNaPlanszy.push_back(temp);
- kartyNaPlanszy[i]->kolumna = i % 10;
- kol[i % 10].push_back(temp);
- }
- for (int i = kartyNaPlanszy.size() - 1; i > 11; i--)
- {
- kartyNaPlanszy[i]->Odkryj();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement