PC game RNG

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
This is way off audio. I have this PC game in my old computer (286, with 100Mhz speed). The game is simple. There is 4 blocks that have to be "guessed" to win. The choice is only A or B. We have to guess it step by step, from block no.1 to the last block.
For example the right answer is A-A-B-A. First we guess the first block. If we guess it right (A), then the game gives green light, we get 25% point, and we can make the guess for the second block. If again we guess right for the second block (A), it makes our score 50% point. But if we guess wrong for the third block, the game gives red light, and we have this game and continue with other game. (the game that is wrongly guessed cannot be played anymore). The same case if we already guess wrongly for the first block, then the red light is on and the game is over.

I'm very curious about this game. It is only on the 100Mhz computer. But I think solving this may benefit in many other field. I read in the net that this kind of game is incorporating a RNG (Random Number Generator) for the computer to make the answers.

Is there any possiblity that we can always knows the answer on such a game? I think about 2 possibilities, but cannot figure out how to do both of it.

1. Nowdays, the computer is 1.5Ghz in speed. How if we make the current PC played this game (on the 100Mhz old PC) so it can collect statistic, so the RNG can be estimated? Is it possible to predict what an RNG will produce with statistic? Will the faster PC can determine the pattern of RNG produced by slower PC?

2. Is it possible to make such a "Scanner" to determine what will be the next answer? The electronics inside the PC must be making some electromagnetic noise radiance. Is it possible that we can make such a pocket size scanner, that can determine wheter the next answer will be A or B?

There are many clever guy involved in this website. Maybe some are very familiar with both electronic and computers (and maybe electromagnetic scanners)?
 
If it's a 286, it's probably 4.17/8/10/12Mhz. For 100Mhz that'd be the 486/Pentium range.

As for the randon number generation, I'll quote fourmilab.ch

"Computer-generated "random" numbers are more properly referred to as pseudorandom numbers, and pseudorandom sequences of such numbers. A variety of clever algorithms have been developed which generate sequences of numbers which pass every statistical test used to distinguish random sequences from those containing some pattern or internal order. A test program is available at this site which applies such tests to sequences of bytes and reports how random they appear to be, and if you run this program on data generated by a high-quality pseudorandom sequence generator, you'll find it generates data that are indistinguishable from a sequence of bytes chosen at random. Indistinguishable, but not genuinely random."

Likewise, that'd answer your first theory. It'd have to be random(or indistinguishable, I suppose) for many encryption methods today to work as they do. I know that some CPUs/cryptography DSP can generate random numbers by a different "more random" method although I can't seem to think of the name.
 
computers operate a bit differently from say an amplifier, all the computer is operating in is zeros and ones, it would be nearly impossible to tell the difference between a true boolean and a false boolean value going through the processor. Its all the same frequency etc, its just either on or not. You would be much better off writting a program that 'hacked' the game and told you what the values are in the memory of the computer. But what was said earlier is true, there are no true random numbers being used on that computer, all a computer can do is add ones and zeros......really well. What the computer is doing to create a random number is, the program tells it to put a number into an equation, and out pops the random number, then the next time you put the previous answer into the equation, and out pops a new "random" number. This is repeated for as many random numbers as the program wants. There are various methods of doing the same thing, so thats not the only way the equations work. So yeah, it is possible to have a program running that analyzes the random number outputs and comes up with an equation to follow.
 
Ex-Moderator
Joined 2002
All computers can only generate pseudo random numbers simply because of the generation procedures they use, and in fact, this is the way that GCHQ and the NSA can eventually crack most computer encryption. Modern cryptography uses so-called one time pads, consisting of lists of truly random numbers created by recording atmospheric radio noise or atomic decay particles.
 
pinkmouse said:
All computers can only generate pseudo random numbers simply because of the generation procedures they use, and in fact, this is the way that GCHQ and the NSA can eventually crack most computer encryption. Modern cryptography uses so-called one time pads, consisting of lists of truly random numbers created by recording atmospheric radio noise or atomic decay particles.

IIRC, some of todays more modern computers available to the public have CPU's and or chipsets that are capable of generating random numbers by measuring thermal noise at a given instant.
 
I think the pentium 3 had something similar in it. It sent a electrical pulse through (something, im not sure what), then depending on how far the electrical pulse went before it dissipated out, that was the ramdom number (or at least that was used in the random number generator)
 
You would be much better off writting a program that 'hacked' the game and told you what the values are in the memory of the computer

This is really the problem. The computer is already HAVE the value of the next answer (in the memory), but we still dont know it yet, until we guess it.

Is there any possible way to know what is the next answer (that is already in the memory of the computer) from outside (without making any hack program?)

It is said that it is imposible for us to make such an electomagnetic scanner, because all computer do is on and off.
But what if the data is in array of bits, ex : A=00101, B=11101, would this make a different electromagnetic radiance that can be distinguished, or is it not?

How is an electromatnetic scanner works? What is it made for?
 
Bah, hit submit by accident, I'm an idiot.

It was Via's "Nemehiah" CPU that ships with a "real" random number generator. It takes it's samples from thermal readings in the CPU. Certain Intel chipsets since the i810 are available with a thermal sampled random number generator too.
 
As others have pointed out the numbers are pseudorandom. Here's the C implementation of rand():
Code:
int __cdecl rand (void)
{
    return(((holdrand = holdrand * 214013L + 2531011L) >> 16) & 0x7fff);
}

holdrand is a static long variable and is set using the srand() function. Not terribly elaborate, but knowing the return value of the function doesn't tell you too much about the value of holdrand (knowing the value rather obviously allows you to determine the next return value).... the 16 bitwise shift and bitwise AND make an accurate determination of holdrand difficult. And that assumes the game doesn't change the seed value frequently. And this assumes the game was written in C and the code for rand() hasn't changed between the time the game was written and MS VC.NET (from which I copied the above code).

There are many other much more sophisticated pseudorandom number generators available....

We just had an interesting discussion on pseudorandom numbers on The Geek Group forums late last week. It's a rather surrendipitous coincidence that a similar discussion happened here. :cool:

Mark
 
exactly (bill), it could even be a possibility that the program uses your answer as the seed for the next problem... And once you get the random number, you can do several things to it, divide by two, and if its even its one thing, odd another, etc etc etc.
Considering the amount of memory blocks in a typical computer, even ones from that era, first finding the memory block where the program will store the data (it can very well change from game to game, match to match) would be like finding a needle in a haystack. And even then your equipment would have to be so accurate and minute, I dont think anything that sophisticated exists now or will exhist in the near future.
 
Computer and its programs are made by us. How come we cannot beat this? Gary Kasparov vs Deep Blue is an interesting example. Maybe at this time it is not too important, because computers are made mostly to assist our job. But I'm sure there will be one time that this becomes important.

Lets now go to a real example. There is a game program in http://www.geocities.com/ivannovendry/download/poker.zip .
This is a PC game. It plays cards (poker) on MSDOS, but with some modification. In ordinary poker game, we are given 5 cards, and the ones that is not preferable can be changed. This way, the RNG will be more difficult to be studied.

This game is simpler. In this game, we are given 7 cards. The whole card is a complete deck plus 2 jokers. All the 7 cards are already picked by the computer, but have a pattern. Although the cards are already there, but they are upside down. If we put first bet, it will reveal 2 cards. The whole bet is 4 times, First bet will show 2 initial card. Second bet will show the 3rd card. 4th bet will open all the cards. But if we feel that the card is not good, we can stop betting everytime and the rest of the card will open.

Why simpler? The first card will determine the 3rd card. The 2nd card will determine the 5th card. The 4th card will determine the 6th card. The first step is like this: A will bring card 2 or 3----A-2/3, 2-4/5, 3-6/7, 4-8/9, 5-10/J, 6-Q/K, 8-A/Joker, 9-2/3, 10-4/5, J-6/7, Q-8/9, K-10/J. This is the pattern of the first step. In the second step, A can bring 5/6.
The main goal is to have the (4of a kind, straight flush, 5of a kind, royal flush) and to win the credit.

Is there anyone who can study the pattern of this game, and comes out with the weakness of this game? The game itself is only based on MSDOS, I think with current computer setting, some kind of statistics can be obtained (let the pc play the game and collect the results). Or having the current computer to find weakness of the game or the weaknes inside the RNG. To find what is repeatalbe if we do something. So how to "conquer" this game without modifying or getting inside the program itself.
 
I think the best thing you can do is to sign yourself up for some basic computer science courses at a local tech college or comunity college. I think once you have a basic understanding of how software works and computers in general, you can fully understand what is going on in the games, and im pretty sure you would be able to better understand how to "beat" the game(s) you are playing.
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.