[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[特效代码] [已解决]批处理 bat 怎样制作出OX棋,三子棋,井字棋,

本帖最后由 panda951 于 2015-3-16 13:32 编辑

不要用if

只能用goto,set,set /p,echo,pause 这5个
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 pcl_test 于 2015-3-13 14:58 编辑

回复 1# panda951
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo   1丨2 丨3
  4. echo  ─┼─┼─
  5. echo   4丨5 丨6
  6. echo  ─┼─┼─
  7. echo   7丨8 丨9
  8. echo 图中数字表示格子位置,输入相应数字即可在对应格子下子
  9. echo.
  10. set 1=.
  11. set 2=.
  12. set 3=.
  13. set 4=.
  14. set 5=.
  15. set 6=.
  16. set 7=.
  17. set 8=.
  18. set 9=.
  19. :main
  20. echo 玩家1 请输入格子位置[数字+回车] :
  21. set /p n=
  22. set !n!=O
  23. echo   !1!丨!2! 丨!3!
  24. echo  ─┼─┼─
  25. echo   !4!丨!5! 丨!6!   玩家1 O √
  26. echo  ─┼─┼─
  27. echo   !7!丨!8! 丨!9!   玩家2 X
  28. echo 玩家2 请输入格子位置[数字+回车] :
  29. set /p n=
  30. set !n!=X
  31. echo   !1!丨!2! 丨!3!
  32. echo  ─┼─┼─
  33. echo   !4!丨!5! 丨!6!   玩家1 O
  34. echo  ─┼─┼─
  35. echo   !7!丨!8! 丨!9!   玩家2 X √
  36. goto main
  37. pause
复制代码

TOP

回复 2# pcl_test


    谢谢 你的回答

如果不要显示他的框可以吗?只是要双方玩家输入名字 然后有1,2,3/4,5,6/7,8,9  等等一排就赢可以用这个代码实现吗?

能解释下这个代码什么意思吗?
set 1=.
set 2=.
set 3=.
set 4=.
set 5=.
set 6=.
set 7=.
set 8=.
set 9=.

我只学到set跟set /p     
没看过set 1=.

麻烦你了

TOP

回复 2# pcl_test


    能告诉我1-3/4-6/7-9就赢要怎样设置吗?

TOP

做这样的 可以用你给的代码做吗?

TOP

回复 2# pcl_test


    大哥最后一个问题了

要弄成那张图片那样大概是这样吗?
@echo off


echo insert player 1 name :
set /p A=
echo insert player 2 name :
set /p B=

:main
player 1 %A% move<1,2,3,4,5,6,7,8,9>
player 1 %A% move<>


goto main
goto p
:lose
echo lose
goto p
:win
echo win
goto p
:p
pause

TOP

本帖最后由 pcl_test 于 2015-3-12 22:25 编辑

回复 6# panda951
模拟图片代码,按图片的信息输入可实现同样效果,未实现判断功能,待续
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo insert player name 1 :
  4. set /p playerA=
  5. echo insert player name 2 :
  6. set /p playerB=
  7. echo begin
  8. set 1=1,
  9. set 2=2,
  10. set 3=3,
  11. set 4=4,
  12. set 5=5,
  13. set 6=6,
  14. set 7=7,
  15. set 8=8,
  16. set 9=9,
  17. set num=!1!!2!!3!!4!!5!!6!!7!!8!!9!
  18. set num=%num:~,-1%
  19. echo player 1 %playerA% move ^<%num%^>:
  20. set /p t=
  21. set %t%=
  22. set num=!1!!2!!3!!4!!5!!6!!7!!8!!9!
  23. set num=%num:~,-1%
  24. echo player 2 %playerB% move ^<%num%^>:
  25. set /p t=
  26. set %t%=
  27. set num=!1!!2!!3!!4!!5!!6!!7!!8!!9!
  28. set num=%num:~,-1%
  29. echo player 1 %playerA% move ^<%num%^>:
  30. set /p t=
  31. set %t%=
  32. set num=!1!!2!!3!!4!!5!!6!!7!!8!!9!
  33. set num=%num:~,-1%
  34. echo player 2 %playerB% move ^<%num%^>:
  35. set /p t=
  36. set %t%=
  37. set num=!1!!2!!3!!4!!5!!6!!7!!8!!9!
  38. set num=%num:~,-1%
  39. echo player 1 %playerA% move ^<%num%^>:
  40. set /p t=
  41. set %t%=
  42. echo player 1 %playerA% win
  43. pause
复制代码
1

评分人数

    • panda951: 感谢给帖子标题标注[已解决]字样技术 + 1

TOP

回复 7# pcl_test


    如果要弄成player1/2 某一个先3排大概要怎样?其实这个已经可以了 不过想要好用一点的  XP

如果你不得空就不用把

差点忘记讲了---感谢你的帮忙XD

TOP

回复 7# pcl_test


    lol

还是不可以 他们讲要很像游戏那样
如-某一方先输入3条线就赢
这个不管输入什么都会player1 就赢的不能 可能我的表达方式不好。。。

以下是=完成的条件
1)        這遊戲至少有兩個玩家, 開始讓玩家輸入各自名字

2)        每一個玩家 一次只能選一個格子,不能重複, 例如 玩家1選了 6號,玩家2再選6號 程式就會直接結束
3)        玩家交替輸入號碼, 請提供選擇給玩家, 一直輸入到 當一方 選的號碼 3個支線鏈接成功 表示勝利。
4)        結果:   玩家1選 1,5,9  , 勝利  玩家2选1,5,9 胜利

TOP

回复 9# panda951
嗯,说了“只是模拟图片,未实现判断功能”,因为不用if基本实现不了

TOP

回复 10# pcl_test


    可是有人弄到没有用if就可以弄到 不过他不教

TOP

回复 10# pcl_test

他讲他用大部分goto跟set /p实现的。。。

TOP

回复 11# panda951
能力有限,帮顶一下,LZ也要自顶,不要沉了

TOP

顶啊。。。。。。

TOP

回复 13# pcl_test

大哥我想到一个办法不知道你觉得能不能实现

@echo off
setlocal enabledelayedexpansion
echo insert player name 1 :
set /p playerA=
echo insert player name 2 :
set /p playerB=

set 1=1,
set 2=2,
set 3=3,
set 4=4,
set 5=5,
set 6=6,
set 7=7,
set 8=8,
set 9=9,

:begin
set num=!1!!2!!3!!4!!5!!6!!7!!8!!9!
set num=%num:~,-1%
echo player 1 %playerA% move ^<%num%^>:
set /p t=
set %t%=
goto begin2
:begin2
set num=!1!!2!!3!!4!!5!!6!!7!!8!!9!
set num=%num:~,-1%
echo player 2 %playerB% move ^<%num%^>:
set /p t=
set %t%=
goto begin
:win1
echo player 1 %playerA% win
goto p
:win2
echo player 2 %playerB% win
goto p
:p
pause

缺的是我不知道要怎样设置输入了某3个数字就能到达那个位置的方法。。。。。。。

TOP

返回列表