Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Erik Mészaroš:16.1.2018 21:32

Ahoj potřeboval bych pomoct mám vypsat poslední ho přeživšího v ruské ruletě ale nevím jak na to...Přikládám zdroják.

#include <iostream>

#include <time.h>

struct Node {

bool data;

Node* next;

};

class LinkedList {

public:

LinkedList()

{

head = NULL;

tail = NULL;

}

void CreateNode(bool value)

{

Node* temp = new Node();

temp->data = value;

temp->next = NULL;

if (head == NULL)

{

head = temp;

tail = temp;

temp = NULL;

}

else

{

tail->next = temp;

tail = temp;

}

}

void DisplayList()

{

Node* temp = new Node();

temp = head;

while (temp != NULL) {

std::cout << temp->data << ", ";

temp = temp->next;

}

std::cout << std::endl;

}

bool GetPos(int pos)

{

Node* cur = new Node;

cur = head;

for (int i = 0; i < pos; i++)

{

if(cur->next != nullptr)

cur = cur->next;

}

return cur->data;

}

void SetPos(int pos, bool value)

{

Node* cur = new Node;

cur = head;

for (int i = 0; i < pos; i++)

{

cur = cur->next;

}

cur->data = value;

}

void DeletePosition(int pos)

{

Node* current = new Node;

Node* previous = new Node;

current = head;

for (int i = 1; i<pos; i++)

{

if (current->next != nullptr)

{

previous = current;

current = current->next;

}

}

previous->next = current->next;

}

private:

Node* head;

Node* tail;

};

int main()

{

LinkedList* vojaci = new LinkedList();

int rozsah = 10;

const int puvRozsah = rozsah;

int mrtvy = 0;

int posledni = 0;

int k = 0;

srand(time(0));

for (int i = 0; i < rozsah; i++)

{

vojaci->CreateNode(true);

}

int i = rand()%rozsah;

while (mrtvy < (puvRozsah - 1))

{

if(vojaci->GetPos(i))

if (k < 5)

k++;

else

{

//vojaci->DisplayList();

vojaci->DeletePositi­on(rozsah);

vojaci->DisplayList();

mrtvy++;

std::cout << "Pocet mrtvych: " << mrtvy << std::endl;

std::cout << "--------------------------------------" << std::endl;

rozsah -= 1;

k = 0;

}

if (i == (rozsah - 1))

{

i = 0;

}

else

i++;

}

std::cout << "Ukonci stiskem libovolne klavesy";

vojaci = NULL;

std::cin.get();

return 0;

}

 
Odpovědět
16.1.2018 21:32
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.