Игра в угадывание чисел в графическом интерфейсе Powershell

#powershell #user-interface

#powershell #пользовательский интерфейс

Вопрос:

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

вот что у меня есть до сих пор:

Графический интерфейс:

 Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Application]::EnableVisualStyles()

#GUI

$gamefrm                         = New-Object system.Windows.Forms.Form
$gamefrm.ClientSize              = New-Object System.Drawing.Point(573,376)
$gamefrm.text                    = "Deviner le nombre"
$gamefrm.TopMost                 = $true
$gamefrm.BackColor               = [System.Drawing.ColorTranslator]::FromHtml("#bd10e0")

$ruletxt                         = New-Object system.Windows.Forms.TextBox
$ruletxt.multiline               = $false
$ruletxt.width                   = 262
$ruletxt.height                  = 20
$ruletxt.location                = New-Object System.Drawing.Point(150,39)
$ruletxt.Font                    = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$ruletxt.Text                    = "Deviner le nombre!"
$ruletxt.AutoSize                = $true
$ruletxt.ReadOnly                = $true

$intxt                           = New-Object system.Windows.Forms.TextBox
$intxt.multiline                 = $false
$intxt.width                     = 263
$intxt.height                    = 20
$intxt.location                  = New-Object System.Drawing.Point(149,110)
$intxt.Font                      = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$intxt.Text                      = "1"
$intxt.AutoSize                  = $true
$intxt.ReadOnly                  = $true

$outtxt                          = New-Object system.Windows.Forms.TextBox
$outtxt.multiline                = $false
$outtxt.width                    = 263
$outtxt.height                   = 20
$outtxt.location                 = New-Object System.Drawing.Point(149,190)
$outtxt.Font                     = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$outtxt.text                     = ""
$outtxt.AutoSize                 = $true


$gamefrm.controls.AddRange(@($ruletxt,$intxt,$outtxt,$imagepb,$Button1,)) 

$Button1                         = New-Object system.Windows.Forms.Button
$Button1.text                    = "button"
$Button1.width                   = 60
$Button1.height                  = 30
$Button1.location                = New-Object System.Drawing.Point(86,89)
$Button1.Font                    = New-Object System.Drawing.Font('Microsoft Sans Serif',10)


  

Логический код :

 
#Write your logic code here

[void]$gamefrm.ShowDialog()

[int]$nombre = Get-Random -Minimum 1 -Maximum 101

$essai = 0


$output = $intxt.Text

$input = $outtxt.Text



 while ($input -ne $nombre){
  
  
  if ($input -gt $nombre) {$output = " trop haut "}

if ($input -lt $nombre) {$intxt.Text = " trop bas "}

if ( ( $input -gt 100 ) -or ($input -lt 0 ) ) {$intxt.Text = " entre 1 et 100! "}

  $essai  

 } $intxt.Text = "Correct! Nombre d'essai: $essai"
  

если кто-нибудь может помочь, пожалуйста, дайте мне знать, спасибо.

Комментарии:

1. Вам нужно создать функцию, а затем добавить начало функции к событию в форме.

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

3. @ArcSet какую функцию я должен использовать?

4. @DougMaurer я сделал, и это хорошо работало в консоли

5. Возьмите то, что вы сделали в консоли, превратите это в функцию, прикрепите к ней свой графический интерфейс. Функция — это функция, будь то базовая или расширенная. Вы можете использовать любой из них в любое время по любой причине. Посмотрите на примеры в ISE, используя CRTL J, если вы используете VSCode, CRTL Alt J. Если вы делаете это в чем-то другом, обратитесь к файлам справки для функций PowerShell.