Форум программистов, компьютерный форум CyberForum.ru

Ход коня по шахматной доске случайным образом - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Обработка записей (список учеников имеет следующую структуру: фамилия – номер школы – число баллов по ЕГЭ – оценка) http://www.cyberforum.ru/cpp-beginners/thread884939.html
Разработать и отладить программу обработки записей. Предусмотреть: - ввод данных - вывод результатов (на экран в виде таблицы и в файл) Задача: Список учеников имеет следующую структуру: фамилия – номер школы – число баллов по ЕГЭ (от 0 до 100) – оценка. При вводе числа баллов рассчитайте оценку (до 40 баллов – «2», 40-59 баллов – «3», 60-89 баллов – «4», 90-100 баллов – «5») и...
C++ Прямые на плоскости(С++) Доброго времени суток господа. Помогите пожалуйста написать эту задачку в С++. Сам с этой задачей пока не разбирался, времени нету, а задач много :cry: (сам пока другими разбираюсь :pardon:) Прямая на плоскости может быть задано уравнением ax+by+c=0, где a и b одновременно не равны нулю. Будем рассматривать прямые только с целыми коэффициентами a,b,c.Пусть даны коэффициенты нескольких прямых:... http://www.cyberforum.ru/cpp-beginners/thread884925.html
void в проекте на c++ C++
Создаю проект, создал модули состоящие из текста! пытаюсь объединить все в одном модуле вывод ошибку! что нужно исправить вот код #include <iostream> #include <stdio.h> #define CASE using namespace std; void arp (); void ipconfig (); void getmac (); void nbtstat (); void netsh ();
написать такой класс, который представляет собой двоичное число C++
не могу справиться вот с этим: написать такой класс, который представляет собой двоичное число. биты держит в виде объекта std::vector <bool>. написать для этого класса следующие операции: слож, выч, умнож, и битовые операции 'и' и 'или' (числа могут быть разной длины, в этом случае они выравниваются по младшему(правому) биту) помогите пожалуйста кто чем может. Хотя бы с чего начать
C++ Найти все целые числа из промежутка от 300 до 600, у которых сумма делителей кратна 10 (Netbeans) http://www.cyberforum.ru/cpp-beginners/thread884854.html
Ребят, помогите пожалуйста написать программу для данной задачи: Найти все целые числа из промежутка от 300 до 600, у которых сумма делителей кратна 10. Никак не получается:( Либо ошибку выдает либо ответ несоответствующий условию выходит.
C++ Выполнить сортировку одномерного массива X(100) методом бинарных вставок Здравствуйте уважаемые пользователи форума, прошу составить программу в с++ просто нужно сдать программу эту через 2 дня подробнее

Показать сообщение отдельно
Мимино
 Аватар для Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
30.05.2013, 21:07     Ход коня по шахматной доске случайным образом
Цитата Сообщение от undertacker Посмотреть сообщение
Мимино,блин, видать ты меня не понял. Мне необходимо не циклом, а именно через rand()....
Вот с rand()
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include "stdafx.h"
#include <iostream>
#include <iomanip>
using namespace std;
 
const int hor = 8, ver = 8;
 
void boardPrint(int [][ver], int);
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int board[hor][ver] = {0};
    int horizontal[hor] = {2, 1, -1, -2, -2, -1, 1, 2};
    int vertical[ver] = {-1, -2, -2, -1, 1, 2, 2, 1};
    int currentRow, currentColumn, countMove = 1, moveNumber;
    bool status = false;
 
    while (status == false)
    {
        cout << "Введите текущие координаты коня через пробел ([строка],[столбец])(0-7): ";
        cin >> currentRow >> currentColumn;
        if (currentRow < 8 && currentRow >=0 && currentColumn < 8 && currentColumn >=0)
            status = true;
        else
            cout << "Таких координат не существует. Попробуейте снова." << endl;
    }
 
    for (int move = 1; move <= 64; move++)
    {
        board[currentRow][currentColumn] = move;
        status = false;
 
        for (int j = 0; j < hor; j++)
            if (currentRow + vertical[j] < 8 && currentRow + vertical[j] >=0 
                && currentColumn + horizontal[j] < 8 && currentColumn + horizontal[j] >=0 
                && board[currentRow + vertical[j]][currentColumn + horizontal[j]] == 0)
            {
                    status = true;
                    break;
            }
 
        while (status == true)
        {
            moveNumber = rand() % 8;
            if (currentRow + vertical[moveNumber] < 8 && currentRow + vertical[moveNumber] >=0 
                && currentColumn + horizontal[moveNumber] < 8 && currentColumn + horizontal[moveNumber] >=0 
                && board[currentRow + vertical[moveNumber]][currentColumn + horizontal[moveNumber]] == 0)
                {
                    currentRow += vertical[moveNumber];
                    currentColumn += horizontal[moveNumber];
                    countMove++;
                    break;
                }
        }
 
        if (status == false)
            break;
    }
 
    cout << endl << "Сделано ходов: " << countMove << endl << endl;
    boardPrint(board, hor);
    system("pause");
    return 0;
}
 
 
void boardPrint(int b[][ver], int horiz)
{
    for (int i = 0; i < horiz; i++)
    {
        for (int j = 0; j < horiz; j++)
            cout << setw(4) << b[i][j];
        cout << endl << endl;
    }
}
 
Текущее время: 03:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru