![]() |
| |||||||
| Home | Register | Blogs | FAQ | Members List | Calendar | Downloads | Arcade | Mark Forums Read |
| Algorithms The source of algorithms for your project |
![]() |
| | LinkBack | Thread Tools | Display Modes |
| | #1 |
| Младенец Join Date: Aug 2006 Location: Odessa ukraine
Posts: 7
Rep Power: 0 Reputation:
10 | Морской бой ![]() Помогите с нахождением исходника для игры "Морской бой" на языке visual C++(только в консоле). Спасибо заранее . Может у кого-то был опыт в написании и сможет поделиться, буду премного благодарна!! |
| | |
| | #2 |
| Easy rider | Re: Морской бой U menya isxodnikov net (uveren chto na internete ix budet kucha), no yesli budut konkretnye voprosy po povodu implementacii, postni zdes'. |
| | |
| | #4 | |
| джаз-оркестр Join Date: Aug 2004 Location: америка
Posts: 16,224
Rep Power: 7 Reputation:
296 | Re: Морской бой Quote:
Code: class Board
{
public:
Board(int x, int y);
Board(int size);
~Board();
int len() { return length;}
int wid() { return width;}
bool isEmpty(int x, int y);
int get(int x, int y);
void set(int piece, int x, int y);
void remove(int x, int y);
private:
int length, width, *cells;
void reset();
};
-------------------------
// Board.cpp: implementation of the Board class.
//
//////////////////////////////////////////////////////////////////////
#include "Board.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
Board::Board(int x, int y): length(x), width(y), cells(NULL)
{
reset();
}
Board::Board(int size) : length(size), width(size), cells(NULL)
{
reset();
}
void Board::reset()
{
if (cells != NULL) delete [] cells;
cells = new int[length * width];
for(int i = 0; i < length * width; i++)
cells[i] = 0;
}
Board::~Board()
{
delete [] cells;
}
bool Board::isEmpty(int x, int y)
{
return !get(x, y);
}
int Board::get(int x, int y)
{
return cells[length * y + x];
}
void Board::set(int piece, int x, int y)
{
if (isEmpty(x, y)) cells[length * y + x] = piece;
}
void Board::remove(int x, int y)
{
cells[length * y + x] = 0;
}
----------------------------------
#include "Board.h"
#include <string>
#include <iostream>
#include <ctime>
using namespace std;
class BattleShip
{
public:
BattleShip(int gameSize) : sea(gameSize), score(0), ships(gameSize) { play(); };
void start();
void play();
void display(char x, int y);
int getScore() { return score; };
string strike(char x, int y);
private:
Board sea;
int score, ships;
};
---------------------------
// BattleShip.cpp: implementation of the BattleShip class.
//
//////////////////////////////////////////////////////////////////////
#include "BattleShip.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
string BattleShip::strike(char x, int y)
{
int col = x - 'a', row = y - 1;
score++;
if (sea.get(col, row) > 0)
return "Stupid Strike :)";
if (sea.get(col, row) < 0) {
sea.remove(col, row);
sea.set(10, col, row);
ships--;
return "One is Killed :(";
}
sea.set(1, col, row);
return "Try Again :/";
}
void BattleShip::start()
{
int col, row;
srand(time(0));
for (int ship = 1; ship <= sea.len(); ship++) {
do {
col = rand() % sea.len();
row = rand() % sea.wid();
} while (sea.get(col, row) < 0);
sea.set(-1, col, row);
}
}
void BattleShip::display(char x, int y)
{
string show = strike(x, y) + "\n\n";
for (int row = 0; row < sea.len(); row++) {
for (int col = 0; col < sea.wid(); col++) {
if (sea.get(col, row) < 0 || sea.isEmpty(col, row)) show += ". ";
else if (sea.get(col, row) > 1) show += "X ";
else show += "O ";
}
show += "\n";
}
cout << show << endl;
}
void BattleShip:: display()
{
char x;
int y;
start();
do {
cin >> x >> y;
display(x, y);
} while (ships > 0);
cout << "Your score is: " << getScore() << endl;
}
------------------------
#include "BattleShip.h"
void main()
{
BattleShip game(4);
}
__________________ | |
| | |
| | #5 |
| Дикообраз-безобраз | Re: Морской бой Вместо указателя на инт мона через вектор векторов держать безо всяких нью/делит. Плюс проверка на Нуль во время удаления не нужна - удаление Нуль указателя вполне в рамках правил.
__________________ Forza Alb-Violeţii. |
| | |
| | #6 | |
| джаз-оркестр Join Date: Aug 2004 Location: америка
Posts: 16,224
Rep Power: 7 Reputation:
296 | Re: Морской бой Quote:
просто когдла я е писал я не знал про вектора нифига это из моих прошлогодних домашних заданий для вводного курса в С
__________________ | |
| | |
| | #7 |
| Младенец Join Date: Aug 2006 Location: Odessa ukraine
Posts: 7
Rep Power: 0 Reputation:
10 | Re: Морской бой Да, еще раз спасибо за код игры, но вот есть один и более недочетов, а именно в header файле BattleShip.h описаны функции void play(); int getScore(); функция play() вызывается в конструкторе класса BattleShip, да все хорошо, но реализации этих функций нет, как нет. Кроме того, в классе том же BattleShip описана одна функция void display(char x, int x)жа в файле BattleShip.cpp вызывается кроме функции void display с этими параметрами, еще и функция void dislay()- без параметров. А как понимаете, это ambiguos, и ошибочка, так как есть описание функции без объявления. В общем, это так на первый взгляд, что я могла найти, в прочем еще так глубоко не просматривала, но все же верю, что мне Вы переслали, за что Вам все равно большое спасибо, недоконченный , неполный код, надеюсь, что все же смогу получить остальную часть, спасибо за помощь, очень помагаете!!! Буду ждать ответа, еще раз пасибки!!!Betty5 Last edited by Betty5 : Aug 3, 2006 at 05:27. |
| | |
![]() |
| Thread Tools | |
| Display Modes | |
| |
Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Интересные факты 2 | PartiZankA | General | 2 | Apr 2, 2006 08:13 |
| ЗАПИСКИ БОЕВОГО ДЕЛЬФИНА | DaNYer | Fun | 0 | Mar 22, 2005 04:17 |
| А ПРАВДА ЛИ, ЧТО СПЕРМАТАЗОИДЫ ВЫБИРАЮТСЯ ИЗ ПРЕЗЕРВАТИВА? | Gates | Fun | 1 | Nov 29, 2004 17:13 |
| Наступление на Багдад началось | Mono | News | 25 | Oct 21, 2004 18:54 |
| "...девочка лет пяти в красивом оранжевом платье" | groul | History and Politics | 3 | Apr 2, 2003 23:14 |