■ Java による作成例
import java.io.*;
import java.util.*;
class Program05
{
public static void main(String[] args) throws IOException
{
Random RandObj = new Random();
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
String strRule =
"4桁の数を当ててください。\n"
+ "同じ数字は1度しか使用されません。"
+ "最上位に0が使用される場合もあります。\n"
+ "ヒントとして、合っている数字の数と、"
+ "桁(位置)も合っている数字の数を示します。\n"
+ "答えが'4135'で入力が'0123'の場合、'数:2,桁:1'とヒントが出ます。\n"
+ "----------------------------------------------------\n";
System.out.print( strRule );
int reply;
do
{
int numbers[] = new int[4];
do
{
numbers[0] = RandObj.nextInt(10);
numbers[1] = RandObj.nextInt(10);
numbers[2] = RandObj.nextInt(10);
numbers[3] = RandObj.nextInt(10);
} while ( ! ( numbers[0] != numbers[1]
&& numbers[0] != numbers[2]
&& numbers[0] != numbers[3]
&& numbers[1] != numbers[2]
&& numbers[1] != numbers[3]
&& numbers[2] != numbers[3]));
System.out.print("4桁の数を考えました!!\n");
for (int turn = 1 ; ; turn++)
{
System.out.print("数を当ててください。\n");
int num = Integer.parseInt(br.readLine());
int test[] = new int[4];
test[3] = num % 10;
test[2] = (num / 10) % 10;
test[1] = (num / 100) % 10;
test[0] = (num / 1000) % 10;
int kazu = 0;
int keta = 0;
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
if (numbers[i] == test[j])
{
kazu++;
if (i == j)
keta++;
}
}
}
if (keta == 4)
{
System.out.print("おめでとう!! "
+ turn + "回目で正解です。\n");
break;
}
else
{
System.out.print("数:" + kazu
+ ",桁:" + keta + "\n");
}
}
System.out.print("もう一度やりますか?(Yes:1 No:0)");
reply = Integer.parseInt(br.readLine());
} while (reply != 0);
}
}