Oxen & Cows Re:Mastermind - A game of logic

"valery_vi" <[email protected]>
Newsgroups gmane.comp.windows.autoit.user
Message-ID <[email protected]>
I'm thinking about more truly content of label:

> $LabelOfPlayerNumber = GUICtrlCreateLabel("Type integer number from 
> 1000 to 9999:", 10, 10, 380, 21)

It must be the following one with previous code:
"Type integer number from 0000 to 9999:"

Or!
You must replace line in func NextNumber()

  $Number = Random(0,9,1)

to

  $Number = Random(1,9,1)

and use old label's line.

Enjoy,
Valery

--- In [email protected], "valery_vi" <shehrer1@...> wrote:
>
> I decided to write this game. The rules of it was described early 
and 
> code of it is follows:
> 
> ;==================================================
> ; Russian Game: 'Oxen & Cows'
> ; Author of AutoIt script: Valery Ivanov
> ; Date: 28 March 2007
> ;
> #include <GUIConstants.au3>
> Global $PlayerNumber, $Result, $Number,  $Place, $Oxen = 0, $Cows = 
0
> $hWnd = GUICreate("Oxen & Cows Valery Ivanov", 400, 450)
> $LabelOfPlayerNumber = GUICtrlCreateLabel("Type integer number from 
> 1000 to 9999:", 10, 10, 380, 21)
> $PlayerNumber = GUICtrlCreateInput("", 10, 30, 380, 21)
> 
> $LabelOfResult = GUICtrlCreateLabel("Checks:", 10, 60, 380, 21)
> $Result = GUICtrlCreateEdit("*** New Game ***" & @CRLF, 10, 90, 
380, 
> 280, $ES_READONLY)
> $Check = GUICtrlCreateButton('CheckIt', 150, 390, 100, 30)
> NextNumber()
> Random(0,9.999)
> GUISetState()
> 
> ; Start the main loop
> While 1
>  $Msg = GUIGetMsg()
> Switch $Msg
> Case $GUI_EVENT_CLOSE
> 	Exit
> Case $Result
> 	WinSetTitle($hWnd, "", GUICtrlRead($Result))
> Case $Check
> 	CheckIt(GUICtrlRead($PlayerNumber))
> EndSwitch
> WEnd
> 
> ;Get new number
> func NextNumber()
> local $Digit
>  $Number = Random(0,9,1)
>  $Digit = Random(0,9,1)
>  for $i = 1 to 3
>    While StringInStr($Number, $Digit)
> ;     Msgbox(0,'','$Digit = ' & $Digit & ' $Number = ' & $Number)
>      $Digit = Random(0,9,1)
>    Wend
>    $Number &= $Digit
>  next
> ; Msgbox(0, 'NextNumber', 'Number = ' & $Number)
> endfunc
> 
> ;Check user's number
> func CheckIt($Player)
>  $PArray = StringRegExp($Player,'([0-9])([0-9])([0-9])([0-9])',3)
>  if @Error or StringLen($Player) > 4 then 
>     Msgbox(0, 'Error', 'Type integer number from 1000 to 9999')
>        GUICtrlSetData($PlayerNumber,'')
>     return
>  endif
>  $NArray = StringSplit($Number,'')
>  for $i = 0 to 3
>    if $PArray[$i]=$NArray[$i+1] then 
> 	$Oxen += 1
>    else
> 	if StringInStr($Player,$NArray[$i+1]) then $Cows +=1
>    endif
>  next
>  $Line = GUICtrlRead($Result)
>  $Line &= $Player & ' ==> ' 
>  If $Cows then 
> 	$Line &= $Cows & ' Cows'
> 	if $Oxen then $Line &= ', '
>  endif
>  If $Oxen then $Line &= $Oxen & ' Oxen'
>   If Not $Cows and Not $Oxen then $Line &= ' No animals!'
>  $Line &= @CRLF
>  GUICtrlSetData($Result,$Line)
>  GUICtrlSetData($PlayerNumber,'')
>  if Number($Oxen) = 4 then
>     $Line = GUICtrlRead($Result)
>     $Line &= ' You found my number. It is  '  & $Player &  @CRLF
>     $Line &=  @CRLF  & '*** New Game ***' &  @CRLF
>     GUICtrlSetData($Result,$Line)
>     NextNumber()
>   endif
>  $Oxen = 0
>  $Cows = 0
> endfunc
> 
> Time of coding was 2 hours, though.
> 
> Enjoy,
> Valery
> 
> --- In [email protected], "valery_vi" <shehrer1@> wrote:
> >
> > About names in Russian game 'Oxen & Cows': 
> > 1. Cow is your white square and Ox is black one.
> > 2. Ox is animal which always stay on place but cow can run away 
for 
> > some reasons. This is like the nature of these animals, I think.
> > :-)
> > 
> > BTW. Recently I've been thinking about invalid spelling of word 
> > Moscow. Russian call this city like Mosqua : [Mos-`kva]. 
> > Why English-speaking world deformed this word Moscua into Moscow?
> > 
> > It hasn't cows at all.
> > :-)
> > 
> > Valery
> > 
> > --- In [email protected], "valery_vi" <shehrer1@> wrote:
> > >
> > > Hi,
> > > 
> > > Piano Man wrote:
> > > http://www.autoitscript.com/forum/index.php?showtopic=43343
> > > "..When I first showed this to my colleagues I was surprised by 
> how 
> > > many people hadn't played it, so I won't be surprised if most 
of 
> > you 
> > > haven't played it. "
> > > 
> > > This is colorized variant of game known in Russia as 'Oxens & 
> > Cows'. 
> > > Russian game 'Oxens & Cows' is the following:
> > > 1. Leader has integer number. 4-digits. No doubles allowed!
> > > 2. Player tests his variants. Integer number from 4-digits.
> > > 3. If digit exists in leader's number then it is Cow
> > > 4. If digit exists in leader's number and is placed on the 
valid 
> > > place then it is Oxen.
> > > 5. Answer or result of test (your check result) will be for 
> example:
> > > 
> > > 2 Cows and 1 Ox
> > > or
> > > Just 3 Cows...
> > > :-)
> > > 
> > > Thus, your expert's version (4 rows) with 9 colors (numbers of 
> > > digits - 0..9) will be colorized Russian logical game 'Oxens & 
> > Cows'. 
> > > I remember that 6-7 questions is typical result for advanced 
> player.
> > > My result for your game (Beginner) is 4 rows.
> > > 
> > > Valery
> > >
> >
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.