숫자야구 소스를 구했는데

숫자야구게임 소스를 구했는데
홈런이 안되면 200포인트 뺏고
홈런되면 200포인트 주려고 하는데..

아시는 분...? 

이하 코드

<?php
//세션등록
session_start();
//시도
session_register("trynum");
//답
session_register("n");
//사용자[]
session_register("inputdata");
//정확도[]
session_register("old");
//session_destroy();

?>
<HTML>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<TITLE>숫자 야구</TITLE>
<script language="javascript">
<!--
function focusIt() {
document.yagu.inputnum.focus();
return true;
}
//-->
</script>

<style type="text/css">
<!--
  body,td,select,div,form,textarea,center,option,pre,blockquote
  {font-family:"tahoma", "굴림";font-size:9pt;color:#dddddd;}
  input
  {font-family:"tahoma", "굴림";font-size:9pt;color:#444444;}
  .small_text  
  { font-family: "Geneva", "Arial", "Helvetica", "san-serif"; font-size: 9px; font-style: normal ; text-decoration: none; line-height: normal}
  .button
  {border:solid 1;border-color:1F556A;font-size:9pt;color:white;background-color:50889F;height:19px} 
  .opacity1
  {filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=70)
  progid:DXImageTransform.Microsoft.Shadow(color=00344C,Direction=135,Strength=3);border-color:black;} 
 
</style>
</HEAD>
<BODY BGCOLOR="#2F638B"onload="focusIt();">
<center>

<form method=post name=yagu action=2ori.php>
    <p align="center"><b>숫자야구</b>!<br></p>
    <p align="center"><input type=text name=inputnum size=4 class=opacity1>
<input type=submit value=시도 class=button>
<input type="submit" value="reset" class=button onclick="window.open('2ori.php?re=1','','_self')">
<?php echo("<a href=$PHP_SELF?re=1><font color=CCCCCC>다시</font></a><br> "); ?>
</p></form>


<hr size=1 noshade width=200 align="center">
<font class=small_text face=Arial, Helvetica, sans-serif>Copyright (C) 2001-2008 http//blog.naver.com/leeyc09 All rights reserved.</font></font>
<p align="center"><?php
//echo("<a href=$PHP_SELF?re=1>다시</a><br> ");

//reset
if($re==1) {
session_destroy();
exit;
}

//사용자가 적은 값의 길이를 리턴한다.
$inputlength = strlen($inputnum);
//test inputlengrth
//echo ("inputnum 자릿수".strlen($inputnum)."<br>");

//시도횟수가 0이라면 1로 초기화 배열num[3]에 0~9까지 난수발생 중복제거
$num = array();

if($trynum<1) {
 $trynum=1;
 for( $i=0; $i<3; $i++ ) {
  $num[$i]=rand(0,9);
  for($j = 0; $j<$i; $j++) {
   if($num[$i] == $num[$j]) {
    $i--;
    }
   }
  }
 }
//저장된 배열값을 하나로 저장
for($m=0;$m<3;$m++) {
$n.=$num[$m];
}

//echo "inputnum배열값 $inputnum[0] $inputnum[1] $inputnum[2] <br />";

//중복된 수 입력 필터링
if($inputnum[0]==$inputnum[1] || $inputnum[0]==$inputnum[2]){
  $stats=2;
 }elseif($inputnum[1]==$inputnum[2]){
  $stats=2;
  }else{
   $stats=1;
 }
//echo "$stats";

//사용자 입력이 3개라면 s b o 출력,시도횟수 +1

if($inputlength ==3 && $stats==1){
 if($inputnum) {
  $trynum++;
  for($j=0;$j<3;$j++) {
   for($k=0;$k<3;$k++) {
    if ($inputnum[$j]==$n[$k]) {
     if ($j==$k) {
      $st[]='s';
      }
    else
     $st[]='b';
    } 
   }
  if(($st[$j]!='s')&&($st[$j]!='b')) {
   $st[]='o';
  }
 }
//입력값을 사용자배열에 등록
$inputdata[]=$inputnum;
//스코어 저장
for ($p=0;$p<3;$p++) {
$hit.=$st[$p];
}

//홈런일경우
if($hit=='sss') {
 echo("<h1>홈런</h1>");
 $result=$trynum-1;
 echo("정답: $n<br>입력: $inputnum<br>스코어: $st[0]$st[1]$st[2]<br>횟수 $result<hr size=1 noshade width=200
 align=center>");
 echo("<form method=post action=$PHP_SELF> ");
 session_destroy();
 exit;
 }

$old[]=$hit;

}
 
$result=$trynum-1;
//echo("정답: $n <br />");
$s=strlen($n);

echo("<hr size=1 noshade width=200 align=center>");
echo("난수값: ??? 자릿수:$s ");
echo("<br>입력값: $inputnum<br>적중률: $st[0]$st[1]$st[2]<br>횟수 $result<hr size=1 noshade width=200 align=center>");

for($z=0;$z<sizeof($inputdata);$z++) {
 $zz=$z+1;
 echo("$zz 번째: $inputdata[$z] - $old[$z]<br>");
 }
 exit;
}


if((!($inputlength ==3)) || $stats==2){
 echo ("4자리 이상 2자리 이하로 입력했거나 <br>중복된 숫자를 입력하셨습니다.<br> 다른 숫자를 다시 입력 해 주십시오.<br>");
 exit;
 }

?></p>
</center>
</body>

[출처] PHP 숫자야구 게임.|작성자 시피



 

|

댓글 5개

여긴 자게구나......
자게 맞아요..그누보드,영카트 외의 질문은 여기서 하래서 했는것 뿐이예요..ㅠㅠ
자게 맞아요..저런질문 딱히 올릴데도 없어요..ㅠㅠ
잘 만지면 그누용 게임이 하나 나오겠는데요.
게임 시작할때 정해진 게임금을 지불하게 되며

1번째에 맞추면 게임금에 100배
2번&#51760;에 맞추면 게임금에 50배
3번째에 맞추면 게임금에 25배
4번째에 맞추면 게임금에 10배
5번째에 맞추면 게임금에 1배
6번째에 맞추면 게임금에 0.5배
7번&#51760;에 맞추면 게임금에 0.25배
8번째에 맞추면 게임금에 0배

해서 홈런시 포인트 지급해주는 구조로 만드고요

지금 고쳐야할버그가 입력값에 숫자외에 다른입력값이 안들어가게 해야 할거 같구요.
또 숫자 3자리 고정입력받게 해야 할거 같구요.
똑같은 숫자가 중복입력안되게 해야 할거 같구요.
등등등
아차 세션보다는 디비를 이용하는게 보안면에서 날거 같네요.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기
🐛 버그신고