С Новым годом! Форум программистов, компьютерный форум, киберфорум
Бета-тестирование
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/26: Рейтинг темы: голосов - 26, средняя оценка - 4.85
54 / 24 / 5
Регистрация: 21.02.2016
Сообщений: 234
1

Шахматы online на php

12.04.2016, 12:10. Показов 5416. Ответов 101
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
16 часов делаю, на 12 апреля 13 часов сделано 40% кода,еще надо очередность ходов прописать,ходы записывать и выводить

посмотрите просто,для интереса,сделайте пробный ход

сразу формируется доска для вашего ip адреса,и я могу подключиться и делать ход на вашей доске

только ваш ip адрес может обнулить вашу доску,свои фигуры нельзя бить

но ходить пока можно куда попало,это не прописано

[del]
Миниатюры
Шахматы online на php  
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.04.2016, 12:10
Ответы с готовыми решениями:

Собираю группу программистов знающих PHP & MySQL, для создания новой online игры
Друзья, Я пришел с миром. Собираю группу программистов знающих PHP & MySQL, для создания новой...

Online шахматы: существуют ли?
кто-нить знает, существуют ли шахматы в которые можно поиграть с другом по инету? ну, т.е. там...

PHP game online
Я на самом начале самообучения программирования. Хочу спросить. В РНР можно сделать игрушку, где не...

Компилятор php online
нужно создать что то на подобие ресурса http://writecodeonline.com/php/ только как это сделать?

101
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,227
22.04.2016, 00:26 41
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от Detektor Посмотреть сообщение
Я не доучился,матрицы не изучал
чего там изучать то, это ж обычный массив
вот 3х3:
Цитата Сообщение от voral Посмотреть сообщение
PHP
1
2
3
4
5
6
7
8
9
$sample[0][0] = 1;
$sample[0][1] = 1;
$sample[0][2] = 1;
$sample[1][0] = 0;
$sample[1][1] = 0;
$sample[1][2] = 0;
$sample[2][0] = 0;
$sample[2][1] = 0;
$sample[2][2] = 0;
Добавлено через 3 минуты
Цитата Сообщение от voral Посмотреть сообщение
полудух, давайте замутим конкурс.
Создать процедуру, которая на вход принимает три параметра: откуда, докуда, фигура, цвет (белые считаем снизу, черные сверху)
откуда, докуда в шахматном формате буква и цифра. Например "a1"
фигура. Тут не суть важно. Как удобнее. (но, желательно, чтоб было понятно)
Функция проверяет валидность хода, без учета наличия других фигур. (считаем что на доске фигура только одна)
?
вообще никакого интереса разрабатывать никому ненужные бесплатные алгоритмы
в моей инфе подробно расписано, насколько мне это не интересно )
0
54 / 24 / 5
Регистрация: 21.02.2016
Сообщений: 234
22.04.2016, 01:07  [ТС] 42
Цитата Сообщение от voral Посмотреть сообщение
полудух, давайте замутим конкурс.
Создать процедуру, которая на вход принимает три параметра: откуда, докуда, фигура, цвет (белые считаем снизу, черные сверху)
откуда, докуда в шахматном формате буква и цифра. Например "a1"
фигура. Тут не суть важно. Как удобнее. (но, желательно, чтоб было понятно)

Функция проверяет валидность хода, без учета наличия других фигур. (считаем что на доске фигура только одна)

?
Прикольная головоломка! +64

Я бы сообразил через дня 3,как написать,но перепробовал бы 10 вариантов,пока не получится )

Классная задача

voral ,покажи свою игру написанную,или скриншот,интересно, ты такой спец )

Добавлено через 12 минут
! На голой доске стоит пешка на С2 , как надо составить матрицу если ходить можно вперед на 7 клеток?

$hod[3][1]=0;
$hod[3][2]=0;
$hod[3][3]=1;
$hod[3][4]=1;
$hod[3][5]=1;
$hod[3][6]=1;
$hod[3][7]=1;
$hod[3][8]=1;

так?

и как использовать такую матрицу для всех пешек ,типа A2,B2 ?

А если будет B7 ?

Не понял...
0
2712 / 1320 / 254
Регистрация: 16.03.2008
Сообщений: 6,104
Записей в блоге: 2
22.04.2016, 01:33 43
Цитата Сообщение от полудух Посмотреть сообщение
вообще никакого интереса разрабатывать никому ненужные бесплатные алгоритмы
в моей инфе подробно расписано, насколько мне это не интересно )
Дык просто ради спортивного интереса. Ну да ладно - особо не важно. Я сделал. Может объясняю плохо зачем такие матрицы, может по коду станет понятно. Написал скрипт который проверяет все ходы всех фигур с учетом цвета (но без учета остальных и без рокировки). Положи на GitHub

Добавлено через 4 минуты
Цитата Сообщение от Detektor Посмотреть сообщение
voral ,покажи свою игру написанную,или скриншот,интересно, ты такой спец
У меня с играми не складывается.
На PHP писал году в 2001.... Покер..... уже нету ни где его.... Технологии шагнули далече, да и опыта у меня тогда не было.... Там было просто ради интереса. Сервер писал недавно для соцсетевой игры, не взлетело, так как слишком много капвложений для запуска надо...
Денег и без игр заработать неплохо можно...

Добавлено через 1 минуту
Цитата Сообщение от Detektor Посмотреть сообщение
А если будет B7 ?
Не понял...
Попробуй изучить код, что я на gitHub выложил (ссылка выше). Там матрицы для всех фигур есть
1
54 / 24 / 5
Регистрация: 21.02.2016
Сообщений: 234
22.04.2016, 03:07  [ТС] 44
PHP
1
var_dump(Chess::checkMove('a1','a2',Chess::FIGURE_PAWN,false)); // можно
В конце внизу не понял,это проверка или выполнение?

Проверяет "если иду с а1 на а2 то пешке можно" ?

Или это и есть ход с а1 на а2,и даешь установку "можно" ?

Добавлено через 54 минуты
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
global $figure_d;
 
if($sh[$hod_shto]=='1') { $figure_d='1'; $color=true; } 
 
 
class Chess{
    const FIGURE_PAWN = 1; // пешка
    const FIGURE_BISHOP = 2; //слон
    const FIGURE_KNIGHT = 3; // конь
    const FIGURE_CASTLE = 4; // ладья
    const FIGURE_QUEEN = 5; // ферзь
    const FIGURE_KING = 6; //король
    
    /**
 
//////////////////
/////////////////
////////////////
 
<? 
 
// пытаемся ходить
 
 if($figure=='1') {  
                          var_dump(Chess::checkMove($hod_shto,$hod_kuda,Chess::FIGURE_PAWN,$color)); 
                                                                                                                                                        }
 
 
?>
а как этот bool(false) вытащить и использовать?

например if(bool==false) { echo 'Ход не допустила матрица'; $hod_one='1000'; $hod_two='1000'; }

тысяча это мой блокиратор хода,разрешается только до 99, всего 99 клеток
0
2712 / 1320 / 254
Регистрация: 16.03.2008
Сообщений: 6,104
Записей в блоге: 2
22.04.2016, 08:36 45
Цитата Сообщение от Detektor Посмотреть сообщение
В конце внизу не понял,это проверка или выполнение?
Это просто демонстрация использования.
Цитата Сообщение от Detektor Посмотреть сообщение
Проверяет "если иду с а1 на а2 то пешке можно" ?
Именно белой.
Цитата Сообщение от Detektor Посмотреть сообщение
Или это и есть ход с а1 на а2,и даешь установку "можно" ?
Проверка возможности. Функция возвращает истину если можно так ходить как заказывали (при помощи параметров).

Но! Этот код не полноценный.
- пешка может ходить и на два хода вперед при определенных условиях
- пешка ест по диагонали, т.е. не всегда такой ход доступен, как это описано в моем ходе
- есть рокировка
- не каждая фигура может прыгать через другую

Все это можно учесть, если обозначать правила в матрице не просто 1 и 0, но ввести и другие числа для задания правил.

Цитата Сообщение от Detektor Посмотреть сообщение
а как этот bool(false) вытащить и использовать?
Вам не хватает знаний в основах php... почитали бы вы их.
Этот код не под вашу задачу в том виде как вы ее делаете. Здесь одна единственная проверка на все фигуры.
соответственно ни какого $figure=='1' тут нет. Вы из своей $figure должны сделать две переменные: тип фигуры и цвет и передавать уже в мою ф-ию.
PHP
1
2
3
 if(Chess::checkMove(<указываем_ячейку_откуда>,<указываем_ячейку_куда>,<передаем_тип_фигур>,<передаем_цвет_фигуры>)) {
//  ход разрешен выполняем действия связанные с ходом
 }
Цитата Сообщение от Detektor Посмотреть сообщение
(bool==false)
Это вообще анекдот. bool - тип переменной, false - одно из значений для переменной типа bool (boolean)....
Начните ка все же с чтения учебников по предмету.
0
54 / 24 / 5
Регистрация: 21.02.2016
Сообщений: 234
22.04.2016, 17:08  [ТС] 46
идем дальше,я переделаю матрицы под доску 10х10,все цифры исправлю

и протестирую на 20ти ходах как блокирует ходы всякие,

если блокиратор будет работать - то отлично,ограничитель нужен на доске,

но как использовать возврат bool(false) пока не знаю,

я вообще вряд ли выучу и научусь сам программировать матрицы.Мне таланта не хватит...

если сделаю ход - то строка include ('class_matrix.php'); возвратит bool(false) и мне надо перехватить это событие и назначить $hod='0'; ,

и будет блокиратор
Миниатюры
Шахматы online на php  
0
54 / 24 / 5
Регистрация: 21.02.2016
Сообщений: 234
22.04.2016, 17:22  [ТС] 47
не воспитывай,

Form1.Visible=False;
Picture1.Visible=True;

я знаю это с 2006 года Пасьянс.exe

Книжки надо учить тем,кто не знает че такое int float global integer bool long

и че надо делать есть переменная вышла за границы integer ,максимальное значение примерно 999999999

бывает у людей бред,типа if($ddd!=false) - когда можно написать if($ddd==True) ,
Миниатюры
Шахматы online на php  
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,227
22.04.2016, 17:36 48
Цитата Сообщение от Detektor Посмотреть сообщение
и че надо делать есть переменная вышла за границы integer ,максимальное значение примерно 999999999
примерно 2147483647 или PHP_INT_MAX

Цитата Сообщение от Detektor Посмотреть сообщение
бывает у людей бред,типа if($ddd!=false) - когда можно написать if($ddd==True) ,
$ddd может быть false, а может быть 50 или 'string'
true там вообще может не быть, это же не C

для 10-летнего программиста у вас как-то маловато опыта и довольно странные алгоритмы
0
2712 / 1320 / 254
Регистрация: 16.03.2008
Сообщений: 6,104
Записей в блоге: 2
22.04.2016, 18:13 49
Цитата Сообщение от Detektor Посмотреть сообщение
я вообще вряд ли выучу и научусь сам программировать матрицы.Мне таланта не хватит...
при чем тут талант. Вам просто лень и скучно изучать основы. Какой еще "возврат bool(false)" ?
И матрицы тут совершенно не страшные (не те что в математике используют применяя всякие действия). Это обычный двумерный массив. Если вы не изучите основы программирования, то у вас ни чего толкового никогда не выйдет..

Вся инфа доступна в документации по PHP. Единственное "но". Если вы все же хотите изучать программирование в целом и в частности на PHP. То учите сразу PHP7. Там достаточно много серьезных изменений, (язык в лучшую сторону изменили). И если вы успеете привыкнуть к 5.6 и еще не "окрепнув" сунетесь на PHP7 головняк у вас будет.... Так что лучше сразу. И с основ.

Добавлено через 16 минут
Цитата Сообщение от Detektor Посмотреть сообщение
Книжки надо учить тем,кто не знает че такое int float global integer bool long
Это самое, извини но, глупое утверждение. Я с 87 года программирую, и не считаю, зазорным и неправильным читать книги по теме.

Цитата Сообщение от Detektor Посмотреть сообщение
не воспитывай,
Form1.Visible=False;
Picture1.Visible=True;
я знаю это с 2006 года
Ну если подход такой же как здесь.... то это ни о чем не говорит
Запустил... И в чем фишка? Подозреваю что основное "программирование" производилось путем переноски мышой объектов в редакторе форм.

Цитата Сообщение от полудух Посмотреть сообщение
примерно 2147483647 или PHP_INT_MAX
Кстати у меня 9223372036854775807. Зависит от платформы.

Цитата Сообщение от Detektor Посмотреть сообщение
бывает у людей бред,типа if($ddd!=false) - когда можно написать if($ddd==True) ,
Ну вы, пока, очень мало писали. А крупных проектов вообще не писали. Учитывая как вы относитесь к оформлению кода, то лучше бы спрашивали авторов почему оно так.

1. я думаю вы не сосем верно воспроизвели и речь идет о if ($ddd!==false) - почитайте знаки "=".... Вам правильно сказали. $ddd может оказаться массивом, или 0, или реально false.....

PHP
1
2
3
4
5
$ddd = 0;
if($ddd == 0) // верно
 
$ddd = 0;
if($ddd === false) // неверно
А кроме того такая запись может вызвана просто тем, что она получается более читабельной в данном контексте
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,227
22.04.2016, 18:16 50
Цитата Сообщение от voral Посмотреть сообщение
Кстати у меня 9223372036854775807. Зависит от платформы.
да у меня тоже 64 бита
но 32-битный MAX ближе к его 999999999
0
2712 / 1320 / 254
Регистрация: 16.03.2008
Сообщений: 6,104
Записей в блоге: 2
22.04.2016, 18:27 51
Detektor, пержде чем говорить, что вам не надо уже книги читать, и вы 6 лет "умеете создавать игры".
Почитайте про игру kkrieger весящую 96кб.... И поиграйте в нее. Осознаете где эта малявка, а где ваша гадалка...

Добавлено через 3 минуты
Цитата Сообщение от Detektor Посмотреть сообщение
если сделаю ход - то строка include ('class_matrix.php'); возвратит bool(false) и мне надо перехватить это событие и назначить $hod='0'; ,
Только заметил это..... Чего вы там натворили такое? Какой перехват? Какое bool(false)?
0
54 / 24 / 5
Регистрация: 21.02.2016
Сообщений: 234
22.04.2016, 18:37  [ТС] 52
как поймать возврат bool ?
куда заносится результат false?

var_dump(Chess::checkMove('a1','a2',Chess::FIGURE_PAWN,false)); // можно

false же не на пустом месте, переменная какая?

вопрос очень простой
0
2712 / 1320 / 254
Регистрация: 16.03.2008
Сообщений: 6,104
Записей в блоге: 2
22.04.2016, 19:00 53
Цитата Сообщение от Detektor Посмотреть сообщение
как поймать возврат bool ?
Можете присвоить переменной, может просто вызов метода сразу в условие поставить.
Цитата Сообщение от Detektor Посмотреть сообщение
куда заносится результат false?
Т.е. ваш вопрос "Куда заносится результат метода?" ? Ни кому не говорите, что вы с 2006 год программируете.
А если серьезно. Никуда - все зависит от вас.
Цитата Сообщение от Detektor Посмотреть сообщение
var_dump(Chess::checkMove('a1','a2',Chess::FIGURE_PAWN,false)); // можно
var_dump здесь просто ради демонстрации консоли (или браузере) что выдает функция. Это своего рода аналог метода print.
Пробуйте ответить на вопрос "Куда заносится результат команды
PHP
1
print "Hello";
Цитата Сообщение от Detektor Посмотреть сообщение
false же не на пустом месте, переменная какая?
Какую заведте та и будет. Учите матчасть. Раздел "функции".


Цитата Сообщение от Detektor Посмотреть сообщение
вопрос очень простой
Вот именно. Разжевать я вам его, конечно могу, убив свое время на написание статьи. Но зачем мне это, еси информации хоть отбавляй. И книжки есть... Вот на сколько я неюблю книжки их серии ".... для чайников".. Даже из этой серии вам поможет ответить на ваш вопрос.

Раз вы такие вопросы задаете - значит вы совсем не понимаете как работает даже ваша гадалка. Где ООП кругом и сплошь.
0
54 / 24 / 5
Регистрация: 21.02.2016
Сообщений: 234
22.04.2016, 20:18  [ТС] 54
PHP
1
2
 if(var_dump(Chess::checkMove($hod_shto,$hod_kuda,Chess::FIGURE_PAWN,$color))==bool(false)) { 
                                          echo 'No'; $hod_one='1000'; $hod_two='1000';  }
не работает...
0
2712 / 1320 / 254
Регистрация: 16.03.2008
Сообщений: 6,104
Записей в блоге: 2
22.04.2016, 22:56 55
твою ж дивизию. Я вам ссылку дал на доку про var_dump, написал что var_dump это почти как print, bool(false) вообще приводит значение к типу boolean, при этом вы хотите перевести значение, которое и так boolean......

иными словами вы вообще ни чего не понимаете что делаете.

При этом я даже писал вам уже:
PHP
1
2
3
4
5
6
7
8
if(Chess::checkMove($hod_shto,$hod_kuda,$figure_type,$figure_color)) 
{ 
  //код которой должен выполняться если ход разрешен
}
else
{
  //код которой должен выполняться если ход запрещен
}
Все. Это было мое последнее объяснение в этой теме. Программировать вы не умеете абсолютно. Мой вам совет, начните с чтения букварей.

Цитата Сообщение от Detektor Посмотреть сообщение
Книжки надо учить тем,кто не знает че такое int float global integer bool long
Судя по вашему посту перед этим моим. (да и вообще по всей теме). Вы относитесь именно к такой категории кто не знает что такое " int float global integer bool long".

Добавлено через 2 минуты
Цитата Сообщение от Detektor Посмотреть сообщение
PHP
1
2
 if(var_dump(Chess::checkMove($hod_shto,$hod_kuda,Chess::FIGURE_PAWN,$color))==bool(false)) { 
                                          echo 'No'; $hod_one='1000'; $hod_two='1000';  }
не работает...
Это вообще юмор.... Особенно если добавить

Цитата Сообщение от Detektor Посмотреть сообщение
не воспитывай,
Form1.Visible=False;
Picture1.Visible=True;
я знаю это с 2006 года
1
54 / 24 / 5
Регистрация: 21.02.2016
Сообщений: 234
23.04.2016, 01:11  [ТС] 56
не признает ходы с 10 клетки,

белые пешка,слон,ладья,ферзь,черная пешка - фильтруются по матрице,ходы куда попало блокирует

а 10 ряд с черными ладьями и конями не разрешает ходить вообще

class_matrix_test.txt

толи из за цвета,толи матрицу не так дописал... было 15х15 ,сделал 19х19
0
2712 / 1320 / 254
Регистрация: 16.03.2008
Сообщений: 6,104
Записей в блоге: 2
23.04.2016, 02:07 57
Блиныч. Забейте вы на 10х10.... У вас без того все плохо
1.не надо мешать все одну кучу. У вас дожен быть файл такой:
HTML5
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
<?
require_once('chess_class.php'); 
global $figure_d;
 
// код примечания 1 от сих
if($sh[$hod_one]=='1') { $figure_d='1'; $color=true; } 
if($sh[$hod_one]=='2') { $figure_d='2'; $color=true; } 
if($sh[$hod_one]=='3') { $figure_d='3'; $color=true; } 
if($sh[$hod_one]=='4') { $figure_d='4'; $color=true; } 
if($sh[$hod_one]=='6') { $figure_d='6'; $color=true; } 
if($sh[$hod_one]=='5') { $figure_d='5'; $color=true; } 
 
if($sh[$hod_one]=='11') { $figure_d='1'; $color=false; } 
if($sh[$hod_one]=='12') { $figure_d='2'; $color=false; } 
if($sh[$hod_one]=='13') { $figure_d='3'; $color=false; } 
if($sh[$hod_one]=='14') { $figure_d='4'; $color=false; } 
if($sh[$hod_one]=='16') { $figure_d='6'; $color=false; } 
if($sh[$hod_one]=='15') { $figure_d='5'; $color=false; } 
// код примечания 1 до сих
 
// код примечания 2 от сих
if($figure_d>'0') {
    echo '<br><br>sh[$hod_one] = '.$sh[$hod_one];
    echo '&nbsp;&nbsp;$hod_shto = '.$hod_shto;
    echo '&nbsp;&nbsp;$hod_kuda = '.$hod_kuda;
}
// код примечания 3 от сих
 
 if($figure_d=='1') {  
                          if(Chess::checkMove($hod_shto,$hod_kuda,Chess::FIGURE_PAWN,$color)) {  echo '<br><br>Ход пешки '; } else {   echo '<br><br>Матрица запрещает не правильный ход пешки'; $hod_one='1000'; $hod_two='1000';  }
                                                                                                                                                       }
 
 if($figure_d=='2') {  
                          if(Chess::checkMove($hod_shto,$hod_kuda,Chess::FIGURE_BISHOP,$color)) { echo '<br><br>Ход туры '; } else {  echo '<br><br>Матрица запрещает не правильный ход туры'; $hod_one='1000'; $hod_two='1000';  }
                                                                                                                                                       }
 
 if($figure_d=='3') {  
                          if(Chess::checkMove($hod_shto,$hod_kuda,Chess::FIGURE_KNIGHT,$color)) {   echo '<br><br>Ход коня '; } else {  echo '<br><br>Матрица запрещает не правильный ход коня'; $hod_one='1000'; $hod_two='1000';  }
                                                                                                                                                       }
 
 if($figure_d=='4') {  
                          if(Chess::checkMove($hod_shto,$hod_kuda,Chess::FIGURE_CASTLE,$color)) {   echo '<br><br>Ход офицера '; } else {  echo '<br><br>Матрица запрещает не правильный ход офицера'; $hod_one='1000'; $hod_two='1000';  }
                                                                                                                                                       }
 
 if($figure_d=='5') {  
                          if(Chess::checkMove($hod_shto,$hod_kuda,Chess::FIGURE_QUEEN,$color)) {  echo '<br><br>Ход ферзя '; } else {   echo '<br><br>Матрица запрещает не правильный ход ферзя'; $hod_one='1000'; $hod_two='1000';  }
                                                                                                                                                       }
 
 if($figure_d=='6') {  
                          if(Chess::checkMove($hod_shto,$hod_kuda,Chess::FIGURE_KING,$color)) {  echo '<br><br>Ход короля '; } else {   echo '<br><br>Матрица запрещает не правильный ход короля'; $hod_one='1000'; $hod_two='1000';  }
// код примечания 3 до сих
?>
Примечание 1

Для чего вы устраиваете каждый раз столько проверок? Допустим $sh[$hod_one]='1'. Первое условие отработало нахрена проверять не равно ли оно 2 ?
Для этого есть вполне адекватные конструкции языка
PHP
1
2
3
4
5
if($sh[$hod_one]=='1') { $figure_d='1'; $color=true; } 
elseif($sh[$hod_one]=='2') { $figure_d='2'; $color=true; } 
elseif($sh[$hod_one]=='3') { $figure_d='3'; $color=true; } 
elseif($sh[$hod_one]=='4') { $figure_d='4'; $color=true; } 
/// и так далее
или
PHP
1
2
3
4
5
6
7
8
9
10
11
12
 switch ($sh[$hod_one])
 {
    case '1':
        $figure_d=1; 
        $color=true;
        break;
    case '2':
        $figure_d=2; 
        $color=true;
        break;
    // итак далее
 }
Более коротко без вереницы условий
PHP
1
2
3
4
5
6
7
8
9
10
11
$currentFigure = intval($sh[$hod_one]);
if ($currentFigure < 10)
{
    $figure_d=$currentFigure; 
    $color=true;
}
else
{
    $figure_d=$currentFigure - 10; 
    $color=false;
}
И еще вариант массив преобразований
PHP
1
2
3
4
5
6
7
8
9
    $arProxy = array(
        '1' => array(Chess::FIGURE_PAWN,true),
        '2' => array(Chess::FIGURE_BISHOP,true),
/// и так далее
        '15' => array(Chess::FIGURE_QUEEN,false),
        '16' => array(Chess::FIGURE_KING,false)
    );
    $figure_d=$arProxy[$sh[$hod_one]][0];
    $color=$arProxy[$sh[$hod_one]][1];
Примечание 2
<br>, &nbbr; - рядами это моветон изучайте css

Примечание 3

А здесь вообще наколбасили масла маслянного. достаточно одной строчки

PHP
1
if(Chess::checkMove($hod_shto,$hod_kuda,$figure_d,$color)) {  echo '<br><br>Ход '; } else {   echo '<br><br>Матрица запрещает не правильный ход'; $hod_one='1000'; $hod_two='1000';  }
Короче читать букварь тему условные операторы

Добавлено через 9 минут
Вот накраяняк так..... Но по идее весь проект вам надо переделать по уму почитав книжки
PHP/HTML
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
<?
require_once('chess_class.php'); 
global $figure_d;
 
switch($sh[$hod_one])
{
    case '1':
        $figure_d = Chess::FIGURE_PAWN; $color = true; $name = 'пешки';
        break;
    case '2':
        $figure_d = Chess::FIGURE_BISHOP; $color = true; $name = 'туры';
        break;
    case '3':
        $figure_d = Chess::FIGURE_KNIGHT; $color = true;$name = 'коня';
        break;
    case '4':
        $figure_d = Chess::FIGURE_CASTLE;   $color = true;  $name = 'офицера';
        break;
    case '5':
        $figure_d = Chess::FIGURE_QUEEN; $color = true; $name = 'ферзя';
        break;
    case '6':
        $figure_d = Chess::FIGURE_KING; $color = true; $name = 'короля';
        break;
    case '11':
        $figure_d = Chess::FIGURE_PAWN; $color = false; $name = 'пешки';
        break;
    case '12':
        $figure_d = Chess::FIGURE_BISHOP; $color = false; $name = 'туры';
        break;
    case '13':
        $figure_d = Chess::FIGURE_KNIGHT; $color = false;$name = 'коня';
        break;
    case '14':
        $figure_d = Chess::FIGURE_CASTLE;   $color = false; $name = 'офицера';
        break;
    case '15':
        $figure_d = Chess::FIGURE_QUEEN; $color = false; $name = 'ферзя';
        break;
    case '16':
        $figure_d = Chess::FIGURE_KING; $color = false; $name = 'короля';
        break;
}
 
if($figure_d>'0') {
    echo '<br><br>sh[$hod_one] = '.$sh[$hod_one];
    echo '&nbsp;&nbsp;$hod_shto = '.$hod_shto;
    echo '&nbsp;&nbsp;$hod_kuda = '.$hod_kuda;
}
 
if(Chess::checkMove($hod_shto,$hod_kuda,$figure_d,$color)) 
{
    echo '<br><br>Ход '.$name;
}
else 
{   
    echo '<br><br>Матрица запрещает не правильный ход '.$name; 
    $hod_one='1000'; 
    $hod_two='1000';  
}
?>
0
54 / 24 / 5
Регистрация: 21.02.2016
Сообщений: 234
23.04.2016, 13:11  [ТС] 58
да понятно психологически,ты в 4 раз зачмырить хочешь,типа мои коды никудышные...

Я думаю,толи матрица 19х19 не правильно,толи бракует $color, толи
это private static $proxy = array('A'=>0,'B'=>1,'C'=>2,'D'=>3,'E'=>4,'F'=>5,'G'=>6,'H'=>7,'I'=>8,'K'=>9);
не правильно прописал

может под вечер надумаю,торопиться некуда,я любитель программист,для себя пишу и кайфую от процесса,
есть план сделать такую доску 12х12 клеток,полный аналог но 12х12

доска 8х8 это для детей,я вырос из такой доски
0
2712 / 1320 / 254
Регистрация: 16.03.2008
Сообщений: 6,104
Записей в блоге: 2
23.04.2016, 14:45 59
Цитата Сообщение от Detektor Посмотреть сообщение
да понятно психологически,ты в 4 раз зачмырить хочешь,типа мои коды никудышные...
Ты не правильно меня понял, пытался хоть как то довести мысль, что подход к программированию у тебя очень плохой. сам себе трудности создаешь. Плохо понимая что такое метод/функция, не до конца понимая как пользоваться условными операторами - толкового ни чего не сделаешь.

Цитата Сообщение от Detektor Посмотреть сообщение
я любитель программист,для себя пишу и кайфую от процесса,
у нас разные понятия о "процессе". Я когда пишу получая "кайф от процесса" упор делаю на красивый, лаконичный код. Когда по принципу "так сойдет"..... это что то другое.

Цитата Сообщение от Detektor Посмотреть сообщение
доска 8х8 это для детей,я вырос из такой доски
ну ну..... Только с точки зрения программирования (если все грамотно спроектировано и реализовано, а, главное, программист понимает досканально каждую строчку кода) доска что 3x3 что 1000х1000 абсолютно одинаковые задачи. Размерность- всего лишь входной параметр. Сделай так чтоб твой код был настраиваемым. Ставишь
$size=3 в начале и он работает с доской 3 на 3. ставишь 5 без переделки кода все работает.

"книги для тех кто не знает int float.." , "доска 8х8 это для детей,я вырос из такой доски" - это все понты.....

Я тебе скинул ссылку на игру. Вот такую игру сделать уместив ее в 96 кб.. Вот это реально кайф. А сделать игру весом в мегабайты, которая тормозит без причины и глючит... сомнительное удовольствие, а ведь просто то надо было изучить внимательно основы программирования.


Еще с доинтернетовских времен (когда тусовались в FIDONet) была такая(многократно подтвержденная мысль).
Любитель или будущий профи тут не важно.

Есть чайники. Через это все проходят. Это нормально. Чайник всегда может вырасти в профи. Но с некоторыми, на определенном этапе случается беда. Они решают, что они все знают, больше ни чего изучать не надо... И становятся ламерами. Ламер это все, это тупик.
Вы ж решились выложить код на обозрение, вам по кайфу, что над ним можно смеяться? Вы ставили на обозрение работы, которые тормозят и не слишком функциональны. В чем кайф?
Не становить ламером - самому будет неприятно.

Что до "я самоучка".Я тоже.... Со школы занимаюсь (как появился первый комп на станции юных пионеров), но почти до конца института учился и рассчитывал стать энергетиком... Да ввязая в научную работу связанную и с энергетикой и с программированием. Как итог сразу после института стал админом. А потом разработчиком.

Добавлено через 1 минуту
чайнику помочь иногда в радость, ламеру - пустая трата времени.
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,227
23.04.2016, 14:52 60
кому вы это всё пишете?
чел пытается скрестить своего непотребного ежа с вашим питоном
в результате сношается с колючей проволокой, плачет, но продолжает всё знать, городить огороды, нести ахинею и никого не слушать
и вообще:
Цитата Сообщение от voral Посмотреть сообщение
Все. Это было мое последнее объяснение в этой теме.
мужик сказал - мужик сделал
0
23.04.2016, 14:52
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.04.2016, 14:52
Помогаю со студенческими работами здесь

Можно ли создать online- игру на PHP?
Можно ли создать online- игру на PHP? Или без других технологий не обойтись?

Шахматы
На любую клетку шахматной доски поставить 2 ферзя. Поля, находящиеся под угрозой ферзя, заполнить...

Шахматы
На игровом поле 10x10 в правом нижнем углу появляется шахматная фигура. Игрок должен переместить ее...

Шахматы
Нужен исходный код шахмат, для игры ИИ + человек зачем нужен: пишу программу к роботу, который...


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

Или воспользуйтесь поиском по форуму:
60
Закрытая тема Создать тему
Новые блоги и статьи
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution прилагаю файл архива проекта Gowin Eda и снимок. Восьмибитный счётчик из сумматора+ генератор сигнала согласования+ стартер fast регистров. Файлы прилагаю. . . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
Как создать нейросеть для генерации картинок на Python
InfoMaster 12.01.2025
Генерация изображений с помощью искусственных нейронных сетей стала одним из наиболее захватывающих направлений в области компьютерного зрения и машинного обучения. В этой статье мы рассмотрим. . .
Создание нейросети для генерации текста на Python
InfoMaster 12.01.2025
Нейросети, или искусственные нейронные сети, представляют собой модели машинного обучения, вдохновленные работой человеческого мозга. Они состоят из множества взаимосвязанных узлов, или "нейронов",. . .
Как создать нейросеть распознавания изображений на Python
InfoMaster 12.01.2025
Введение в распознавание изображений с помощью нейросетей Распознавание изображений с помощью нейронных сетей стало одним из самых впечатляющих достижений в области искусственного интеллекта. Эта. . .
Основы искуственного интеллекта
InfoMaster 12.01.2025
Искусственный интеллект (ИИ) представляет собой одну из наиболее динамично развивающихся областей современной науки и технологий. В широком смысле под искусственным интеллектом понимается способность. . .
Python и нейросети
InfoMaster 12.01.2025
Искусственные нейронные сети стали неотъемлемой частью современных технологий, революционизировав множество областей - от медицинской диагностики до автономных транспортных средств. Python, благодаря. . .
Python в машинном обучении
InfoMaster 12.01.2025
Python стал неотъемлемой частью современного машинного обучения, завоевав позицию ведущего языка программирования в этой области. Его популярность обусловлена несколькими ключевыми факторами, которые. . .
Создание UI на Python с TKinter
InfoMaster 12.01.2025
TKinter — это одна из наиболее популярных библиотек для создания графических интерфейсов пользователей (GUI) в языке программирования Python. TKinter входит в стандартную библиотеку Python, что. . .
HTML5 в разработке мобильных приложений
InfoMaster 12.01.2025
Введение: Обзор роли HTML5 в мобильной разработке В современном мире мобильных технологий HTML5 стал ключевым инструментом для разработки кроссплатформенных приложений. Эта технология произвела. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru