Entrar
Últimos assuntos
» Colisões não funcionandopor RastaMaan Ontem à(s) 19:49
» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Ontem à(s) 16:45
» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18
» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30
» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07
» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45
» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51
» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31
» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11
» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17
» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18
» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34
» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13
» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18
» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12
» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02
» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55
» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42
» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56
» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49
» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21
» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21
[TRFN] [Batch] Sistema de Sorteio
3 participantes
Página 1 de 1
[TRFN] [Batch] Sistema de Sorteio
Bom pessoal estou postando isso aqui bem atoa mesmo, só para mostrar um código batch que faz uma coisa simples, mas que é extenso. Eu sei que por GML seria duas linhas de código, mas quis fazer isso sem usar o game maker, para trabalhar um pouco a minha lógica e também para não esquecer a minha base de programação, o D.O.S. .
Sem mais delongas, eis o código :
Insiram esse código no bloco de notas e salvem o arquivo com a extensão .BAT ou .CMD e façam um teste. Ele sorteia bem randomicamente um numero de cadeira, fiz esse sistema para igreja que vou, para premiar um banco de lá com um alfajor durante o culto.
Espero que gostem e brinquem um pouco com esse sistema, em breve, farei um sistema de comunicação de servidores em batch que se tudo der certo, fará é muito bem jogos de comunicação online.
Uma especificação sobre o funcionamento : Quanto maior o numero de possibilidades, maior o numero de Steps, e mais demorado o processo de sorteio.
Sem mais delongas, eis o código :
- Código:
:: Main ::
@echo off
MODE CON COLS=72 LINES=16
:: Insert Limit Screen ::
:insert
color 0a
title Sorteio de Banco
cls
call:head
set /p "max=Numero maximo de bancos para sorteio > "
if "%max%" equ "" call:error1 && goto insert
if %max% gtr 10000 call:error2 && goto insert
if %max% lss 2 call:error2 && goto insert
:: Re-calculating ::
:repeat
set /a "rand=%random%+%random%+%random%+%random%+%random%+%random%+%random%+%random%"
set /a "rand=%rand%/10000"
set /a "rand=%rand%*%random%"
set /a "rand=%rand%/(10000-%max%)"
set "result=0"
:: Compiler 1 ::
:asset_compiler1
if %rand% gtr 1000 set /a "rand=%rand%/10" && goto asset_compiler1
:: Compiler 2 ::
:asset_compiler2
if %rand% lss %max% set /a "rand=%rand%*2" && goto asset_compiler2
:: Post[Calc] ::
color 0d
cls
call:head
echo Realizando calculos, aguarde um momento...
set step=0
:: Calculum ::
:loop
set /a "percent=%rand%/10"
set /a "percent=100-%percent%"
if %percent% lss 0 set percent=0
set /a "rand=%rand%-1"
set /a "result=%result%+1"
if %result% gtr %max% set "result=1"
if %rand% leq 0 goto:continue
set /a "step=%step%+1"
title Sorteio de Banco - [Concluidos: %percent%%% ^| Step: %step%]
goto loop
:: Result ::
:continue
title Sorteio de Banco - Resultado : %result%
cls
color 0e
call:head
echo Banco Ganhador : [%result%] .
echo.
echo Pressione qualquer tecla para calcular novamente...
pause>nul
goto repeat
:: Error #1 ::
:error1
set max=
color 0c
title Sorteio de Banco - #ERROR#
echo Tu precisa fornecer algum valor numerico quando for executar...
pause>nul
goto:eof
:: Error #2 ::
:error2
set max=
color 0c
title Sorteio de Banco - #ERROR#
echo Insira apenas numeros compreendidos entre [2] e [10000]...
pause>nul
goto:eof
:: Head Text ::
:head
echo Sistema Automatizado de sorteio de bancos.
echo Desenvolvido por TRFN
echo.
echo.
goto:eof
Insiram esse código no bloco de notas e salvem o arquivo com a extensão .BAT ou .CMD e façam um teste. Ele sorteia bem randomicamente um numero de cadeira, fiz esse sistema para igreja que vou, para premiar um banco de lá com um alfajor durante o culto.
Espero que gostem e brinquem um pouco com esse sistema, em breve, farei um sistema de comunicação de servidores em batch que se tudo der certo, fará é muito bem jogos de comunicação online.
Uma especificação sobre o funcionamento : Quanto maior o numero de possibilidades, maior o numero de Steps, e mais demorado o processo de sorteio.
Re: [TRFN] [Batch] Sistema de Sorteio
Interessante cara! Um dia vou aprender mais sobre isso! Valeu por compartilhar isso!
Marcellomine- Data de inscrição : 22/01/2013
Reputação : 11
Número de Mensagens : 134
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [TRFN] [Batch] Sistema de Sorteio
Muito doido! Eu curti esse lance do “goto :eof”, não sabia que podia dar um skip pro fim do arquivo dessa forma! Valeu por compartilhar o código.
Acho que entendi... Tem vários cálculos com divisor alto, me corrija se eu estiver errado, mas você fez isso pra aumentar a probabilidade de um intervalos de número aparecer, certo?
GameMakerTutoriais- Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios :
x 0 x 4 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [TRFN] [Batch] Sistema de Sorteio
Sim ,é . Para garantir que esolherá segundo o range corretamente. O asset_compiler 1 e 2 servem para modular os steps que criei, e por isso quanto maior o numero, mais steps e mais tempo gasto. Até o numero 999 o calculo é até rápido, mas passando disso é demorado. Os steps servem para criar a função while. O step que criei foi projetado pensando no mesmo step do Game Maker rsrs', mas é claro tudo em batch. Agora só falta o draw rsrs'.Acho que entendi... Tem vários cálculos com divisor alto, me corrija se eu estiver errado, mas você fez isso pra aumentar a probabilidade de um intervalos de número aparecer, certo?
Repare bem no título do batch, cada step é um calculo realizado para escolher o numero aleatório, mas o numero é escolhido antes mesmo do step ser acionado...
Ora, porque então o step ? Para fazer o range. Para não passar do limite de escolha, ele conta um a um, para ser bem randômico também.
Cada goto na verdade foi transformado em uma função, como os scripts do GM. Por isso usei "call" e "eof".
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos