1 / 1 / 0
Регистрация: 21.06.2016
Сообщений: 30
1

Помогите, пожалуйста. Где-то затупил и не могу найти ошибку

28.07.2018, 15:34. Показов 804. Ответов 2

PHP
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
$this->first_player->clear();
        $this->second_player->clear();
        $this->first_player->push($first_player_cards);
        $this->second_player->push($second_player_cards);
        $count = 0;
        while (
            !$this->first_player->isEmpty() && 
            !$this->second_player->isEmpty() && 
            $count < 100
        ) {
            ++$count;
            list($first, $second) = [$this->first_player->shift(), $this->second_player->shift()];
            var_dump($count);
            switch ($first <=> $second) {
                case (1) :
                    $this->first_player->push($first, $second);
                    break;
                case (-1) :
                    $this->second_player->push($second, $first);
                    break;
            }
        }
        if (($this->first_player->isEmpty() && $this->second_player->isEmpty()) || ($count >= 100)) {
            return 'Botva!';
        } elseif ($this->second_player->isEmpty()) {
            return "First player. Round: $count";
        } elseif ($this->first_player->isEmpty()) {
            return "Second player. Round: $count";
        }
Проблема в том что $count не инкрементируется. для 1 итерации цикла $count = 1, а для второго 1.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.07.2018, 15:34
Ответы с готовыми решениями:

помогите пожалуйста с графиком! не могу найти ошибку!!необходимо чтоб кривая проходила по точкам!
unit Unit4; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

Пожалуйста помогите, найдите ошибку, не могу вывести В MEMO 2
вот программка: procedure TForm1.Button1Click(Sender: TObject); var max,min,i,n,j,l,z:integer;...

Не могу понять где и что не правильно? Помогите, пожалуйста.
как есть у меня ошибка . не могу понять где ? и что не правильно , помогите пожалуйста . long...

Ткните, пожалуйста, носом в ошибку. я не могу понять где, что не так
#include &lt;iostream&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;RUSSIAN&quot;); cout...

2
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
28.07.2018, 16:39 2
Лучший ответ Сообщение было отмечено randll32 как решение

Решение

Не может быть, где все это происходит? Скорей всего это уже новый цикл у вас начался, а вы думаете, что это вторая итерация того же.
1
1 / 1 / 0
Регистрация: 21.06.2016
Сообщений: 30
28.07.2018, 17:54  [ТС] 3
PHP
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
<?php
 
namespace App;
 
use Ds\Deque;
 
class Drunkard
{
    private $first_player;
    private $second_player;
 
    public function __construct()
    {
        $this->first_player = new Deque();
        $this->second_player = new Deque();
    }
 
    public function run(array $first_player_cards, array $second_player_cards)
    {
        $this->first_player->clear();
        $this->second_player->clear();
        $this->first_player->push($first_player_cards);
        $this->second_player->push($second_player_cards);
        $count = 0;
        while (
            !$this->first_player->isEmpty() && 
            !$this->second_player->isEmpty() && 
            $count < 100
        ) {
            ++$count;
            list($first, $second) = [$this->first_player->shift(), $this->second_player->shift()];
            var_dump($count);
            switch ($first <=> $second) {
                case (1) :
                    $this->first_player->push($first, $second);
                    break;
                case (-1) :
                    $this->second_player->push($second, $first);
                    break;
            }
        }
        if (($this->first_player->isEmpty() && $this->second_player->isEmpty()) || ($count >= 100)) {
            return 'Botva!';
        } elseif ($this->second_player->isEmpty()) {
            return "First player. Round: $count";
        } elseif ($this->first_player->isEmpty()) {
            return "Second player. Round: $count";
        }
    }
 
}
$game = new Drunkard();
$result = $game->run([1, 2], [3, 2]);
Добавлено через 52 минуты

надо так заполнять очереди:

PHP
1
2
$this->first_player->push(...$first_player_cards);
$this->second_player->push(...$second_player_cards);
или
PHP
1
2
$this->first_player = new Deque($first_player_cards);
$this->second_player = new Deque($second_player_cards);
думаю тему можно закрывать
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.07.2018, 17:54
Помогаю со студенческими работами здесь

Симплекс-метод. Не могу сообразить где я ошибся. Помогите с поиском ошибки, пожалуйста
Безрезультатно пытаюсь помочь дочери. В делфи не силен вообще, признаю. Может не имеет значения,...

Помогите, пожалуйста найти ошибку
Uvx и Uvix считает правильно, а вот с t, какие-то проблемы))) вообще по нулям не понимаю почему....

помогите найти ошибку пожалуйста)
if (specialnost-&gt;State==0) //Выбор режима – добавление или изменение {//Передача параметров...

помогите,пожалуйста,найти ошибку.
Дано выражение: z=tg^5ln|arccos8x|, тангенс в пятой степени. записываю программу в Паскале :...

Помогите, пожалуйста, найти ошибку.
Помогите, пожалуйста, найти ошибку. Краткое описание устройства: мега328 работает в паре с сим900....

Помогите пожалуйста найти ошибку!!!!
procedure TForm1.Button1Click(Sender: TObject); Var P,p1:extended; Var i: integer; begin...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru