powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Баловство. Быки-коровы
4 сообщений из 4, страница 1 из 1
Баловство. Быки-коровы
    #37303556
MaWr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Логическая игрушкаPF  ;
  n List,quit,CNumber,HNumber,First,win,q,CurrMove,Cur,i,List1,List2
  n Len,AIMethod
  s Len=4  ;Количество цифр в ходе
  s AIMethod=1  ;Вариант алгоритма вычисления хода
  s List="^mtemp(""PF"",$J)"
  s List1="^mtemp(""PFO"",$J)"
  s List2="^mtemp(""PFT"",$J)"
  k @List
  d InitList
  s quit=0
  f  d  q:quit
  .k CurrMove
  .d RandomList
  .s CNumber=@List@($r(@List)+1)
  .s First=$$YesNo("You first?")
  .s HNumber=$$EntNum("Enter your number: ")
  .s win=0,CurrMove=0
  .i First s win=$$HMove()
  .i 'win f  d  q:win
  ..w !!,"Current moves: ",!,?11,"You "_$$p(Len)_"|B|C|Comp"_$$p(Len)_"|B|C|",!
  ..s i="" f  s i=$o(CurrMove(i)) q:i=""  d
  ...w ?11,$tr($g(CurrMove(i,"H")),",","|"),?19,"|",$tr($g(CurrMove(i,"C")),",","|"),!
  ..w !
  ..s win=$$CMove() q:win
  ..s win=$$HMove() q:win
  .w !,$s(win=1:"You win!!!",1:"You lose"),!
  .s quit='$$YesNo("Play again?")
  k @List
  q
CMove()  ;
  i AIMethod=2 q $$CMove1()
  n Move,ret,i,j,q
  s Move=""
  i CurrMove=0 d
  .s Move=@List@(1)
  .s Cur=1
  e  d
  .s i=Cur f  s i=$o(@List@(i)) q:i=""  d  q:Move'=""
  ..s q=0
  ..s j="" f  s j=$o(CurrMove(j)) q:j=""  d  q:q
  ...q:'$d(CurrMove(j,"C"))
  ...i $$CheckMove(@List@(i),$p(CurrMove(j,"C"),","))'=$p(CurrMove(j,"C"),",",2,3) s q=1 q
  ..i 'q s Move=@List@(i),Cur=i
  s ret=$$CheckMove(HNumber,Move)
  s CurrMove(CurrMove,"C")=Move_","_ret
  w "My move: "_Move," - ",$p(ret,",")," bulls ", $p(ret,",",2)," cows",!
  i $i(CurrMove)
  i Move=HNumber q 2
  q 0
CMove1()
  n Move,ret,i,j,k,m,n
  s Move=""
  i CurrMove=0 d
  .s Move=@List@(1)
  .s Cur=1
  .m @List1=@List
  .k @List1@(1)
  e  d
  .s i="" f  s i=$o(@List1@(i)) q:i=""  d
  ..s j="" f  s j=$o(CurrMove(j)) q:j=""  d
  ...q:'$d(CurrMove(j,"C"))
  ...i $$CheckMove(@List1@(i),$p(CurrMove(j,"C"),","))'=$p(CurrMove(j,"C"),",",2,3) k @List1@(i) q
  ...f k=1:1:Len s m(k,$e(@List1@(i),k))=$g(m(k,$e(@List1@(i),k)))+1
  .k @List2
  .s i="" f  s i=$o(@List1@(i)) q:i=""  d
  ..s n=0
  ..f k=1:1:Len s n=n+m(k,$e(@List1@(i),k))
  ..s @List2@(n,i)=""
  .s m=$o(@List2@(""),-1)
  .s i=$o(@List2@(m,""))
  .s Move=@List@(i)
  .k @List1@(i)
  s ret=$$CheckMove(HNumber,Move)
  s CurrMove(CurrMove,"C")=Move_","_ret
  w "My move: "_Move," - ",$p(ret,",")," bulls ", $p(ret,",",2)," cows",!
  i $i(CurrMove)
  i Move=HNumber q 2
  q 0
HMove()  ;
  n Move,ret
  s Move=$$EntNum()
  i Move=CNumber q 1
  s ret=$$CheckMove(CNumber,Move)
  w $p(ret,",")," bulls ", $p(ret,",",2)," cows",!
  s CurrMove(CurrMove,"H")=Move_","_ret
  q 0
CheckMove(N1,N2)  ;
  n bulls,cows,i,j
  s (bulls,cows)=0
  f i=1:1:Len f j=1:1:Len d
  .q:$e(N1,i)'=$e(N2,j)
  .i i=j s bulls=bulls+1 q
  .s cows=cows+1
  q bulls_","_cows
InitList  ;
  n i,s,j,n
  s s=""
  f i=1:1:Len s s=s_"f j("_i_")=0:1:9 "
  s s=s_" s n="
  f i=1:1:Len s s=s_"j("_i_")_"
  s s=$e(s,1,$l(s)-1)_" i $$CheckNum(n) s @List@($i(@List))=n"
  x s
  q
RandomList  ;
  n i,n1,n2,n
  f i=1:1:@List*3 s n1=$r(@List)+1,n2=$r(@List)+1,n=@List@(n1),@List@(n1)=@List@(n2),@List@(n2)=n
  q
CheckNum(Number)  ;
  n i,j,Ret
  s Ret=1
  f i=1:1:Len-1 f j=i+1:1:Len i ($e(Number,i)=$e(Number,j))!($e(Number,j)'?1n)!($e(Number,i)'?1n) s Ret=0 q
  q Ret
YesNo(Prompt)  ;
  n r,ret
  s ret=""
  f  d  q:ret'=""
  .w $g(Prompt)," (Y/N)" r r#1 w !
  .i (r="y")!(r="Y") s ret=1 q
  .i (r="n")!(r="N") s ret=0 q
  .w " Type ""Y"" or ""N""",!
  q ret
EntNum(Prompt)  ;
  n r,ret
  i $g(Prompt)="" s Prompt="Your move: "
  s ret=""
  f  d  q:ret'=""
  .w Prompt r r
  .i $l(r)'=Len w !,"Number must have "_Len_" digit",! q
  .i '$$CheckNum(r) w !,"Wrong number!",! q
  .s ret=r
  w !
  q ret
p(n)  q $j("",n-4)
...
Рейтинг: 0 / 0
Баловство. Быки-коровы
    #37303581
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaWr , а где БД с набором слов?
...
Рейтинг: 0 / 0
Баловство. Быки-коровы
    #37303865
MaWr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa MaWr , а где БД с набором слов?
Дык это цифирки угадывать )))
...
Рейтинг: 0 / 0
Баловство. Быки-коровы
    #37303971
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вона как... А то у нас делали со словами!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Баловство. Быки-коровы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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