• [转]JS小游戏_9格的棋


    转自:http://blog.163.com/jtomcat_jack/blog/static/222887692007850584541/

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
     </HEAD>

     <BODY>
       <Style Type="Text/CSS">
     <!--
     Input{}
     .blokje{
     Height:48px;
     Width:48px;
     Font-Size:16pt;
     Font-Weight:900;
     Font-Family:Comic Sans MS,Arial,Verdana;
     Text-Align:Center;
     }
     .knopje{
     Width:144px;
     }
     -->
     </Style>
    <Center>
    <Form>
    <Input Type="Button" Title="Click here to play again" Name="beurten" Width="164px" Class="knopje" Value="Player 1" onClick="wie = 'Player 1'; initieer()">
    <Table CellPadding="0" CellSpacing="0" Border="0">

    <Script Language="JavaScript">
    <!--//
    for (i = 1; i < 10; i++) {
    if (i % 3 == 1) {document.write('<Tr>');}
    document.write('<Td><Input Type="Button" Name="' + i + '" Value="    " Class="blokje" onClick="wijzig(this.form,this)"></Td>');
    if (i % 3 == 0) {document.write('</Tr>');}
    }
    //-->
    </Script>

    </Table>

    <Input Type="CheckBox" Title="Click here to change from 2 players or computergame" Name="automaat" Value="2 players" Id="autmat" onClick="if (this.value == 'Computer') {this.value = '2 players'; auto = 0} else {this.value = 'Computer'; auto = 1}; wie = 'Player 1'; initieer();"><Label For="autmat">与电脑对玩?</Label>

    <Table CellPadding="0" CellSpacing="0" Border="1">
    <Tr BgColor="Silver">
    <Td Align="Center"> 玩家 1 胜</Td>
    <Td Align="Center"> 玩家 2 胜</Td>
    <Td Align="Center"> 平局 </Td>
    </Tr>
    <Tr BgColor="Silver">
    <Td Align="Center"><Input Style="BackGround-Color:Transparent;Border:Solid 0px;Text-Align:Center" Type="Text" Size="3" ReadOnly Title="Player 1" Name="speler1" Value="0"></Td>
    <Td Align="Center"><Input Style="BackGround-Color:Transparent;Border:Solid 0px;Text-Align:Center" Type="Text" Size="3" ReadOnly Title="Player 2" Name="speler2" Value="0"></Td>
    <Td Align="Center"><Input Style="BackGround-Color:Transparent;Border:Solid 0px;Text-Align:Center" Type="Text" Size="3" ReadOnly Title="Remise" Name="remise" Value="0"></Td>
    </Tr>
    </Table>
    </Form>
    </Center>

    <Script Language="JavaScript">
    <!--//

    timerID = xtal = ytal = ztal = auto = 0;
    wie = 'Player 1';

    function initieer(){
     clearTimeout(timerID);
     cel = new Array(0,0,0,0,0,0,0,0,0,0);
     aanv = new Array(); strat = verd = leeg = aanv;
     beurt = wissel = 1; wint = keren = 0;
     document.forms[0].speler1.value = xtal;
     document.forms[0].speler2.value = ytal;
     document.forms[0].remise.value = ztal;
     if (wie != 'Start') {
     for (i in cel) {
       cel[i] = 0; if (i > 0) {document.forms[0].elements[i].value = ''};
       }
     }
     document.forms[0].beurten.value = wie;
    }

    function zetten() {
        clearTimeout(timerID);
        if (aanv[0] > 0) {
      slag = aanv[Math.floor(Math.random() * 10) % aanv.length]
        } else if (verd[0] > 0) {
      slag = verd[Math.floor(Math.random() * 10) % verd.length];
        } else if (strat[0] > 0) {
      slag = strat[Math.floor(Math.random() * 10) % strat.length];
        } else {
      slag = leeg[Math.floor(Math.random() * 10) % leeg.length];
        }

        if (beurt == 0 && slag > 0) {document.forms[0].elements[slag].click()};
    }


    function win() {
      if ( cel[1] + cel[2] + cel[3] == 3 ||
     cel[4] + cel[5] + cel[6] == 3 ||
     cel[7] + cel[8] + cel[9] == 3 ||
     cel[1] + cel[4] + cel[7] == 3 ||
     cel[2] + cel[5] + cel[8] == 3 ||
     cel[3] + cel[6] + cel[9] == 3 ||
     cel[1] + cel[5] + cel[9] == 3 ||
     cel[3] + cel[5] + cel[7] == 3
         ) {
     
     if (confirm("玩家一: 你赢了一局 !!\n还想要继续玩吗?"))
     {
     wint = 1;
     xtal++; wie = 'Player 1'; timerID = setTimeout('initieer()',800)
     } else {
     xtal++; wie = 'Start'; timerID = setTimeout('initieer()',800)
     };
        } 
      if ( cel[1] + cel[2] + cel[3] == 30 ||
     cel[4] + cel[5] + cel[6] == 30 ||
     cel[7] + cel[8] + cel[9] == 30 ||
     cel[1] + cel[4] + cel[7] == 30 ||
     cel[2] + cel[5] + cel[8] == 30 ||
     cel[3] + cel[6] + cel[9] == 30 ||
     cel[1] + cel[5] + cel[9] == 30 ||
     cel[3] + cel[5] + cel[7] == 30
         ) {
     if (confirm(((auto == 1) ? ('电脑赢啦!!!') : ('玩家二: 你赢了一局 !!')) + "!\n还想要继续玩吗?")) {
     ytal++; wie = 'Player 1'; timerID = setTimeout('initieer()',800)
     } else {
     ytal++; wie = 'Start'; timerID = setTimeout('initieer()',800)
     };
       }
    }

    function wisselen(beurt){
      if (wissel == 1)  {
        if (beurt == 0) {
            beurt = 1;
            wie = "Player " + 1
        }
        else {
            if (auto == 0) {beurt = 0;
     wie = "Player " + 2} else {beurt = 0; wie = "Computer";}
        }
          if (keren == 9
         ) {
     if (confirm("打平了!!!\n\n还想要继续玩吗?")) {
     ztal++; wie = 'Player 1'; timerID = setTimeout('initieer()',800)} else
     {ztal++; wie = 'Start'; timerID = setTimeout('initieer()',800)};
          }

      }
      else {
        beurt = beurt;
      }
      wissel = 1;
      return(beurt);
    }

    function wijziging(klik) {

    plek = cel[klik]; geklikt = klik;

    if (plek == 0){
       if (beurt == 0){
     xo = "O";
     plek = 10;
       } else {
     xo = "X";
     plek = 1;
       }
    cel[klik] = plek; keren++;
    }
    else {
       if (plek == 10){
           xo = "O";}
       if (plek == 1){
           xo = "X";}
       wissel = 0
    }
    return(xo);
    }

    function verdedig() {leeg = new Array(); verd = new Array();
    for (i = 1; i < 10; i++) { oud = cel[i]; cel[i] = 1;
      if ( (cel[1] + cel[2] + cel[3] == 3 ||
     cel[4] + cel[5] + cel[6] == 3 ||
            cel[7] + cel[8] + cel[9] == 3 ||
            cel[1] + cel[4] + cel[7] == 3 ||
            cel[2] + cel[5] + cel[8] == 3 ||
            cel[3] + cel[6] + cel[9] == 3 ||
            cel[1] + cel[5] + cel[9] == 3 ||
            cel[3] + cel[5] + cel[7] == 3) && oud == 0
         ) { verd[verd.length] = i}
       cel[i] = oud;
       if (cel[i] == 0) {
       if (keren != 1) {leeg[leeg.length] = i} else
       if (cel[5] == 0) {leeg[0] = 5; leeg[1] = 10 - geklikt} else
       if (i % 2 != 0) {leeg[leeg.length] = i}
       };
    }
    }

    function aanval() {aanv = new Array();
    for (i = 1; i < 10; i++) { oud = cel[i]; cel[i] = 10;
      if ( (cel[1] + cel[2] + cel[3] == 30 ||
     cel[4] + cel[5] + cel[6] == 30 ||
            cel[7] + cel[8] + cel[9] == 30 ||
            cel[1] + cel[4] + cel[7] == 30 ||
            cel[2] + cel[5] + cel[8] == 30 ||
            cel[3] + cel[6] + cel[9] == 30 ||
            cel[1] + cel[5] + cel[9] == 30 ||
            cel[3] + cel[5] + cel[7] == 30) && oud == 0
         ) { aanv[aanv.length] = i}
    cel[i] = oud;
    }
    }

    function strategie() {strat = new Array();
    for (i = 1; i < 10; i++) { oud = cel[i]; cel[i] = 10;
      if ( (cel[1] + cel[2] + cel[3] == 20 ||
     cel[4] + cel[5] + cel[6] == 20 ||
            cel[7] + cel[8] + cel[9] == 20 ||
            cel[1] + cel[4] + cel[7] == 20 ||
            cel[2] + cel[5] + cel[8] == 20 ||
            cel[3] + cel[6] + cel[9] == 20 ||
            cel[1] + cel[5] + cel[9] == 20 ||
            cel[3] + cel[5] + cel[7] == 20) && oud == 0
         ) {
         if (keren != 3) {strat[strat.length] = i} else if (i % 2 != 0) {strat[strat.length] = i}
         }
    cel[i] = oud;
    }
    }

    function wijzig(form,element){
        wijziging(element.name);
        element.value = xo;
        beurt = wisselen(beurt);
        form.beurten.value = wie;
        verdedig(); aanval(); strategie(); win();
        if (auto == 0 || wint == 1) {return} else {
        timerID = setTimeout('zetten()',600)
        }
    }

    initieer();

    //-->
    </Script>


     </BODY>
    </HTML>

  • 相关阅读:
    cpp:' data_type * '被视为一个数据类型
    c_cpp: 指针的双重赋值
    python3:面向对象之成员变量(成员变量赋值为元组、字典)
    shell:delete_executable_file 删除当前文件夹的可执行文件(linux)
    php:面向对象之成员变量(数组)
    php:输出关联数组特定范围的数据
    cpp: 指针和引用(class & object)
    解决 raw.githubusercontent.com 无法访问的问题
    容器监控
    wsl2 ubuntu 安装k8s
  • 原文地址:https://www.cnblogs.com/xjyggd/p/1347410.html
Copyright © 2020-2023  润新知