powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) из JS в PHP
5 сообщений из 5, страница 1 из 1
(PHP) из JS в PHP
    #38762893
Фотография YuriyB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добрый день

вот этот код

Код: javascript
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.
Array.prototype.shuffle = function() {var tmp, i, j;	for (i = this.length-1; i > 0; i--) {j = Math.floor(Math.random() * i);tmp = this[i];this[i] = this[j];this[j] = tmp;}};

function randInt(m, n) {return Math.floor(Math.random() * (n-m+1)) + m;}
var sudoku = new Array(9);

function generateSudoku() {
	var i, j;
	for (i=0; i<9; i++) {
		sudoku[i] = new Array(9);
		for (j=0; j<9; j++) {sudoku[i][j] = j+1;}
	} 
	sudoku[0].shuffle();
	for (i=0; i<3; i++) {		
		sudoku[i*3] = sudoku[0].slice(-i).concat(sudoku[0].slice(0,-i));
		sudoku[i*3+1] = sudoku[i*3].slice(6).concat(sudoku[i*3].slice(0,6));
		sudoku[i*3+2] = sudoku[i*3].slice(3).concat(sudoku[i*3].slice(0,3));
	}
	var tmp;
	for (i=0; i<3; i++) {
		r1 = randInt(i*3, i*3+2);
		r2 = randInt(i*3, i*3+2);
		r3 = randInt(i*3, i*3+2);
		r4 = randInt(i*3, i*3+2);
		tmp = sudoku[r1];
		sudoku[r1] = sudoku[r2];
		sudoku[r2] = tmp;var tmp2;
		for (j=0; j<9; j++) {tmp2 = sudoku[j][r3];sudoku[j][r3] = sudoku[j][r4];sudoku[j][r4] = tmp2;}					
	}
}



я перевел в PHP

Код: 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.
$s = array();

	for ($i=0; $i<9; $i++) 
	{
		for ($j=0; $j<9; $j++) 
		{
			$s[$i][$j] = $j+1;
		}
	}
	shuffle($s[0]); // sort 1 row
	for ($i=0; $i<3; $i++) 
	{
		//0, not doing
		//1 - last + rest 0 > 3
		//,2   2 last + rest > 6                           
		$s[$i*3]   = array_merge( array_slice( $s[0], -$i), array_slice( $s[0], 0, -$i));//  i 0,3,6
		//print_r($s[$i*3]);
		$s[$i*3+1] = array_merge( array_slice( $s[$i*3], 6), array_slice( $s[$i*3], 0,6));// i 1,4,7
		//print_r($s[$i*3+1]);die;
		$s[$i*3+2] = array_merge( array_slice( $s[$i*3], 3), array_slice( $s[$i*3], 0,3));// i 2,5,8
	}

	for ($i=0; $i<3; $i++) 
	{
		$r1 = rand($i*3, $i*3+2);
		$r2 = rand($i*3, $i*3+2);
		$r3 = rand($i*3, $i*3+2);
		$r4 = rand($i*3, $i*3+2);
		$tmp = $s[$r1];
		$s[$r1] = $s[$r2];
		$s[r2] = $tmp;
		for ($j=0; $j<9; $j++) 
		{
			$tmp2 = $s[$j][$r3];
			$s[$j][$r3] = $s[$j][$r4];
			$s[$j][$r4] = $tmp2;
		}
	}



но он работает не совсем так как JS код.

помогите найти "неточность" в перевроде *?
...
Рейтинг: 0 / 0
(PHP) из JS в PHP
    #38763678
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuriyBно он работает не совсем так как JS код.
что Вы имеете в виду
...
Рейтинг: 0 / 0
(PHP) из JS в PHP
    #38763723
Фотография YuriyB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnogu,


SharuPoNemnoguYuriyBно он работает не совсем так как JS код.
что Вы имеете в виду

JS генерирует правильны судоку т е
заполнить свободные клетки цифрами от 1 до 9 так, чтобы в каждой строке, в каждом столбце и в каждом малом квадрате 3×3 каждая цифра встречалась бы только один раз.
а PHP нет . в PHP версии встречаются иногда одинаковые цифры в столбцах или строках
...
Рейтинг: 0 / 0
(PHP) из JS в PHP
    #38763725
Фотография YuriyB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnogu,
SharuPoNemnoguчто Вы имеете в виду

выходные данные (т е массив) должен быть одинаков
...
Рейтинг: 0 / 0
(PHP) из JS в PHP
    #38763964
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuriyB,

скорее всего отличие в shuffle, randint тоже самописная. И если там сплоной рандом как выходные данные могут быть одинаковыми.

пробовали построчно выводить и там и там что получается? Отловите в какой строке не так отрабатывает.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) из JS в PHP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]