, . , : , - . - , .
- , , . , , . , .
, .
, , .
, , .
, , . - : Null .
, , , , . . , .
, . , , . . , : 1, 2, 3, 4, 5. , -, , : 4, 1, 5, 3, 2. , : 5, 4, 3, 2, 1.
, , , , null ( ). - - , , () , , (.1). .
|
|
( ) . : , . : , .
:
struct _ {
;
1;
2;
};
, , ;
1 , , ;
2 , , .
. , , . , (- : - ). .
, , . , , . VAR RECORD .
, .
, , . , . . , WHILE DO REPEATUNTIL FOR.
( , )
First | N | Last |
:
1. First ;
2. Last - ;
3. N - ;
. 1.
:
struct _ {
;
1;
2;
};
, , ;
1 , , ;
2 , , .
|
|
, , . , . . , WHILE DO REPEATUNTIL FOR.
( , )
First | N | Last |
:
- First ;
- Last - ;
- N - ;
:
, . ++. , , . , - .
. :
i, j ,
k
true/false boolean ,
, , . , .
, , 4 :
- New game ( )
- Options ()
- Bomb number ( )
- Color ( )
- Red ()
- Green ()
-Blue ()
- Difficulty ()
- 55
- 99
-Back ( )
-Developers ()
-Exit ()
, Enter. Esk. ( ). .
. 5 5 9 9, . . , ( ). , () ().
, . , ( ). .
, . : 23 (20 - ), .
20 , -.
, .
:
.. , ..
. ++
: C++
http://www.vr-online.ru/content/s-dvusvjaznye-spiski-3085 - ++, .
http://www.rsdn.ru/forum/src/2261478.1.aspx ++,
|
|
http://comp-science.narod.ru/Progr/Dynamic.htm - ,
#include "StdAfx.h"
#include "a2b2c2.h"
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
void list::Add_element(int str, int stb, int num, bool bomb)
{
element *new_element = new element;
if (head == NULL) //first elem
{
new_element->prev = new_element;
new_element->next = new_element;
head = new_element;
tail = new_element;
}
new_element->bomb = bomb;
new_element->num = num;
new_element->str = str;
new_element->stb = stb;
tail->next = new_element;//
head->prev = new_element;//
new_element->next = head;
new_element->prev = tail;
tail = new_element;
count_element++;
};
void list::Print_list()
{
element *new_element = head;
if (head == NULL)
cout << "Empty list\n";
else
{
cout << endl;
for (int i=0; i<count_element; i++)
{
if (new_element->bomb == true)
cout << "bomb " << ": [" << new_element->str << ";" << new_element->stb << "]\n";
//else
// cout << "box number " << new_element->num << ": [" << new_element->str << ";" << new_element->stb << "]\n";
new_element = new_element->next;
}
/*
cout << endl << "List <-:";
new_element = tail;
for (int i=0; i < count_element; i++)
{
cout << new_element->data + ' ';
new_element = new_element->prev;
}*/
}
};
void list::Del_element(int str, int stb, int level)
{
element *new_element = head;
{
for(int i=0; i<level; i++) //,
{
new_element = new_element->next;
if ((new_element->str==str) && (new_element->stb == stb))
break;
}
if (new_element == head) //
{
if (count_element == 1) //
{
head = NULL;
tail = NULL;
}
else // ,
{
head = new_element->next;//head
new_element->next = NULL;
new_element->prev = NULL;//
head->prev = tail;//->
tail->next = head;//->
}
cout << "\nbomb number"<<new_element->num<< ": [" << str<< ";"<<stb << "] is found ";
delete new_element;
count_element--;
return;
}
}
if (new_element == tail) //
{
tail = new_element->prev;
new_element->next = NULL;
new_element->prev = NULL;
tail->next = head;
head->prev = tail;
cout << "\nbomb number"<<new_element->num<< ": [" << str<< ";"<<stb << "] is found ";
delete new_element;
count_element--;
}
//
if ((new_element!= head) && (new_element!= tail))
{
//new_element
new_element->prev->next = new_element->next; //
new_element->next->prev = new_element->prev; //
|
|
cout << "\nbomb number"<<new_element->num<< ": [" << str<< ";"<<stb << "] is found ";
delete new_element;
count_element--;
return;
}
};
void list::Del_list()
{
if (head!= NULL)
for (int i=0; i < count_element; i++)
{
element *new_element = head;
head = head->next;
new_element->next = NULL;
new_element->prev = NULL;
delete new_element;
}
count_element = 0;
head = NULL;
tail = NULL;
};
void KillBomb(int level)
{
bool fl=true;
for (int i=0; i<level; i++)
for (int j=0; j<level; j++)
if ((a[i][j]==20) && (b[i][j]==1))
{
new_element = bomb_list.head;
int ttl =0;
bool usf_elem = true;
while (usf_elem)
{
new_element = new_element->next;
ttl++;
if (((new_element->str == i) && (new_element->stb == j)) || (ttl>level*level+1))
usf_elem=false;
}
if (new_element == bomb_list.head)
if (bomb_list.count_element == 1)
bomb_list.head = NULL;
else
bomb_list.head = new_element->next;
if (new_element == bomb_list.tail)
if (bomb_list.count_element == 1)
bomb_list.tail = NULL;
else
bomb_list.tail = new_element->prev;
new_element->prev->next = new_element->next;//
new_element->next->prev = new_element->prev;//
bomb_list.count_element--;
if(game_list.head == NULL)
{
game_list.head = new_element;
game_list.tail = new_element;
new_element->next = new_element;
new_element->prev = new_element;
}
else
{
game_list.tail->next = new_element;
new_element->prev = game_list.tail;
game_list.head->prev = new_element;
new_element->next = game_list.head;
game_list.tail = new_element;
}
game_list.count_element++;
}
cout <<"\nBombs left: ";
bomb_list.Print_list();
cout <<"\nBombs found: ";
game_list.Print_list();
bomb_list.Del_list();
game_list.Del_list();};